Linuxでvim/viコマンドを使ってテキストファイルを操作する方法

Linuxでvim/viコマンドを使ってテキストファイルを操作する方法

普段Windowsをメインに使っていると、たまにLinux(おもにCentOS 7)環境で、viコマンドなどでテキストファイルを編集すると、操作方法がわからなくなりコマンドを調べながら作業しております。

そこでここでは、Linux環境で一般的なテキストエディタコマンドであるVim(vi)の、インストールから基本的な操作方法を紹介します。

動作環境

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

ソフトウェアバージョン
CentOS Linux7.4.1708

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

インストール

CentOS 7を最小構成でインストールするとVimがインストールされていないので、インストールします。

# yum -y install vim-enhanced

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

# vim /etc/profile

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

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

# source /etc/profile

初期設定

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

# vim ~/.vimrc

set number "行の先頭に行番号を表示します
set autoindent "改行時に前の行のインデントを継承します
set hlsearch "検索した文字列をハイライトします

Vimの基本的な操作

モードを使い分けよう

Vimでは、モードを使い分けて利用します。起動時は「コマンドモード」です。文字を入力したり編集するときは「I」キーを押し「編集モード」に変更します。画面左下に「--挿入--」と表示されていれば、編集モードになっています。

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

カーソルを移動する

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

Linuxでvim/viコマンドを使ってテキストファイルを操作する方法

コマンド説明
gg最初の行
11G11行目
G最終行

ファイルを保存する/終了する

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

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

操作を戻す(アンドゥ)

操作を間違えてしまったときに、もとに戻す場合もコマンドモードで行います。

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

文字列をカット&ペーストする

コピー・切り取り・貼り付けも、コマンドモードで行います。

コマンド説明
yy1行コピー
5yy5行コピー
dd1行切り取り
5dd5行切り取り
p貼り付け

文字列を検索する

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

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

Vimの便利機能

画面分割

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

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

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

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

Linuxでvim/viコマンドを使ってテキストファイルを操作する方法

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

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

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

チューター機能

Vimには、対話形式のチュートリアルが用意されています。これで自習もできます。

# vimtutor

あとがき

Vimには、ここで挙げた機能以外にも多くの機能があります。ぜひ自分好みにカスタマイズして、作業効率をアップさせましょう!