範囲を超えて通常のコマンドを実行する


7

次のようなファイルの場合:

   2  AD,42.546245,1.601554,Andorra,376
   3  AE,23.424076,53.847818,United Arab Emirates,971
   4  AF,33.93911,67.709953,Afghanistan,93
   5  AG,17.060816,-61.796428,Antigua and Barbuda,1

最初の10行の先頭のスペースと数字を削除しようとしているので、

AD,42.546245,1.601554,Andorra,376
AE,23.424076,53.847818,United Arab Emirates,971
AF,33.93911,67.709953,Afghanistan,93
AG,17.060816,-61.796428,Antigua and Barbuda,1

「2つの単語を削除する」:d2wが1行では機能するが、範囲では機能しないのはなぜ:1,10d2wですか?

注意:

この問題自体は、を使用する固定形式により解決される:1,10s/.\{8\}//ため、これは、範囲を使用して:dNw


2
また:(:1,10s/\v^(\s|\d)*/最初の10行の先頭にある任意の数のスペースまたは数字を削除してください)
VanLaser '19

回答:


16

あなたは通常のコマンドでこれを行うことができます:

:1,10normal d2w

これは、dオペレーターが範囲を受け入れず、モーションのみを受け入れるためです。

:h d

["x]d{motion}           Delete text that {motion} moves over [into register x].

または、ビジュアルモードでテキストを選択して、次の操作を行うことができます。

:'<,'>normal d2w

明示的に質問して申し訳ありません::normalカーソルで移動するときにコマンドを入力するようにコマンドを実行できますか?
フィクシーマン2015

1
:normal通常モードで入力したとおりにコマンドを実行できます(でカーソルをナビゲートしたときhjkl)。参照::h :normal
nobe4

1
範囲の後の通常の前のコロンは冗長です。
FDinoff 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.