2011-01-22 15 views
1

機能しない、次のマップが動作していません。ノーマルマッピングが何らかの理由で

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

それは、一度私はこのような行に,uを入力することを意図していた:

lorem ipsum 

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

結果:私はを参照してくださいウィンドウの下部にあります。それで、|をエスケープしようとしましたが、マッピングを使用すると、一番下に:.g/./t.|s/./=/gが表示され、何も起こりません。

私はまだ初心者ですが、それを行うにはエラーが発生していない可能性があります。

ありがとうございます!

答えて

2

マッピングでバーをエスケープする必要があります。\|または<bar>を使用してください。今度は、2つのコマンド:nmap ,u :.g/./t.s/./=/g<CR>として解析されます。

nmapを使用しないでください。nnoremapを使用してください。

更新:call append('.', repeat('=', strdisplaywidth(getline('.'))))<CR>(VIM-7.3、最高の変種)または:call append('.', repeat('=', len(split(getline('.'), '\zs'))))<CR>として(VIM-7.2は、タブとちょうど同じ問題を抱えているとして、あなたのマッピングの作品のエスケープバリアントけれども、私は、どちらかyyp:s/./=/g<CR>としてそれを書かれているだろう全角文字はyyp...のように変わりますが、いずれのレジスタも上書きしません)。

+2

私は 'nnoremap、u yyp:s /./=/ g 'またはおそらく 'nnoremap、u yypv $ r ='と個人的に行きます。 – frabjous

+0

ありがとうZyX。あなたは重要なことを指摘しました。 – sidyll

+0

おかげで、このソリューションは素晴らしいです! – sidyll

関連する問題