2011-02-06 17 views
6

私はWindowsプラットフォームの経験豊かな開発者です。私はVimの使い方を教えています。私は正規表現にかなり慣れており、Vimの使い方の原則を理解しています。しかし、私は具体的な問題を抱えています。私は解決策を持っていますが、より良いものにすべきだと感じています。単語間のスペースを取り除く最も良い方法

私は、次のような行を含むファイルがあります:CODELorem<tab>または<space>文字の可変数があるかもしれません

CODE<tab><tab>Lorem ipsum dolor sit amet 

を。カーソルが通常モードのCODEの 'C'の上にあると仮定して、私ができることを望むのは、次の出力を生成するキーの組み合わせを見つけ、CODEの 'E'と 'L挿入モードのLoremです。

Dワット:

CODELorem ipsum dolor sit amet 

私の海流ソリューションは、次のキーシーケンスを使用することですか?\+<リターン>

これは動作しますが、それは私が、私はそれを削除する前に削除する事を過ぎて行くのは非論理的な感じ \。 CODEの最後に移動し、転送を削除する必要があるように感じます。私はこれが単に私が気づいていないVimの慣用であることを理解しています。私はVimの知識の重要な部分を完全に失っている可能性もあります。

私の目標を達成する最良の方法は何ですか?

答えて

15

電子リットルDワットはそれを行います。

  • 電子 - 右
  • DWに1つの文字を移動する - - あなたの場合は、すべての空白

を削除する単語

  • リットルの終わりに前進カーソルがある空白の真ん中にある、dwは、カーソルの左右の空白を削除します。 (それは単語の途中のどこかにある場合、それは単語を削除します。)

  • +1

    おかげで、マットは。私はこれを実際に始めると考えましたが、 'CODE'の直後の位置ではなく、タブストップの最後にカーソルを移動するという事実につらかってしまいました。今私はそれを試して、それはちょっと意味があります。私はそれが私が思っていたことを強調していると思います.Vimを学ぶことは命令だけではなく、いくつかのイディオムを理解することも必要です。 –

    +0

    @Damian:確かに、vi/vim全体に素敵な規則があります。私はもう少し実験をしても、自分自身でハンドルを得ています:-) –

    +2

    私が探していたキーシーケンスは 'elcw'です。これは、私の代わりのテキストを追加する準備ができて、挿入モードで私を残します。驚くばかり!再度、感謝します。 –

    4

    いくつかの選択肢:

    :s/\s\+// 
    e xx 
    elxx 
    eldtL 
    f<tab>xx 
    eldw 
    
    +0

    提案をありがとう、ロス。私はスニペットでこのシーケンスを使用することを考えていましたので、あなたの提案の1つまたは2つは、ファイル内の行ごとにさまざまな正確なレイアウトとコンテンツを考慮しているため動作しません。以前私が知りませんでした他のものへのポインタをありがとう。 –

    関連する問題