Linuxの標準テキストエディターVim(vi)の基本的な使い方

Linuxの標準テキストエディターVim(vi)の基本的な使い方

普段Windowsをメインに使っていると、たまにCUIのLinux環境でVimを使ってテキストファイルを編集するときに、操作方法がわからなくなり困ることがあります。

そこでここでは、Linux環境で標準的なコマンドベースのテキストエディターVim(vi)の、インストールから基本的な使い方を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Alma Linux9.3

Vimのインストールと初期設定

インストール

多くのLinux環境では、デフォルトでVimがインストールされていることも多いですが、インストールされていない場合は、以下のコマンドでインストールできます。

# dnf -y install vim-enhanced

Vimをインストールしたら、viコマンドでvimが起動するように設定します。

# vim /etc/profile

alias vi='vim' #最終行に追加

上の設定を適用するために、設定を再読み込みさせます。

# source /etc/profile

初期設定

Vimには便利な機能がたくさんあります。その中でも常に使いたい機能については、ユーザーのホームディレクトリに設定ファイルを作成して、vim起動時に自動的に有効化することができます。

# vim ~/.vimrc

syntax on "シンタックスハイライトをオン
set cursorline "現在カーソルがある行を分かりやすく表示
set number "行の先頭に行番号を表示
set autoindent "改行時に前の行のインデントを継承
set hlsearch "検索した文字列をハイライト

Vim(vi)の使い方

ファイル開く

ファイル開くときは、以下のようにコマンドを実行します。

$ vim test.txt

モードを使い分ける

Vimには、3つのモードがあり操作内容に応じてモードを切り替えます。

  • ノーマルモード:ファイルを開いた直後はノーマルモードで、カーソル移動や開いているファイルの保存などはノーマルモードで行います。
  • 挿入モード:文字を入力するときは、ノーマルモードから挿入モードに変更して入力します。
  • ビジュアルモード:選択範囲を編集するときには、ノーマルモードからビジュアルモードに変更することで、文字列を範囲選択できます。

画面左下に「--挿入--」と表示されいるときは挿入モードで、「--ビジュアル--」と表示されているときはビジュアルモードです。

Linuxの標準テキストエディターVim(vi)の基本的な使い方

挿入モードの画面

Linuxの標準テキストエディターVim(vi)の基本的な使い方

ビジュアルモードの画面

自分が今どのモードにいるかわからなくなったときは、「ESC」キーを1~2回押してノーマルモードに変更します。迷ったら「ESC」キーと覚えておきましょう。

カーソルの移動

ノーマルモードでカーソルを移動するときは、下図のようにアルファベットの「HJKL」それぞれのキー、もしくは矢印キーで移動できます。

Linuxの標準テキストエディターVim(vi)の基本的な使い方

そのほかのカーソル移動で役立つキーは以下のとおりです。

キー操作説明
ggファイルの先頭行に移動
Gファイルの最終行に移動
11G11行目に移動
b単語単位で左に移動
e単語単位で右に移動
(文単位で左に移動
)文単位で右に移動
{段落単位で左に移動
}段落単位で右に移動

ファイルの保存/終了

ファイルの保存と終了は、ノーマルモードで行います。

コマンド説明
:wqファイルを保存して終了
:wファイルを保存
:q!ファイルを保存せずに終了(変更は全て破棄)
:sav <ファイル名>指定した名前で保存

操作を戻す(アンドゥ)

操作を戻したいときは、ノーマルモードで行います。

コマンド説明
u直前の操作を取り消す
:e!保存時点まで戻る

行単位で文字列のカット&ペースト

文字列を行単位でコピー・切り取り・貼り付けするときは、ノーマルモードで行います。

コマンド説明
yyカーソル行をコピー
5yyカーソル行から5行コピー
ddカーソル行を切り取り
5ddカーソル行から5行を切り取り
pカーソル行に貼り付け

選択した文字列のコピー/削除

選択した文字列をコピーしたいときは、範囲選択したい文字列の先頭にカーソルを合わせてからビジュアルモードに変更し、カーソルを移動して文字列を選択します。

コマンド説明
vカーソルを移動して文字列を選択
Vカーソルを移動して行を選択
Ctrl+vカーソルを移動して矩形選択
y選択した文字列をコピー
x選択した文字列を削除

文字列の検索/置換

文字列やパターンを検索するときはノーマルモードで行い、検索文字列には正規表現も使用できます。

コマンド 説明
/検索文字列 カーソル位置から順方向に、指定した文字列を検索
?検索文字列 カーソル位置から逆方向に、指定した文字列を検索
n 次を検索
N 逆方向に次を検索
:%s/A/B/ 文字列Aを文字列Bに一つ置換
:%s/A/B/g 文字列Aを文字列Bにすべて置換

Vimの便利機能

画面の分割

Vimでファイル編集時に、ノーマルモードで「:split」と入力すると、現在編集中のファイルを上下2分割で表示できます。長い行数のファイルを編集するときなどに便利です。

また「:split テキストファイル名」と入力すると、現在編集中のファイルが下段に、新たに指定したテキストファイルを上段に分割して表示することもできます。

分割した画面間の移動は、「Ctrl」キーを押しながら「w」を2回入力することで移動することができます。

ちなみに画面を分割すると、以下のような画面表示になります。

Linuxの標準テキストエディターVim(vi)の基本的な使い方

コマンド実行結果を貼り付け

Vimでテキストファイルを編集しているときに、ノーマルモードで「!! <コマンド>」と入力すると、コマンドの実行結果を編集中のファイルに貼り付けることができます。

たとえば「!! ls」と入力すると、lsコマンドの実行結果が編集中のファイルに貼り付けられます。

チューター機能

Vimには、対話形式のチュートリアルが用意されており、Vimの使い方をより理解したいときに自習できます。

# vimtutor

あとがき

Vimには、ここで挙げた機能以外にも多くの機能があり、プラグインをインストールすれば機能を拡張することもできますが、まずはここで紹介している基本的な使い方を理解しておけば大丈夫でしょう。