UbuntuのターミナルでVimを使ってファイルを編集する

シェアする

2018年10月31日
「Ubuntu vi」などのキーワードでアクセスされるため記事を書き直しました。ツッコミ等ありましたらお気軽にコメントください。
なお、記事中の画像はUbuntu14.04ですが、Ubuntu18.04でも動作することを確認済みです。

この記事は、Ubuntu(Linux)のターミナルを使ってみるの続きですが、見なくても問題ありません。前回は、Ubuntuのターミナルを使ってディレクトリ(フォルダ)の作成や削除をしました。

今回は、Ubuntu(Linux)のターミナル上で、Vimエディターを使ってファイルを編集する方法(Vimの使い方)を紹介します。

Vimとは何か

Vimはテキストエディタです。
Vimは、ターミナル(CLI上)で動くためGUI環境がなくても使えます。私はこのブログのサーバの設定を編集する時によく使います。

(ちなみに、 man vi と入力すると、Vimのマニュアルが見られるのですが、そこには vim - Vi IMproved, プログラマのテキストエディタ と書いてあります。)

入力モードとコマンドモード

Vimは、Windowsのメモ帳と違って、「入力モード」と「コマンドモード」という2つのモードがあります。

入力モードは、文字の編集を行うモードです。
コマンドモードはカーソルを移動したり、文字を削除したりするモードです。
(本当はexモードというものもあるのですがコマンドモードの一部の扱いになっているので省略)

vi とコマンドを入力すると、デフォルトではコマンドモードが最初に起動します。
ですので、普段のメモ帳の感覚で入力を行おうとすると文字入力もままならないのです。

Vimを開いてみる

今回私が動作確認をしたUbuntu 14.04では、vi と打つとVIM (Vi IMproved 7.4)が起動します。
(OSの設定によっては、 vim でも動くかもしれません。)

Vimの使い方

基本的に私は、マニュアルざっくり読んで体で覚えろ派です。
私は下記のサイトを参考にしつつ慣れるまでずっと文字を打ち続けました。
viエディタの使い方

Vimで文字入力してみる

コマンドモード時に i キーを押すとカーソル位置から、 a キーを押すとカードルの後から文字を入力できるようになります。

文字を消してみる

文字を消すには、Escキーを押しコマンドモードに戻った後、x キーを押します。
(ちなみに入力モードでバックスペースキー押しても文字は消せます。)

ファイルを保存する

保存するときは、Escキーを押した後以下のコマンドを打ってエンターキーを押します。

:wq

保存せず強制的に終了するときはEscキーを押した後以下のコマンドを打ってエンターキーを押します。

:q!

困ったらEsc押して :q! すれば大抵なんとかなります。

カーソルの移動方法

Vimの設定によるのですが、カーソルの移動はカーソルキー(キーボード右下にある矢印キー)で行えます。 しかし、私が当時授業で使っていたVimはなぜかカーソルキーで移動できなかったため、以下の操作方法で覚えておくことをお勧めします。HJKLキーの方がホームポジションから手を動かさなくて済みますし。

  • Hが左
  • Jが下
  • Kが上
  • Lが右

ただし、カーソルキーを使った移動は、入力モード、コマンドモード共に使えますが、HJKLキーでの移動はコマンドモードでしか使えません。

操作方法については以下のサイトに大変お世話になりました。
Vim 基本操作まとめ

入力モードかコマンドモードかわからなくなったら

モードがどちらかわからなくなったときは何回かEscキーを押します。2回押せば(日本語入力がオンになっていないかぎりは)必ずコマンドモードに戻ります。

Vimでテキストファイルを作成する

viを使うには、ターミナル上で vi ファイル名 と入力します。
今回私は、以下のように入力しました。

vi test.txt

test.txt というファイルが存在すれば開きます。ファイルがなければ新規作成します。

コマンドを打つと真っ黒な画面が表示されると思います。
これがコマンドモードです。このままだと文字入力ができないので「i」キーを押します。
20141121_ubuntu_ter_vi_2

「こんにちは世界」と入力します。
20141121_ubuntu_ter_vi_3

Escキーを押したあと、 :wq と入力し、エンターキーを押します。(:wqで保存して終了という意味です。)
コマンドモードならば、ウィンドウ下部に「:wq」と表示されます。
20141121_ubuntu_ter_vi_4

viが終了します。ファイルマネージャを開き、「test.txt」をダブルクリックすると、「こんにちは世界」と書き込まれていると思います。
20141121_ubuntu_ter_vi_5

ターミナルでファイルの中身を確認します。
今回は、 cat コマンドを使います。(ちなみに catコマンドは cat - concatenate files and print on the standard output ざっくり訳すと「ファイルを連結して標準出力に表示する」機能を持ちます。)

以下のコマンドを入力すると、test.txtの中身をターミナル上に表示します。

cat test.txt

入力すると以下のように表示されると思います。

$ cat test.txt
こんにちは世界。

test.txtを再度編集するときは、vi test.txtと入力します。
ターミナル上でファイルの作成、編集操作の説明は以上です。

以下は、おまけです。

おまけ1: Vimでファイル内検索を行う

ファイルの先頭から末尾へ検索する

コマンドモードで /検索したいキーワード と入力します。
例えば、「世界」と検索したい場合は以下のように入力します。

/世界

検索結果があるとハイライト表示されます。
n キーで下へ、 N キー(Shift+n)で上へ移動できます。

ファイルの末尾から先頭へ検索する

コマンドモードで ?検索したいキーワード と入力します。
検索結果はハイライト表示されます。
結果が複数ある場合は、 n キーで上へ、 N キー(Shift+n)で下へ移動できます。

おまけ2: Vimで行番号を表示する

コマンドモードで :set number と入力します。
行番号を非表示にするには :set nonumber と入力します。




シェアする