Help us understand the problem. What is going on with this article?

Linuxを扱えるようになろう(vi/vimエディタ)

More than 1 year has passed since last update.

こんにんちわ
グローバルセンス株式会社のsknaehiraです。

前回では、Linuxの基本操作について書いたので、
今回はLinux上でテキストを編集するエディタvi/vimについて紹介していきます。

viはLinuxで標準で使用できるテキストエディタです。
そして、vimはそのviの拡張版になります。

違いに関しては、こちらの方を参照頂ければと思います。

最初に

viは編集モードとコマンドモードというのがあります。

編集モードはその名前の通り、ファイルの中身を編集するモードです。
ではコマンドモード?というとファイルの保存、文字検索をする時に使用するモードです。

最初はなれないと思いますが、
慣れたらどうってことないです。

では、使ってみましょう。

アジェンダ

  • ファイルを開く
  • ファイルを編集
  • ファイルを保存
  • 文字列の検索
  • 文字列の置換
  • エディタ終了

ファイルを開く

ファイルを開くときは以下の様に実行するだけです。

# vi 対象ファイル名
[skanehira@localhost ~]$ vi file

実行すると以下の画面になります。
存在しないファイルの場合は新規作成になるので、画面下部に[New File]と表示されます。
image.png

ファイルを開く時、オプションをつけることが出来ます。
基本使わないのですが、Rをつけると読み取り専用でファイルを開きます。
うっかり編集してしまわないようにしたいという方はRを付けて見て下さい。

[skanehira@localhost ~]$ vi -R file

ちなみに、読み取り専用で開いた後編集しようとすると画面下部に「W10: Warning: Changing a readonly file」と表示されます。

image.png

ファイルを編集

ファイルを開いた後に、iを入力すると編集モードに移行し
画面最下部にINSERTと表示されます。

image.png
image.png

ファイルを保存する

ファイルを保存するには編集モードを抜けてコマンドモードで保存する必要があります。
編集モードを抜けるには以下の幾つかやり方がありますので、好きなやり方で保存してみて下さい。

ちなみに、自分はEscが一番慣れています。

ショートカット
Ctr + [
Ctr + C
Esc

編集モードを抜けると以下の様にINSERTが表示されなくなります。
image.png

抜けた後は、[:w]と入力してEneterを押下すると保存されます。

image.png

保存後、「"file" 9L, 189C written」というように「ファイル名 行数, 文字数」が表示されます。
image.png

文字列の検索

文字列を検索する時は「/」を入力後検索したい文字を入力してEnterを押下して下さい。
image.png

この場合「ad」を検索する事になります。
検索した文字が見つかった場合、カーソルが移動します。
欲を言えば標準で色を付けてほしいところですかね。

image.png

検索に引っかかった文字が複数ある場合、そのまま「n」を押下すると次の文字にカーソルが移動します。
逆に前に移動したい時は「Shift + n」になります。

見つからない場合はこのようになります。(なぜこっちは色が付くのだ…)
image.png

文字列の置換

検索と来たらもちろん置換もあります。
文字列の置換のは場合は「:%s;置換対象文字;置換したい文字;g」を入力した後に以下の様に入力して下さい。

例えば、下記の場合は文字列aをpに置換します。
image.png
image.png

エディタを閉じる

保存してエディタを終了したい時に「:wq」を入力して下さい。
保存し後にエディタを閉じます。

逆に保存せずに終了したい場合は「:q!」と入力して下さい。
そうすれば編集内容が保存されずにエディタを閉じます。

最後に

最低限上記の操作をできるようになれば、
Linuxのコンソール上でもファイルの中身を編集できます。

次回はLinuxのパッケージ管理システムであるyumについて書いていきます。
仕組みと使い方が分かればソフトウェアのインストールは楽ちんですb

gorilla0513
https://twitter.com/gorilla0513
https://github.com/skanehira
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away