Vim简单映射

Vim简单映射,vim,Vim,我最近开始使用Vim,刚刚安装了NERDTree(一个导航文件的插件)。 访问该插件的命令是:NERDTree,因此我认为通过为该命令指定一个映射开始学习映射是一个好主意 因此,我在我的.vimrc文件中添加了以下行:映射:nt:NERDTree-但是当我在vim文件中键入:nt时(即使在重新启动后),我收到以下错误消息:不是编辑器命令:nt 我还尝试在编辑文件时直接添加映射,方法是键入:map:nt:NERDTree,但在尝试使用该命令时,它返回了相同的错误 我检查了答案:,所以在我看来,:m

我最近开始使用Vim,刚刚安装了NERDTree(一个导航文件的插件)。 访问该插件的命令是
:NERDTree
,因此我认为通过为该命令指定一个映射开始学习映射是一个好主意

因此,我在我的
.vimrc
文件中添加了以下行:
映射:nt:NERDTree
-但是当我在vim文件中键入
:nt
时(即使在重新启动后),我收到以下错误消息:
不是编辑器命令:nt

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

我检查了答案:,所以在我看来,
:map
(与
noremap
等相对)是很好的命令

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

我做错了什么?(很抱歉提出这个问题)

您可以了解vim的映射工作原理和外观;)。在使用新的.vimrc之前,不要忘记寻找其来源。

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

  • :map
    的范围太大。您应该使用
    :map
    (用于递归映射)或
    :noremap
    (用于nn递归映射)

  • 您在映射的末尾缺少一个
    ,它告诉Vim实际执行
    :NERDTree
    命令

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

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

nnoremap <Space>n :NERDTree<CR>
nnoremap n:NERDTree

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

nnoremap:nerdtreethoggle

按F2键时,这将切换打开/关闭
NERDTree
,并为您保存一些按键

太好了,谢谢!快速提问“因为当您尝试执行Ex命令时,它将引入超时”是什么意思?
是将您置于命令行模式的正常模式命令。如果您在正常模式下将某些内容映射到
,比如
:tn
,Vim需要决定您实际想要做什么,并为此使用超时。如果你打字很快,你可能不会注意到,但如果你是一个正常人,你肯定会注意到。好的,谢谢。你说的“在使用之前别忘了为新的.vimrc编写源代码”是什么意思?他的意思是,如果你在.vimrc中添加映射,你要么需要重新启动vim,要么在映射生效之前为.vimrc编写源代码:
:source~/.vimrc
@jimbasquiat很棒!如果你认为这个答案是正确的,请把这个答案标记为正确的,或者请投赞成票。关于你的另一个问题:每一个rc文件,不管是哪一个,都需要在更新后获得来源。因此,如果在
.vimrc
文件中有任何更改,则需要对其进行源代码设置。如果您的
pwd
.vimrc
存在的地方,您必须输入终端:
source.vimrc
或缩写
。vimrc
。vim只能识别您的更新。
 nnoremap <F2> :NERDTreeToggle<CR>