当缓冲区指向目录时(如打开vim时打开NERDTree,指向dir)和缓冲区为空/启动屏幕时,我正在搜索一种执行命令(:term)的方法
发布于 2019-10-29 15:31:27
像NERDTree这样的插件使用所谓的划痕缓冲区来显示它们的"UI“。对于语法突出显示,大多数还设置了一个自定义的、特定于插件的文件类型.这样您就可以连接到:help FileType
事件::autocmd FileType nerdtree ...
直接打开终端对我不起作用,因为插件在它的scratch缓冲区设置中被中断,并且不期望终端会干扰。这里至少需要额外的命令才能返回到原始的scratch缓冲区。(不过,像:echomsg
这样不显眼的东西也能发挥作用。)或者你只需通过feedkeys()
延迟开幕
:autocmd FileType nerdtree call feedkeys(":terminal\<CR>")
一种更通用的方法(不仅适用于NERDTree)可以连接到BufWinEnter
并检查&buftype == 'nofile'
(这是划痕缓冲区的一个典型属性)。
要检查Vim是否使用“启动屏幕”启动,请使用VimEnter
并检查该empty(bufname(''))
。
:autocmd VimEnter * if empty(bufname('')) | exe "terminal" | endif
https://stackoverflow.com/questions/58610085
复制相似问题