普段Windowsをメインに使っていると、たまにCUIのLinux環境でVimを使ってテキストファイルを編集するときに、操作方法がわからなくなり困ることがあります。
そこでここでは、Linux環境で標準的なコマンドベースのテキストエディターVim(vi)の、インストールから基本的な使い方を紹介します。
この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
Alma Linux | 9.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つのモードがあり操作内容に応じてモードを切り替えます。
- ノーマルモード:ファイルを開いた直後はノーマルモードで、カーソル移動や開いているファイルの保存などはノーマルモードで行います。
- 挿入モード:文字を入力するときは、ノーマルモードから挿入モードに変更して入力します。
- ビジュアルモード:選択範囲を編集するときには、ノーマルモードからビジュアルモードに変更することで、文字列を範囲選択できます。
画面左下に「--挿入--」と表示されいるときは挿入モードで、「--ビジュアル--」と表示されているときはビジュアルモードです。
自分が今どのモードにいるかわからなくなったときは、「ESC」キーを1~2回押してノーマルモードに変更します。迷ったら「ESC」キーと覚えておきましょう。
カーソルの移動
ノーマルモードでカーソルを移動するときは、下図のようにアルファベットの「HJKL」それぞれのキー、もしくは矢印キーで移動できます。
そのほかのカーソル移動で役立つキーは以下のとおりです。
キー操作 | 説明 |
---|---|
gg | ファイルの先頭行に移動 |
G | ファイルの最終行に移動 |
11G | 11行目に移動 |
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回入力することで移動することができます。
ちなみに画面を分割すると、以下のような画面表示になります。
コマンド実行結果を貼り付け
Vimでテキストファイルを編集しているときに、ノーマルモードで「!! <コマンド>」と入力すると、コマンドの実行結果を編集中のファイルに貼り付けることができます。
たとえば「!! ls」と入力すると、lsコマンドの実行結果が編集中のファイルに貼り付けられます。
チューター機能
Vimには、対話形式のチュートリアルが用意されており、Vimの使い方をより理解したいときに自習できます。
# vimtutor
あとがき
Vimには、ここで挙げた機能以外にも多くの機能があり、プラグインをインストールすれば機能を拡張することもできますが、まずはここで紹介している基本的な使い方を理解しておけば大丈夫でしょう。