2011-01-22 74 views
1

出于某种原因,下面的图是不工作:法线贴图不起作用

nmap ,u :.g/./t.|s/./=/g<CR>

它的目的是,一旦我在这样的行中键入,u

lorem ipsum 

它应该转化为:

lorem ipsum 
=========== 

结果:我看到:.g/./t.在窗口的底部。然后,我尝试转义|,现在一旦我使用映射,我会在底部看到:.g/./t.|s/./=/g,并且没有任何反应。

有可能是一个更好,没有错误的方法来做到这一点,我仍然是一个初学者。

谢谢!

回答

2

您需要在映射中逃避:使用\|<bar>。现在它被解析为两个命令:nmap ,u :.g/./t.s/./=/g<CR>

而且不要使用nmap,请使用nnoremap

更新:虽然你映射的逃脱变异的作品,我会写它要么yyp:s/./=/g<CR>,因为:call append('.', repeat('=', strdisplaywidth(getline('.'))))<CR>(VIM-7.3,最好的变体)或为:call append('.', repeat('=', len(split(getline('.'), '\zs'))))<CR>(VIM-7.2,刚刚与标签同样的问题和全角字符作为yyp...变体,但不覆盖任何寄存器)。

+2

我会用`nnoremap,u yyp:s /./=/ g `或者`nnoremap,u yypv $ r =`亲自去。 – frabjous 2011-01-22 22:46:08