写这个插件(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就可以
领取专属 10元无门槛券
私享最新 技术干货