2011-01-22 77 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