我最近开始使用Vim,只是安装了NERDTree(用于浏览文件的插件)。
访问该插件的命令为:NERDTree
,尽管我是通过向该命令分配一个开始学习映射的一个好主意。
因此,我在.vimrc
文件中添加了以下行:map :nt :NERDTree
-但是,当我在vim文件中键入:nt
时(即使重新启动后),我也会收到以下错误消息:not an editor command: nt
我还尝试通过键入:map :nt :NERDTree
在编辑文件时直接添加映射,但是当我尝试使用命令时,它返回了相同的错误。
我检查了答案:What is the difference between the remap, noremap, nnoremap and vnoremap mapping commands in vim?,所以在我看来,:map
(与noremap
等相对)是解决问题的好方法。
键入原始命令时,该插件可以正常工作。
我究竟做错了什么? (对菜鸟问题很抱歉)
最佳答案
:NERDTree
是命令,而不是映射,因此在此处无需创建递归映射。:map
太过分了。您应该使用:<mode>map
(用于递归映射)或:<mode>noremap
(用于nn递归映射)。
映射的末尾缺少一个<CR>
来告诉Vim实际执行:NERDTree
命令。
在这种特定情况下,正确的映射将是:
nnoremap :tn :NERDTree<CR>
但是将某些内容映射到
:<anything>
并不是一个好主意,因为每当您尝试执行Ex命令时,都会引入超时。这意味着您需要找到另一个组合。为什么不<Space>n
?nnoremap <Space>n :NERDTree<CR>
关于vim - Vim简单映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43994905/