普段Windowsをメインに使っていると、たまにCUIのLinux(おもにCentOS 7)環境で、viを使ってテキストファイルを編集すると、操作方法がわからなくなり困ることがあります。
そこでここでは、Linux環境で一般的なコマンドベースのテキストエディターVim(vi)の、インストールから基本的な操作方法を紹介します。
目次
動作環境
この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
CentOS Linux | 7.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(vi)の基本的な使い方
モードを使い分ける
Vimでは、モードを使い分けて利用します。テキストファイルを開いたときは「コマンドモード」で、文字を入力するときは「I」キーや「O」キーを押して「編集モード」に変更します。
画面左下に「--挿入--」と表示されていれば、編集モードになっています。
自分が今どのモードにいるかわからなくなったときは、「ESC」キーを1~2回押してコマンドモードに変更します。迷ったら「ESC」キーと覚えておきましょう。
カーソルを移動する
コマンドモードでカーソルを移動するときは、下図のようにアルファベットの「HJKL」それぞれのキー、もしくは矢印キーで移動します。
ファイルの先頭行に移動したいときは「gg」と入力し、ファイルの最終行に移動したいときは「G]と入力します。
指定した行に移動したいときは行数に「G」を付加して入力します。たとえば、11行目に移動したいときは「11G」と入力します。
ファイルを保存する/終了する
ファイルの保存と終了は、コマンドモードで行います。
コマンド | 説明 |
---|---|
:wq | ファイルを保存して終了 |
:w | ファイルを保存 |
:q! | ファイルを保存せずに終了(変更は全て破棄) |
操作を戻す(アンドゥ)
操作を戻したいときは、コマンドモードで行います。
コマンド | 説明 |
---|---|
u | 直前の操作を取り消す |
:e! | 保存時点まで戻る |
文字列をカット&ペーストする
文字列をコピー・切り取り・貼り付けするときは、コマンドモードで行います。
コマンド | 説明 |
---|---|
yy | カーソル行をコピー |
5yy | カーソル行から5行コピー |
dd | カーソル行を切り取り |
5dd | カーソル行から5行を切り取り |
p | カーソル行に貼り付け |
文字列を検索する
文字列やパターンを検索するときは、コマンドモードで行い検索文字列には正規表現も使用できます。
コマンド | 説明 |
---|---|
/検索文字列 | カーソル位置から順方向に、指定した文字列を検索 |
?検索文字列 | カーソル位置から逆方向に、指定した文字列を検索 |
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には、ここで挙げた機能以外にも多くの機能がありますが、基本的な使い方はここで紹介している内容を理解しておけば大丈夫でしょう。