web-dev-qa-db-ja.com

カーソルから `vi`の行末まで削除

私が読んだすべてのviドキュメントでこれを何百万回も見たことがありますが、カーソルから行末コマンドまでの削除を見つけることができないようです。

334
Falmarri

コマンド dw 現在のカーソル位置から次のWord文字の先頭まで削除します。コマンド d$ (これはドル記号であり、 'S'ではありません)は、現在のカーソル位置から現在の行の末尾までを削除します。 D の同義語です d$

499
Tok

他の人が述べたように:d$またはDshift-d)カーソル位置から行末まで削除します。

私が通常より便利だと思うのはc$またはCshift-c)カーソル位置から行末まで削除されるためandは[INSERT]モードになります。

54
Brad Johnson

Viの良い点の1つは、論理的なコマンド構造です。 dの後にモーションコマンドが続くdそのモーションのターゲットに移動します。 $は行の終わりに移動します(ニーモニック:正規表現のように)。そう d$行末まで削除します。同様に、eは現在の単語のe ndに移動し、wは次の単語の最初に移動しますw ord;したがって、deは現在のWordの末尾を削除し、dwはさらに次の空白を削除します。

おそらくDを使用したいでしょう。削除する最初の文字にカーソルを移動し、Shift-Dを押します。すべてがなくなった。実際には、デフォルトのカットバッファーにあるので、PまたはPで貼り付けることができます。

Dp(行の最後まで削除してから元に戻す)を使用し、他の行の最後に移動してから、もう一度pを入力して、この別の行の最後に同じテキストを貼り付けます。いくつかの複雑なURLを2か所以上に配置する必要がある設定ファイルで機能します。

21
Bruce Ediger

カーソル位置の後から行の範囲を削除するには、 3D カーソルから行の終わりまで削除され、次の2行も完全に削除されます(つまり、カーソル位置の3行後に削除されます)。

例えば次のテキストの場合(カーソルは|)、

If there's a cursor |in the line
here
we
go

コマンドを使用する 3D 出力されます:

If there's a cursor
go
1
Nick Bull

挿入モードのショートカットが役立つと思います。

挿入モードでは、行の終わりまで変更を開始する方が良いでしょう(これを~/.vimrc):

inoremap <C-l> <C-o>C

言われたように、あなたは持っています、 D 通常モードで Ctrl+l 挿入モード。ご覧のとおり、 C それは行の終わりまで変化し始めます。

<C-o> ......... insert normal keystroke in insert mode

私は選んだ Ctrl-l lがあなたの指の下にあるからです。の Ctrl-k ダイグラフを挿入するためにすでに使用されています。

:h i_Ctrlにはいくつかの無料のキーバインドがあり、vimでアクションを実行するための新しいショートカットを作成する場合、それは実際にはより大きな問題です。

1
SergioAraujo