vim:行末まですべての文字を置き換えます


30

たぶん私は一生懸命ですが、カーソルがある行から行末までのすべての文字を1つのコマンドで置き換えることができますか?次に.、次の行で同じ置換を実行するために使用します。

回答:


49

場合は、私が正しくあなたの質問を理解し、これを試してみてください。

C(大文字のC)カーソルから行末までのすべてを削除し、INSERTモードにします。その後、置換を記述し、INSERTモードを終了し、.別の場所でプロセスを繰り返します。


いいよ :)どういたしまして。
sr_

16
誰もが疑問に思っていた場合、それは首都Cです:)
デビッドシルバスミス

1
回答を更新して、これが大文字のCであることを指定するとよいでしょう。
fraxture

14

sr_の答えに追加:

カーソルが各行の同じ位置から始まる場合は、視覚ブロック機能に興味があるかもしれません。

カーソルを初期位置に置いて、以下を順番に入力します。

  • Ctrl+ vビジュアルブロックモードに入ります。
  • $行の最後に移動します。
  • [X]jXを下に移動する行数に置き換えます。

これにより、最初の行のカーソルから下の行[X]行の終わりまでの長方形の選択範囲が作成されます。

その後、選択全体を置き換えることができます。

  • c:選択を削除して挿入モードにします。
  • 新しいテキストを挿入
  • Esc:挿入モードを終了します。Vimは選択された各行でステップを自動的に繰り返します。

できる限り視覚ブロックを使用しているので、共有したいと思いました


確かに素敵な答えを+1。しかし、本当に時々私のコードがうまく^ _〜そのようにフォーマットされていないので、私が何をしたい
Sardathrion -復活モニカ

@sardathrion; REコメント、「適切にフォーマットされた」。Markdownでテーブルをn+1作成nするVisual Blockで後方を選択して行を作成した後、行のスペースを自動で埋めることができました!言い換えれば、形状は逆7または垂直に反転したLに似ていました。笑。
xtian 14年

3

Cまたはc$、「変更」とR「置換」を表します。

2つのほぼ同様の動作。前者は、入力を開始する前に行を削除します。後者では、文字を上書きして、表示される古い行の文字の制限を超える可能性があります。


1

コマンドモードで「C」、つまり大文字のCを押し、置換テキストを入力します。


0

他の答えはこれらを逃しました、彼らは挿入モードに入りません。

  • D 行末まで削除
  • d$ カーソルから行末までを削除します

それからもちろん使用 .


挿入モードに入っていない場合は-1になります。これは、私が求めたものだからです。完全性のために+1。
サルダスリオン-モニカの復活

0

行末まで変更しようとすると、便利な場合があります。このタスクを実行するために挿入マッピングを作成しましたがD、挿入モードではインデントを減らすためにこのキーが使用されるため、使用しません。だからCtrl-k

:inoremap <C-k> <C-o>C
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.