web-dev-qa-db-ja.com

vimで次の行を削除するにはどうすればよいですか?

Emacsでは、数行のテキストを削除したいときはいつでも、すべてのテキストがなくなるまでC-kを使用します。ただし、vimではもう少し複雑に見えます。私はできることを知っていますd$は行末まで削除し、ddは現在の行全体を削除しますが、next行をすべて削除するにはどうすればよいですか?

10
Jason Baker

このような:

:+1d

仮定:あなたはあなたが始めた行で終わることを望みます。

私の答え:jddk

  • j (moves down)
  • dd(現在の行を削除します)
  • k (moves up)

それを試してみてください-それは速いです!実際、次の理由により、現在受け入れられている回答よりもtwoキーストロークが少なくなっています。

  1. コロン「:」とプラス「+」文字を入力するために[Shift]を保持する必要はありません。
  2. jddkはすべてビジュアルモードに入力されるため、シーケンスの最後に暗黙の[Enter]は必要ありません。コマンドモード

さらに、jddkはすべてキーボードのhome rowにあります。

h、j、k、lを使用してviをナビゲートするのに長い時間を費やしました。これは、使用した端末エミュレーションソフトウェアが矢印キーのサポートを開始するずっと前のことです。 (私は約20年前に話している;-)

16
Chris W. Rea

500以上の賛成票を得たスタックオーバーフローでこの回答を読むことを強くお勧めします: https://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118# 1220118 -答えは長いですが、vimが強力である理由を理解するのに役立ちます...

4
K Robinson

ビジュアルモードにも興味があるかもしれません。 vを使用して入力し、yを使用してヤンクするか、dを使用して削除します。チェック中:helpは、行き詰まったときにも最適な場所です。例えば ​​:help deleteは、通常の削除コマンドのほとんどのマニュアルを提供します。

2
Joe Bane

連続した行の束を削除する場合は、ddを使用して現在の行を削除し、.(ピリオド)を押し続ける(または押し続ける)ことで、コマンド。

0
coneslayer