Linuxでテキストファイルを編集する方法(Vim、nano)

Linuxでテキストファイルを編集する方法(Vim、nano)

普段Windowsをメインに使っていると、CUI環境のLinuxでテキストファイルを編集するときに、編集しづらいと感じることが多々あります。

そこでここでは、Linux環境で標準的なコマンドベースのテキストエディターVim(vi)の使い方や、Vimより直感的に利用できるテキストエディター「nano」の使い方を紹介します。

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

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

Vim(vi)

多くのLinux環境では、標準のテキストエディターとしてVim(vi)がインストールされていることが多いため、いろいろなLinux環境でテキストファイルを編集することがあるなら、Vimの使い方をマスターしておくべきでしょう。

Vimのインストール

Vimがインストールされていない場合は、以下のコマンドでインストールできます。

# dnf -y install vim-enhanced

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

# vim /etc/profile

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

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

# source /etc/profile

Vimの初期設定

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

# vim ~/.vimrc

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

Vimの使い方

ファイル開く

ファイル開くときは、以下のようにコマンドを実行します。(ファイル名を指定せずに実行した場合は、空のテキストファイルが開きます。)

$ vim <テキストファイル名>

モードを使い分ける

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

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

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

Linuxでテキストファイルを編集する方法(Vim、nano)

挿入モードの画面

Linuxでテキストファイルを編集する方法(Vim、nano)

ビジュアルモードの画面

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

カーソルの移動

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

Linuxでテキストファイルを編集する方法(Vim、nano)

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

キー操作説明
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、nano)

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

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

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

チューター機能

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

# vimtutor

nano

nanoとは

Linuxでテキストファイルを編集する方法(Vim、nano)

nano – Text editor

nanoは、Linux環境で利用できるテキストエディターで、Vim(vi)のように操作に独特のキー操作を必要とせず直感的に利用できるテキストエディターとして人気があります。

最近では、多くのLinuxディストリビューションやmacOSに標準でインストールされていることが多いようです。

nanoのインストール

nanoが、インストールされていない場合も標準リポジトリから簡単にインストールできます。

# dnf -y install nano

Linuxでテキストファイルを編集する方法(Vim、nano)

nanoの使い方

nanoでテキストファイルを開くときは、以下のようにコマンドを実行します。(ファイル名を指定せずに実行した場合は、空のテキストファイルが開きます。)

# nano <テキストファイル名>

編集画面は以下のような感じで、画面下部には主なキー操作が表示されており、いちいち調べなくても簡単に操作できます。

Linuxでテキストファイルを編集する方法(Vim、nano)

カーソル移動は上下左右の矢印キーのほかに、以下のキー操作で行えます。

操作ショートカットキー
カーソルを行頭へ移動するCtrl+A
カーソルを行末へ移動するCtrl+E
カーソルを単語単位で移動するCtrl+矢印キー
カーソルを文頭へ移動するAlt+\
カーソルを文末へ移動するAlt+/

切り取りや貼り付けは、以下のキー操作で行います。

操作ショートカットキー
文字列を選択するShift+矢印キー
行または選択範囲を切り取りCtrl+K
カーソル位置に貼り付けCtrl+U
選択範囲をコピーAlt+6

文字列の検索や置換は、以下のキー操作で行います。

操作ショートカットキー
文字列を検索するCtrl+W
文字列を置換するCtrl+\

操作の取り消しややり直しは、以下のキー操作で行います。

操作ショートカットキー
操作を取り消す(アンドゥ)Alt+U
操作をやり直す(リドゥ)Alt+E

ファイルを保存したり終了するときは、以下のキー操作で行います。

操作ショートカットキー
ファイルに保存するCtrl+O
ファイルに保存して終了するCtrl+X
ファイルを読み込むCtrl+R

以上が基本的な操作方法で、そのほかの細かい操作方法については、Ctrl+Gキーを押してヘルプ画面を表示することでいつでも確認できます。

Linuxでテキストファイルを編集する方法(Vim、nano)

あとがき

Vimもnanoも、多くのLinux環境に標準でインストールされているので、ここで紹介している操作方法をマスターしておけば、Linux環境でのファイル編集で困ることはないでしょう。