viは、Unixの初期に遡る、よく知られた画面指向のテキストエディターです。 最も印象的な機能は、2つの異なるモードで動作できることです。
挿入モードでは、テキストはファイルの一部になります。 通常モードでは、キーストロークは直接コマンドとして理解されます。 したがって、ファイルの編集に必要な作業量を削減するために、さまざまなキーボードコマンドが使用されます。
しかし、コマンドが非常に異なる場合、キーストロークコマンドを使用して行を削除したり編集したりするのは本当に簡単ですか? - 確認してみましょう。
行またはブロックの切断
クイックリンク
- 行またはブロックの切断
-
-
- 削除するテキスト行の前にカーソルを置きます
- vを押して、キャラクターのビジュアル選択を開始します
- 行全体を選択する場合はVを押します
- ブロックを選択する場合は、Ctrl + vまたはCtrl + qを押します
- テキスト行の最後にカーソルを置きます
- dを押してカットします
-
-
- 行を編集する
- 複数行の削除
- 通常モードでの文字、単語、および行の使用
- dd
- x / X
- dw
- 最終的な考え
-
削除するテキスト行の前にカーソルを置きます
-
vを押して、キャラクターのビジュアル選択を開始します
-
行全体を選択する場合はVを押します
-
ブロックを選択する場合は、Ctrl + vまたはCtrl + qを押します
-
テキスト行の最後にカーソルを置きます
-
dを押してカットします
その行を別の場所に貼り付ける場合は、カーソルを新しい場所に移動してpを押します。 pを押すと、カーソルの位置の後に行またはブロックが貼り付けられます。 カーソルの位置の前に貼り付けたい場合は、Pを押す必要があります。
行を編集する
手順6でcを押しても、選択したテキストを変更できます。dを押すと切り取り、yを押すとヤンクまたはコピーが行われ、cを押すと新しいテキストを追加できる挿入モードが開きます。 これは、最初にそれらを切断することなく、行全体またはブロック全体を置き換えるのに役立ちます。
複数行の削除
viで複数の行を削除する場合、2つの適切なオプションがあります。
“:%d”
このコマンドは、すべての行を削除します。 ':'はviをコマンドモードにします。 「%」文字は、「d」(削除コマンド)をすべての行に適用するように指示します。
“:1, $d”
これは、より一般的な代替手段です。 繰り返しますが、「:」はコマンドを導入します。 '1、$'は、viにターゲットの行を指示します。 この例では、行1で始まり最後の行になります。 「d」は削除を表します。
しかし、このコマンドが最初のものより優れているのはなぜですか? –これは適応性があります。 行を一括で削除するために使用できますが、それらをすべて削除する必要はありません。
“:4, $-2d”
などを使用すると、viは3番目から2番目までの行をすべて削除します。 行は0ではなく1で始まるため、最初の3行はそのまま残ります。また、削除する最初の行を指定します。この例では4行です。
'-2'は基本的に、最後の行から開始して1に戻る行数を表します。
通常モードでの文字、単語、および行の使用
最初に、エスケープを押して通常モードに入ることを確認する必要があります。 その後、次のviコマンドを使用して特定の情報を削除できます。
dd
このコマンドは、行全体を削除します。 カーソルは、単語または空のスペースに関係なく、行のどこにでも配置できます。 行とそれが占有していたすべてのスペースが消去されます。
x / X
行から1文字だけを削除する場合は、xを使用できます。 文字の後にカーソルを置き、xを押します。 これにより、キャラクターとそのスペースが削除されます。 これはまた、近くにいる他のすべてのキャラクターが集まってギャップを埋めることを意味します。
xを使用して、行の空白スペースを削除することもできます。 文字の上にカーソルを置き、その前の文字を削除する場合は、xではなくXを押します。
dw
カーソルが単語の先頭にあるときにdwを押すと、その単語が削除されます。 これにより、単語が占めるスペースも削除されます。 または、単語の一部だけを削除することもできます。
削除する部分の左側にカーソルを置きます。 dwを押して、それらの文字と、行で占有されていたスペースを削除します。 これを行うと、ギャップを埋めるために隣接するキャラクターが一緒になることに注意してください。
最終的な考え
viはモーダルエディタと同じくらい興味深く、ユニークです。慣れるには時間がかかります。 モードの切り替えに関しては、ほとんどフィードバックがありません。 これにより、コマンドを入力する必要があるときに誤ってコードテキストを入力することが非常に簡単になります。