Vim – 行をコピー/カット・ペーストするコマンド【行番号/複数行も】

midSun31midSun31
IT・デジタル

Vimエディタにはコピペを行うための便利なコマンドが多く揃っています。特に行番号や複数行のキー指定は通常のメモ帳には備わっていない機能です。

この記事では、Vimエディタで行単位でコピーやカット・ペーストする方法をご紹介します。

Vimエディタのバージョンは8.1を使用しています。Vimエディタで対象のファイルを開いている前提で解説を進めます。

1行をコピー/カット・ペーストする

  1. コピー(カット)したい行までカーソルを移動します。
    • 行をコピー(カット)するので行の先頭に置いても中間に置いても問題はありません。
  2. 行をコピー、もしくはカットするコマンドを入力します。
    • 1行のコピー:「yy」と入力します。
      • カーソルが存在する1行がコピーされます。コピーの場合、画面上の表示はこの段階では変わりません。

    • 1行のカット(切り取り):「dd」と入力します。
      • カーソルが存在する1行が切り取りされます。見比べると6行目が切り取られていることがわかります。

  3. コピーやカットした行をペーストするには、任意の行までカーソルを移動し「p」と入力します。
  4. コピー(カット)した1行がペーストされました。

複数行を指定してコピー/カット・ペーストする

続いては、複数行をコピー/カットしてペーストする方法です。

解説では行数がわかりやすいよう、「:set number」と入力して行番号を表示させておきます。

  1. コピー(カット)したい行の先頭までカーソルを移動します。
  2. 複数行を指定してコピー・カットするには次のコマンドを入力します。
    • 複数行をコピーする:「コピーする行数yy」と入力します。
      • 現在の行から3行目から8行分(10行目まで)をコピーするには、「8yy」と入力します。下部にヤンク(コピー)された行数が表示されます。
    • 複数行をカットする:「カットする行数dd」と入力します。
      • 現在の行から8行分(10行目まで)をカットする場合は「8dd」と入力します。

  3. コピーやカットした行をペーストするには、任意の行までカーソルを移動し「p」と入力します。
  4. コピー、もしくはカットした複数行がペーストされます。

行番号を指定してコピー/カット・ペーストする

上記の方法で複数行を一度にコピーできますが、開始行からの行数を指定するため、行番号を指定できない部分がやや面倒臭さを感じるケースもあります。

続いては、行番号を指定してコピー/カット・ペーストする方法を紹介します。

  1. 行番号を指定してコピー、もしくはカットします。
    • コピーする場合
      行番号を指定してコピーするには、以下のコマンドを入力します。「:」を入力する必要がある点に注意してください。
      :開始する行番号,終了する行番号y
      • 例:3行目から10行目をコピーするには「:3,10y」と入力してEnterキーを押します。
    • カットする場合
      カットは次のコマンドを入力します。同じく「:」から入力する点に注意してください。
      :開始する行番号+,終了する行番号d
      • 例:3行目から10行目をカットするには「:3,10d」と入力してEnterキーを押します。

  2. コピーやカットした行をペーストするには、任意の行までカーソルを移動し「p」と入力します。
  3. 指定した行番号でペーストすることができます。

1行で指定する場合

上記は、行番号を複数行で指定するケースを紹介していますが、1行のみの場合は次のように指定します。

  • コピーの場合
    :行番号y
  • カットの場合
    :行番号d

以上、Vimエディタで行をコピーやカット・ペーストするコマンドでした。

IT・デジタル
Howpon[ハウポン]

コメント