Vim Terminal 窗口开关
Vim 8.1 以后支持 :terminal 命令在 Vim 中直接打开独立的窗口运行终端程序。我做了一个插件,使得打开/关闭这个独立的终端窗口更方便一点。
这个插件主要功能的流程如下:
graph LR;
button(按下快捷键)
checkInitial{终端窗口是否已初始化}
checkOpen{终端窗口是否已显示}
initial(初始化终端窗口)
close(隐藏终端窗口)
open(打开终端窗口)
button-->checkInitial;
checkInitial-->|否|initial;
checkInitial-->|是|checkOpen;
initial-->open;
checkOpen-->|否|open;
checkOpen-->|是|close;
以下全局变量供自定义设置
let g:TerWinSize = 10
let g:TerWinCmd = &shell
let g:TerWinBufName = 'TerWin'
let g:TerWinLocation = 'botright'
g:TerWinSize
每次打开终端窗口时,终端窗口的高度都会是这个值g:TerWinCmd
初始化终端窗口时执行的命令,默认设置的&shell
g:TerWinBufName
初始化终端窗口时,为终端窗口中的 buffer 设置的名称,它是插件检查终端窗口是否已经初始化的依据g:TerWinLocation
每次打开终端窗口时的位置
因为插件是通过检查 buffer 的名称是否存在来判断终端窗口是否有过初始化,也通过这个 buffer 所在窗口的可见性来判断终端窗口是否打开。所以在同一个 Vim 程序实例中,插件只会初始化一次终端窗口。
通过插件提供的唯一命令来打开/关闭终端窗口
:TerWinToggle
还是设置快捷键来调用插件命令比较方便
noremap <F5> :TerWinToggle<CR>
tnoremap <F5> <C-W>:TerWinToggle<CR>