vimでテキストを編集する

vimでテキストを編集する

私は、3行目の9番目と11番目のシンボルを削除するコマンドをVimで書こうとしています。これを実行しました3s/9, 11///が、期待通りには何も起こりませんでした。皆さんのアドバイスを参考にしてこれを実行できれば幸いです。より正確に言うと、3行目の9番目のシンボルと11番目のシンボルを削除したいのです。たとえば、3行あります。

  1. 海面から3メートルの高さ
  2. 海面下3メートル
  3. vimで助けが必要

したがって、3 行目の 9 番目の記号 (単語「some」の文字「e」) と 11 番目の記号 (単語「help」の文字「h」) を削除したいと思います。

答え1

複数回の一致については、27.4 Matching multiple timesユーザー マニュアルの第 27 章のセクションで説明されています (を参照:help usr_27.txt)。

次のコマンドは、行に少なくとも9文字が含まれている場合、行3の最初の9、10、または11文字を削除します。行に含まれる文字数がそれより少ない場合は、E486: Pattern not found:

:3s/.\{9,11}//

それがあなたが望んでいることかどうかはわかりません。そうでない場合は、質問を更新してください。

答え2

編集モードで次のように入力します。

08lxl.
  • 0 カーソルを行頭に移動する
  • 8lカーソルを8文字分前進させる
  • x カーソルの下の文字を削除
  • l カーソルを1文字分前進させる
  • . 最後のコマンドを繰り返す (x)

これをキーにバインドしたい場合(例,:):

:map , 08lxl.

それ以降、編集モードで押すたびに,、それらのコマンドが実行されます。

関連情報