Vim简单映射

时间:2017-05-16 07:21:57

标签: vim

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

所以我在.vimrc文件中添加了以下行:map :nt :NERDTree - 但是当我在vim文件中键入:nt时(即使重启后),我收到以下错误消息:{ {1}}

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

我检查了答案:What is the difference between the remap, noremap, nnoremap and vnoremap mapping commands in vim?,所以在我看来:map :nt :NERDTree(与:map等对立)是对此的良好指示。

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

我做错了什么? (对不起noob问题)

3 个答案:

答案 0 :(得分:4)

  • :NERDTree是一个命令,而不是一个映射,所以没有理由在这里创建一个递归映射。

  • :map太过分了。您应该使用:<mode>map(用于递归映射)或:<mode>noremap(用于nn递归映射)。

  • 您在映射结束时缺少<CR>,告诉Vim实际执行:NERDTree命令。

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

nnoremap :tn :NERDTree<CR>

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

nnoremap <Space>n :NERDTree<CR>

答案 1 :(得分:2)

使用您拥有的映射,将需要多次击键。您可以使用像 F2 这样的单键吗?

 nnoremap <F2> :NERDTreeToggle<CR>

这将在按 F2 时切换打开/关闭NERDTree并保存一些击键。

答案 2 :(得分:1)

Here 你可以弄清楚,vim的映射是如何工作和看起来的;)。在使用之前不要忘记使用新的.vimrc。