vim 禁用另一个 nmap 的 nmap
vim nmap which disables another nmap
在我的 .vimrc 中有这些行
nmap :s :update<cr>
nmap <F5> :set number!<cr>
没有前者的映射,后者就可以,否则就不行。为什么会这样?
问题是第二个映射以某种方式开始,:s
in :set
,触发了前一个映射。
通常您应该使用 non-recursive 映射,除非您有理由使用递归映射。
在这种情况下,你必须使用
nnoremap :s :update<cr>
nnoremap <F5> :set number!<cr>
更多信息请访问
:help recursive_mapping
- What is the difference between the remap, noremap, nnoremap and vnoremap mapping commands in Vim?
- Recursive mappings - Vim Tips Wiki
- Learn Vimscript the Hard Way - Chapter 5
在我的 .vimrc 中有这些行
nmap :s :update<cr>
nmap <F5> :set number!<cr>
没有前者的映射,后者就可以,否则就不行。为什么会这样?
问题是第二个映射以某种方式开始,:s
in :set
,触发了前一个映射。
通常您应该使用 non-recursive 映射,除非您有理由使用递归映射。
在这种情况下,你必须使用
nnoremap :s :update<cr>
nnoremap <F5> :set number!<cr>
更多信息请访问
:help recursive_mapping
- What is the difference between the remap, noremap, nnoremap and vnoremap mapping commands in Vim?
- Recursive mappings - Vim Tips Wiki
- Learn Vimscript the Hard Way - Chapter 5