2017-03-08 17 views
3

たとえば、ブロックや段落のすべての行でsubstitコマンドを使用することがよくあります。私は私の作品イディオムを持っている:オブジェクトにsコマンドを適用する適切な方法は何ですか?

!ip<bs>s/foo/bar/ 

が、私はそのようにそれを行うたびに、私はVIの言語を完全に理解していないこの感覚を得ます。

dip or yip or cip 

など、オブジェクト上で他の操作を実行できますが、sipは実行できません。私が理解しているように、それはvi/vim言語に適合しません。ですから、私は!ipを実行し、 '!'を消去してから、s ///コマンドを入力します。これは私が知っている操作を表現するための最短で不自然な方法です。何か不足していますか?

答えて

2

私はあなたの要点を理解していますが、デフォルトのコマンドを使用する方が良い方法はないと思います。

vip:s/foo/bar/ 

しかし、それは同じキー数とも利点があります:あなたが利用可能+visual機能を持つ代替があります。 カスタマイズが可能な場合は、新しいコマンドを作成して、期待していることを実行できます。たとえば、sipと入力し、コマンドラインにカーソルを置いて、に示すように、選択した範囲とs/のカーソルを置きます。例:

nnoremap s :set opfunc=SubstituteOperator<CR>[email protected] 

function! SubstituteOperator(type, ...) 
    silent call feedkeys(":'[,']:s/", 'n') 
endfunction 
+0

私は 'vip ...'アプローチがおそらくOPが説明する "vim言語"に沿っていると考えています。 –

関連する問題