テキストエディタ vi (=vim)の使い方

2022.09.06
2025.02.06


viはシンプルで軽いテキストエディタです。
Linuxではたぶんデフォルトで入っている思いますが、デフォルトのviは、キーボードの矢印キーを押すと変なところにとんだりして使いづら かったりするので vim をインストールすると便利です。
debian系のディストリビューションでは sudo apt-get install vim
で一発でインストールできます。インストール後 viで起動するとvimが動きます。

 viは、起動時には、コマンドモードになっていて、普通のエディタのように文字を入力することができません。入力するときは、aまたはiを押し て入力モードにします。
 文字列検索や置換、カットアンドペーストなどは、ESCを押してコマンドモードに切り替えないと使えません。ただこれだけなのですが、この切り 替えが分かりづらくて不人気なのだと思います。
 しかし、なんとエスケープシーケンスの文字(タブや改行など)も一括変換もできるので、とても便利に感じます。

使い方

1 起動

  vi  ファイル名

2 終了

(1)書き込んで終了
   ESCを押してコマンドモードにしてから :wq!
(2)書き込まずに終了
   ESCを押してコマンドモードにしてから :q!


3 モードの切り替え



viエディタは文字を入力する入力モードと、入力をしないコマンドモードがあります。
起動時はコマンドモードになっていて、そこから文字を入力するにはi, カーソルの右隣の位置か ら入力するコマンドはa
もともとある文字を書き換えるモードは大文字のR
 
ESCを押すとコマンドモードに戻る

ポイント
 文字の入力は、半角の i まはた a を押すと入力できるようになる。
 ESCを押すとコマンドモードとなって、文字の入力以外のことができる
  ※いずれもコマンドは半角で、大文字、小文字は区別される。

4 コマンドモードの機能


移動     
先頭の行に移 動 :1     3行目に移動 :3   n行目に移動 :n
          文末に移動 :$
          行頭に移動 0 行末に移動 $

削除       
一行削除 dd  3行削除    3dd n行削除 ndd
            
一文字削除(xはいずれも小文字) x   3文字削除  3x   n文字削除 nx

書換       カーソルの位置を一文字書換 r

行番号表示  :se nu

検索    /検索文字列  次の文字列を探すには n

置換     行目から行 目の範囲の文字列を変えるには
      :m,ns/検 索文字列/置 換文字列

直前に実行した置換を繰り返すときは @:

 例 1行目から最終行までの間にあるjouhouという文字をjohoに変換 
           :1,$s/jouhou/joho

ただし、1行に複数箇所以上、該当の検索文字列があるときは、各行とも
先頭の該当検索文字列しか置換しないので、そのあと @:コマンドを
複数回繰り返す必要がある場合もある


エスケープ文字の入力
TABや改行などのエスケープシーケンス文字はCTRL+vをしてから入れる
例えばtabコードを検索したいときはコマンドモードで/のあとにCTRL+v をしてから
タブキーを押す  /^I  のように表示されてタブコードを検索することができる。
改行コードはCTRL+vのあとにenterを押すと ^Mと表示される
例 1行目から最終行目までにあるタブコードを改行コードに変換
:1,$s/^I/^M


カット&ペースト
       n行バッファに(ク リップボードに取り込み)カーソルのある位置にペーストするには
    nyy
       ペー ストしたいところに移動して
    p


他のテキストファイルをカーソルの位置に読み込み
   :r ファイル名

保存して終了
     :wq!
保存しないで終了
     :q!

特殊な文字の扱い
 文字の前にバックスラッシュ\をいれる。
 例 100行目から200行目にあるbin/bashを/bin/bashに変換するに は
   :100,200s/bin\bash/\/bin\/bash