「次のX文字まで」を削除するviショートカット


194

viには、さまざまなオプションで文字、単語、行を削除するショートカットキーがあることを理解しています。

しかし、私はこれを見つけることができませんでした:

  • カーソルから次の指定された文字まで削除します

たとえばdu"、エディターに「次の"文字が見つかるまで削除する」と入力する場合があります

私が知っている最も近いですd9wどこ9削除する単語の数です。

これが可能かどうかは誰にもわかりますか?


あなたがViとVimに興味があるなら、彼らは今彼ら自身のSEサイトを持っています:ViとVim-
デザート

回答:


303

使用dtccは任意の文字があなたのために、例えば、あなたがしたいですdt"

これにより、uptoは削除されますが、c 含まれません

あなたが持っていた場合:

delete until exclamation point!

そして、カーソルが最初のスペースにあり、を入力するとdt!、次のようになります:

delete!

またdfc

これは点で最大削除させていただきますと、を含む、C

df!上記と同じ例を使用すると、以下が得られます。

delete

ただ、いずれかの「動き」についてのために使用することができdcyおよび同様のコマンド。


7
おそらく、ニーモニックは「till」のtですか?素敵な答え。
overthink

15
大文字のバージョンの移動コマンドを使用して、キャラクターの以前のインスタンスを削除することもできます。たぶんもっとカンマに便利- dT,dF,
-joelostblom

3
これは複数行にわたって機能しません。
0xcaff

3
これは一連の行にわたって実行できますか?
レイ

2
ラインの範囲にわたり同様の何かをするために、(zpletanの答えのように)通常の検索を行うことができます:d/wordまで検索しますword。その後にEnterキーを押す必要があります(検索を閉じるため)。
エリックOレビゴ

59
  • 文字「X」タイプまで前方に削除するには dtX

  • 文字「X」を介して前方に削除するには dfX

  • 文字「X」まで逆方向に削除するには dTX

  • 文字「X」で後方に削除するには dFX


30

入力dt#(:コマンドではなく、Gのような動きのように使用します)

#が含まれるまでカーソルから削除されます。#の代わりに任意の文字を使用できます。


2
これが正解です!df#も#を削除します。
ベトナム14

これを探している、これは素晴らしいです
ナディームKhedr

18

@Arcegeはすでに質問に答えているように見えますが、d/lその文字まで削除しましたl。他のキャラクターも同様に機能します。


3
これは、複数の改行に関係なく機能します。
jasonszhao 16

注:この後にEnterキーを押す必要があります。
エリックOレビゴット

6

w次の単語に移動します。l次の文字に移動します。

したがってd9l、次の9文字を削除します。


2
閉じる、lVimの右矢印キーであるため、実際に削除します。逆に、d9h残りの9文字が削除されます。
ウォルフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.