由于某种原因,以下地图无效:
nmap ,u :.g/./t.|s/./=/g<CR>
一旦我在这样的一行上键入,u
,就打算这样做了:
lorem ipsum
它应该变成:
lorem ipsum
===========
结果:我在窗口底部看到:.g/./t.
。然后我尝试转义|
,现在一旦我使用映射,我只是在底部看到:.g/./t.|s/./=/g
,没有任何反应。
可能有更好的,没有错误的方法,我还是初学者。
谢谢!
答案 0 :(得分:2)
您需要在映射中转义栏:使用\|
或<bar>
。现在它被解析为两个命令:nmap ,u :.g/./t.
和s/./=/g<CR>
。
请勿使用nmap
,请使用nnoremap
。
更新:虽然映射的转义变体有效,但我会将其写为yyp:s/./=/g<CR>
,:call append('.', repeat('=', strdisplaywidth(getline('.'))))<CR>
(vim-7.3,最佳变体)或{ {1}}(vim-7.2,与:call append('.', repeat('=', len(split(getline('.'), '\zs'))))<CR>
变体的制表符和全角字符有同样的问题,但不会覆盖任何寄存器。)