学习
实践
活动
专区
工具
TVP
写文章

vimTermPipe-在vim中发送代码到终端执行

写这个插件(https://github.com/ShawnChen1996/vimTermPipe)的初衷呢,是因为本人很喜欢vim的轻量,高效和可定制性。然后由于我常常需要写python和R代码,需要一边写一边运行, 所以本插件的功能就是将vim中的文本发送至terminal中,在python,julia,R和matlab这样的交互环境中,十分方便。

在写这个插件之前,我也用过一个类似于本插件的vim插件 vimcmdline, 可是由于python和ipython的换行符不同的问题,ipython下总是有问题,用着难受,就萌生了在vim里自己实现和优化这个功能的想法。

如何安装

可以使用Vim-plug 这样的插件管理器,或者简单地将下载下来的文件夹扔进 ~/.vim (nvim用户 ~/.config/nvim)。

主要功能

发送文本至terminal

你可以选择发送单行代码,多行的代码块,或者选中的代码。(默认快捷键 Ctrl-Enter, 在vim里记作)。

1. 在普通模式,按下 , 发送该行,若该行是一个代码段的第一行,则发送整个代码段。

支持的代码段格式有:

2. 如果插件搜寻到的代码段不正确,你也可以选中一部分代码,使用快捷键发送。

多终端使用场景

除了发送文本,这个插件还能很方便的处理多文件编辑时使用多终端的场景

当用户首次按下快捷键时,本插件会将当前编辑的文件与最新打开的终端关联,并将以后所有发送的文本发送到这个终端。所以这时,如果你再打开一个文件和一个终端并按下快捷键时,该文件会与该终端关联。所以你可以打开两三个文件,并对应打开两三个终端,分别发送代码并互不干扰(理论上,只要你的屏幕够大,你可以开n+1个)。

当然有时候这种关联机制下,用户一不小心也会把文件和终端关联错,为了应对这种问题,我特意写了一个函数,用来重新制定关联。在vim下,你可以按来查看所有的文件的编号(包括终端的编号),查看你想重新关联的终端的编号,将光标移动到你要重新关联的文件内,按下来实现重新关联. 至此,你的代码就可以指哪打哪了。

使用方法

准备工作:将下面的配置复制到你的vim配置文件中,

打开一个文件

按回车,按回车可以获得终端, 在终端输入 或 进入对应的环境

回到代码文件,将光标放置在你想发送的行,就可以愉快地 了。

如果默认的快捷键 ctrl enter失效的话,可以换别的,Debian机子 ctrl enter不行, alter enter就可以

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200114A05LVN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券