启动时运行 vim 组合键

启动时运行 vim 组合键

在我的.vimrc,我有线条

autocmd VimEnter * NERDTree
autocmd VimEnter * TagbarOpen

这会导致布局具有两个侧边栏和一个包含主编辑缓冲区(即我正在编辑的文件)的中心列,但光标位于 NERDTree 侧边栏中 - 导致标签栏默认折叠。我想要做的是<C>l在 NERDTree 打开和正在切换的 Tagbar 之间执行击键组合(我已将其映射到将光标向右移动一个缓冲区的命令) - 但到目前为止,我还没有设法得到光标移动。到目前为止,我已经尝试使用两者

autocmd VimEnter * <C>l
autocmd VimEnter * normal <Ctrl+l>

...在上面两行之间,但这些都不起作用。

我该怎么办?

答案1

转到右侧窗口的命令是<C-w>l。你可以用以下命令执行

:execute "normal! \<C-w>l"

但对于<C-w>命令来说,有一个特殊的:wincmd命令可以让这变得更容易。因此,只需跳过自定义映射,然后执行以下操作:

autocmd VimEnter ...
autocmd VimEnter * wincmd l

答案2

经过进一步考虑,我承认这个问题并不是真正的重复VIM 在函数中执行键盘命令

你走在正确的轨道上autocmd VimEnter,你错过了execute命令:

:help execute
:exe[cute] {expr1} ..   Executes the string that results from the evaluation    
                        of {expr1} as an Ex command.

采用执行组合键的语法,例如上面的链接中的Ctrl- L,您可以将两者组合在您的.vimrc

autocmd VimEnter * execute "normal \<C-L>"

相关内容