在vim中映射键时nore
的含义是什么?例如,这两个映射之间有什么区别?
:map ddd ddjdd
和
:noremap ddd ddjdd
答案 0 :(得分:7)
这意味着映射否 n - 重新草书。
为了说明,
:nmap x dd
假设您将x
以正常模式映射到dd
(删除行),以节省一些时间,删除行。一切正常,直到你需要在其他一些映射中删除x(删除字符)来删除两个字符,
:nmap c xx
因为现在上面的映射真的是
:nmap c dddd
即。将删除两行。
因此,为了保留“原始”映射(vim键),你以非递归的方式进行,
:nnoremap x dd
:nnoremap c xx
一切正常(映射不......啊,你明白了)......
使用“nore”进行所有映射通常是一种很好的做法,因为你永远不知道哪些插件可能依赖于什么,以及你用“普通”映射打破了哪些vim行为。
答案 1 :(得分:2)
内置文档中涵盖了所有内容
map
:
将模式的键序列{lhs}映射到{rhs} map命令适用的位置。结果,包括 然后进一步扫描{rhs}以进行映射。这个 允许嵌套和递归使用映射。
noremap
:
将模式的键序列{lhs}映射到{rhs} map命令适用的位置。禁止映射 {rhs},以避免嵌套和递归映射。经常 用于重新定义命令。 {不在Vi}
答案 2 :(得分:1)
nore
代表非递归。它会导致映射的右侧忽略映射。
答案 3 :(得分:0)
如果你读完整个单词会很有帮助。 “noremap”,如“无重新映射”。这意味着无法更改映射。