【Linux】vimエディタでテキスト編集する方法(hands-on形式)

Linux
スポンサーリンク

※本サイトにはプロモーション・広告が含まれています(はづきのブログより)

※この記事は初心者向けに平易に解説しています。正確な理解をしたい人は専門書・専門家をあたっていただければと思います。また、この記事の情報におけるCPの動作結果については自己責任でお願いします。

はづき
はづき

こんにちは!はづきです

文系から一部上場IT企業に就職し、エンジニアをやっています

この記事では以下のLinux操作について解説していきます!
hands-on形式になっているので、実際に操作しながら確認してみてください!

  1. vimエディタのインストールと起動方法
  2. vimエディタを使ったファイルの作成と編集
  3. vimエディタで効率的に編集するためのコマンド操作

 

<共有>
Linuxに関するまとめ記事は以下になります!
環境構築、Linuxの概要、コマンドごとの詳細、を記事にしています。ぜひご参考ください

<前提>
1.この記事はLinux hands-onシリーズの第3回となります
 第1~2回の知識を前提としますのであらかじめご了承ください

 第1回:【Linux】hands-onで学ぶ|ディレクトリの種類とパスについて

 第2回:【Linux】ディレクトリ・ファイルの作成と削除の方法

2.Linuxを動かすための環境構築ができていない方は以下をご参考ください

 参考:Ubuntuのインストール方法を解説~Windows PCでLinuxを動かす~

3.この記事ではLinuxターミナル画面の様子を以下のように表現します

スポンサーリンク

vimはLinux用のテキストエディタ

vimはLinux用のテキストエディタです!

Windowsの「メモ帳」アプリのように、ファイルの作成や編集をすることができます

ただし、GUI操作のWindowとは異なり、CUI操作のLinuxではコマンドでvimエディタを操作する必要があります。そのため、たかがテキストエディタを操作するだけでも多少の知識や慣れが必要です

また、Linuxの書籍や解説サイトでは「vi」と呼ばれることがあります。これはviエディタの後継がvimエディタにあたるという経緯があるためです。現在(2024/3/21)はvimエディタが最新版であり、viのコマンドを実行しても基本的にはvimが立ち上がります

以下で、基本操作を確認していきます。一緒に操作をしながら練習していきましょう!

vimの基本操作を確認

第2回から続けてこの記事をご覧になっている方は、以下のようなディレクトリ構成になっていると思います

#ディレクトリ構成
/ #←ルートディレクトリ
┗ home
 ┗ hazukiblog #←ホームディレクトリ(ユーザ名のディレクトリ)
  ┗ work

 

今回は「work」ディレクトリ配下にvimエディタで新規ファイルを作成して、vimのコマンド操作を練習していきます

まずは、以下の手順でカレントディレクトリを「work」にします

  1. pwdでカレントディレクトリがホームディレクトリであることを確認
    ※異なるディレクトリにいる場合、「cd ~」を実行してホームディレクトリに移動する
  2. lsでホームディレクトリ配下に「work」があることを確認
    ※なければ「mkdir work」を実行して作成する
  3. cdで「work」に移動する
  4. pwdでカレントディレクトリが「work」であることを確認
※以下、Linuxターミナル画面(Ubuntu)
hazukiblog@hazukiBlog:~$ pwd #手順1
/home/hazukiblog
hazukiblog@hazukiBlog:~$ ls #手順2
work
hazukiblog@hazukiBlog:~$ cd work/ #手順3
hazukiblog@hazukiBlog:~/work$ pwd #手順4
/home/hazukiblog/work
hazukiblog@hazukiBlog:~/work$

vimをインストールする

まずはvimエディタをインストールしていきます

ただし、vimエディタはLinux環境構築時にLinuxディストリビューションにデフォルトで搭載されていることが多く、基本的には既に使える状態になっています

そのため、最初にインストールされているかどうかを確認してみましょう!

「vim --version」と入力して実行してください
以下のようにたくさん行数が出てくれば既にインストールされています

※以下、Linuxターミナル画面(Ubuntu)
hazukiblog@hazukiBlog:~/work$ vim --version #コマンド実行
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Apr 18 2023 11:40:57)
Included patches: 1-3995, 4563, 4646, 4774, 4895, 4899, 4901, 4919
Modified by team+vim@tracker.debian.org
Compiled by team+vim@tracker.debian.org
Huge version without GUI.  Features included (+) or not (-):
+acl               +file_in_path      +mouse_urxvt       -tag_any_white

#行数が多いため省略

lcrypt -ldl -lm -lm
hazukiblog@hazukiBlog:~/work$

 

インストールされていない場合、エラーメッセージが表示されます

そのようなときは、以下のインストールコマンドを実行して、vimエディタをインストールしましょう

※以下はUbuntuがLinuxディストリビューションの場合のコマンドです。

※以下、Linuxターミナル画面(Ubuntu)で実行する
sudo apt-get install vim

 

vimがインストールされていることが確認できたので、vimを起動してみましょう!

以下のように「vim」とだけ入力してvimを起動してみましょう
※vimの旧版「vi」と入力しても同じ実行結果になります

※以下、Linuxターミナル画面(Ubuntu)
hazukiblog@hazukiBlog:~/work$ vim
hazukiblog@hazukiBlog:~/work$

上記のような画面が出力されて正常に起動できたことが確認できました

画面の指示通り「:q」と入力後、「Enter」を押下してもとのターミナル画面に戻りましょう!

vimでファイル作成する

Noコマンド実行結果
1vim {ファイル名}{ファイル名}のファイルの編集画面(vim画面)を開く
2:qvim画面の終了
3:w編集内容の保存
4:wq編集内容を保存してvim画面の終了

vimエディタで「sample1」という名前のファイルを新規作成していきます

手順は以下の通りです

  1. ターミナル画面で「vim sample1」を実行する
  2. vim画面で「:w」と入力し「Enter」を押下して保存する
  3. vim画面で「:q」と入力し「Enter」を押下してターミナル画面に戻る
  4. lsコマンドで「sample1」ファイルができたことを確認する

手順2,3は「:wq」というコマンドを1回実行するだけでもOKです

 

▼手順1:「vim sample1」を実行しvim画面を開く

※以下、Linuxターミナル画面(Ubuntu)
hazukiblog@hazukiBlog:~/work$ pwd #カレントディレクトがworkであることを確認
/home/hazukiblog/work
hazukiblog@hazukiBlog:~/work$ vim sample1 #「vim sample1」を実行しvim画面へ

↑上記がvimの編集画面
 空の行は「~」で表示される
 作成したばかりで中身が空のファイルのため、どの行も「~」になっている

▼手順2:「:w」を実行して保存する

▼手順3:「:q」を実行してvim画面を終了する

▼手順4:lsで「sample1」ができたことを確認

※以下、Linuxターミナル画面(Ubuntu)
hazukiblog@hazukiBlog:~/work$ ls
sample1
hazukiblog@hazukiBlog:~/work$

vimでファイル編集する

vimには以下の2つのモードがあり、このモードを切り替えながらファイルを編集していきます

  • ノーマルモード...ファイルの保存、終了、既存テキストの編集
  • インサートモード...新規のテキスト入力

vim画面を開くとデフォルトでノーマルモードになります。以降では、インサートモードに切り替えてファイルに自由にテキストを書き込んでいきます

 

以下の手順で、"work"ディレクトリ配下の"sample1"ファイルのvim画面を開きます

  1. 「pwd」でカレントディレクトリが”work”であることを確認
  2. 「ls」で”work”ディレクトリ配下にsample1ファイルがあることを確認
  3. 「vim」で"sample1"ファイルのvim画面を開く
※以下、Linuxターミナル画面(Ubuntu)
hazukiblog@hazukiBlog:~/work$ pwd #手順1
/home/hazukiblog/work
hazukiblog@hazukiBlog:~/work$ ls #手順2
sample1
hazukiblog@hazukiBlog:~/work$ vim sample1 #手順3
hazukiblog@hazukiBlog:~/work$

vim画面を開いた段階では"ノーマルモード"という状態になっており、ファイルの保存や既存テキストの編集が行えます。このモードでは、ファイルに新規に文字を入力することはできません

そのため、「i」を押下して"インサートモード"に切り替える必要があります

実際に「i」を押すと画面下部に「--INSERT--」と表示されて、文字が入力できるようになります

 

以下のような文字列を入力して、「esc」キーを押下してください。「esc」キーを押下すると"ノーマルモード"に戻ります

"ノーマルモード"に戻れば、保存(:w)やvim画面終了(:q)のコマンドを実行できるようになるため、そのまま「:wq」で保存&終了をしましょう!

 

さて、Linuxのターミナル画面に戻ってきました

最後にsample1ファイルに入力したテキストが保存されていることを確認してみます。「cat {ファイル名}」で指定したファイルの中身を表示することができます

「cat sample1」を実行して、中身を確認しましょう!

※以下、Linuxターミナル画面(Ubuntu)
hazukiblog@hazukiBlog:~/work$ cat sample1
hazukiBlog sample text
foo
bar
hoge
foofoo
barbar
hogehoge
hazukiblog@hazukiBlog:~/work$

「E325:ATTENTION」の対応

「vim {ファイル名}」でvimの編集画面を開こうとすると上記のようなエラーが出ることがあります

これは、別システムが指定したファイルと同じファイルを開いているために起こってしまうエラーです

よくある原因は以下です

  • 前回のvim画面で「:q」でなく、「ctrl + C」で終了してしまった
  • 前回のvim画面で編集中に右上の「×」を押下して、ターミナルを閉じてしまった

 

このエラーに対する対応は以下の手順で行えます

  1. 「q」を押下してE325エラー画面からターミナル画面に戻る
  2. 「ls -a」で編集しようとしていたファイルと同階層のファイルをすべて表示する
  3. 「rm」で編集しようとしていたファイルと同名のswpファイルをすべて削除する
  4. 再度、「vim {ファイル名}」でvim画面を開く
※以下、Linuxターミナル画面(Ubuntu)
hazukiblog@hazukiBlog:~/work$ ls -a #手順2
.  ..  .sample1.swp  sample1 #謎の「.sample1.swp」というファイルが作成されている
hazukiblog@hazukiBlog:~/work$ rm .sample1.swp #手順3
hazukiblog@hazukiBlog:~/work$ vim sample1 #手順4 vim画面が開くはず。。

vimの便利なコマンド

以降ではvim特有のコマンドを紹介します!

ノーマルモードの状態で使えるコマンドです。これらを覚えておくことでvimでの編集が効率的に行えるようになります

最近ではWindowsなどのGUI操作でファイルを作成して、実行環境としてのLinuxマシーンにファイルを配置する、という流れが多いのでvimでごりごり編集する機会は少ないと思います。そのため、前項で解説した基本操作とインサートモードが使えれば十分だったりしますが、興味のある方は読んでみて下さい

カーソル移動・編集系コマンド

ノーマルモードで以下のコマンドを押下するだけでEnter不要で実行されます

以下はカーソル移動系のコマンドです

Noコマンド         実行結果                     
1h左に1文字カーソル移動
2j下に1文字カーソル移動
3k上に1文字カーソル移動
4l右に1文字カーソル移動
5w右に1単語分カーソル移動
6b左に1単語分カーソル移動
7gg1行目に移動
8G最終行に移動
9{数字} G指定した行数に移動 
例. 「5G」と入力すると5行目にカーソルが移動する

以下はテキスト編集系のコマンドです

Noコマンド         実行結果                     
1x1文字削除(デリート)
2d$カーソルから行末まで削除(デリート)
3d0カーソルから行頭まで削除(デリート)
4ddカーソルのある行を削除(デリート)
5yyカーソルのある行をヤンク(コピー)
6pデリートorコピーしたテキストの貼り付け
7u1~6の編集コマンドの取り消し
8「ctrl」 + 「r」7の取り消しコマンドの取り消し

文字列検索コマンド

vimではファイル内のテキストに対して文字列検索することができます

Noコマンド         実行結果                      
1/{文字列}{文字列}を下方向に検索する
2?{文字列}{文字列}を上方向に検索する
3n次の検索結果に移動する
4N前の検索結果に移動する

 

例として、「foo」という単語を検索してみます

1.「/foo」と入力してEnterを押下する
 →テキスト内で一番上にある「foo」にカーソルがあたる

2.「n」を押下する
 →テキスト内で2番目に上にある「foo」にカーソルがあたる
  ※以降、「n」を押すたびに次の「foo」にカーソル移動する

文字列置換コマンド

vimではファイル内のテキストに対して文字列置換をすることができます

:%s/{置換前文字列}/{置換後文字列}/g

 

例として、「bar」を「baz」に置換してみます

1.「:%s/bar/baz/g」と入力する

2.Enterを押下してコマンドを実行すると、以下のように文字列が置換される

 

以上で、vimエディタの使い方解説は終わりです!

みなさんのお役に立てば幸いです。最後まで読んでいただきありがとうございました

おしまい

<共有>
1.もっと詳しい使い方・オプションについて知りたい方は以下のまとめ記事から「コマンドごとの解説ページ」をご参考ください

コメント

タイトルとURLをコピーしました