Vim 简单映射

jim*_*iat 2 vim

我最近开始使用 Vim,刚刚安装了 NERDTree(一个用于导航文件的插件)。访问该插件的命令是:NERDTree这样的,尽管通过为该命令分配一个来开始学习映射是一个好主意。

所以我在我的.vimrc文件中添加了以下行:map :nt :NERDTree- 但是当我输入:ntvim 文件时(即使在重新启动后),我收到以下错误消息:not an editor command: nt

我还尝试在通过键入编辑文件时直接添加映射,:map :nt :NERDTree但是当我尝试使用该命令时它返回了相同的错误。

我检查了那个答案:vim 中的 remap、noremap、nnoremap 和 vnoremap 映射命令有什么区别?,所以在我看来:map(反对noremap等)是最好的命令。

输入原始命令时,该插件工作正常。

我究竟做错了什么?(抱歉菜鸟问题)

rom*_*inl 5

  • :NERDTree 是命令,而不是映射,因此没有理由在这里创建递归映射。

  • :map太过分了。您应该使用:<mode>map(for recursive mappings) or :<mode>noremap(for nn-recursive mappings)。

  • <CR>在映射的末尾缺少一个来告诉 Vim 实际执行:NERDTree命令。

在这种特定情况下,正确的映射是:

nnoremap :tn :NERDTree<CR>
Run Code Online (Sandbox Code Playgroud)

但是映射某些东西:<anything>并不是一个好主意,因为它会在您尝试执行 Ex 命令时引入超时。这意味着您需要找到另一个组合。为什么不<Space>n呢?

nnoremap <Space>n :NERDTree<CR>
Run Code Online (Sandbox Code Playgroud)