当缓冲区位于 vim 中的目录中时执行命令
Execute command when buffer is in directory in vim
我正在寻找一种在缓冲区指向目录时执行命令(:term)的方法(比如打开指向目录的 vim 时打开 NERDTree)
当缓冲区为 empty/start 屏幕时
像 NERDTree 这样的插件使用所谓的 临时缓冲区 来显示它们的 "UI"。对于语法突出显示,大多数还设置自定义的、特定于插件的 filetype。所以你可以挂钩到 :help FileType
事件::autocmd FileType nerdtree ...
直接打开终端对我不起作用;因为插件在其临时缓冲区设置中被中断,并且不希望终端干扰。这里至少需要将 return 添加到原始暂存缓冲区的其他命令。 (但是像 :echomsg
这样不起眼的东西会按原样工作。)或者你只是通过 feedkeys()
:
延迟打开
:autocmd FileType nerdtree call feedkeys(":terminal\<CR>")
一种更通用的方法(不仅适用于 NERDTree)可以连接到 BufWinEnter
并检查是否 &buftype == 'nofile'
(这是暂存缓冲区的典型属性)。
要检查 Vim 是否以 "start screen" 启动,请使用 VimEnter
并检查 empty(bufname(''))
.
:autocmd VimEnter * if empty(bufname('')) | exe "terminal" | endif
我正在寻找一种在缓冲区指向目录时执行命令(:term)的方法(比如打开指向目录的 vim 时打开 NERDTree) 当缓冲区为 empty/start 屏幕时
像 NERDTree 这样的插件使用所谓的 临时缓冲区 来显示它们的 "UI"。对于语法突出显示,大多数还设置自定义的、特定于插件的 filetype。所以你可以挂钩到 :help FileType
事件::autocmd FileType nerdtree ...
直接打开终端对我不起作用;因为插件在其临时缓冲区设置中被中断,并且不希望终端干扰。这里至少需要将 return 添加到原始暂存缓冲区的其他命令。 (但是像 :echomsg
这样不起眼的东西会按原样工作。)或者你只是通过 feedkeys()
:
:autocmd FileType nerdtree call feedkeys(":terminal\<CR>")
一种更通用的方法(不仅适用于 NERDTree)可以连接到 BufWinEnter
并检查是否 &buftype == 'nofile'
(这是暂存缓冲区的典型属性)。
要检查 Vim 是否以 "start screen" 启动,请使用 VimEnter
并检查 empty(bufname(''))
.
:autocmd VimEnter * if empty(bufname('')) | exe "terminal" | endif