水瓶座列車

どこまで行けるか、とりあえず発車します。

私がviエディタを好きになった理由とその使い方

f:id:aquarius999:20180719175756j:plain

 

パソコンで文章やプログラムを書くとき、エディタは何を使っていますか?

ブログの記事を直接ブラウザで書く時は、エディタは選べませんが、

Windowsでは、MSWordやワードパット、メモ帳があり、Linuxでは、viエディタがあります。

OSによって定番のエディタを使うと思いますが、Linux上のファイル編集でさえ、

Sambaサーバーを使ってWindows上で、秀丸などで編集するのが当たり前になっているように感じます。

また、Linuxのデスクトップ環境も昔に比べて充実してきているので、

viエディタは、もう必要ないと思うかもしれませんが、私にとってはやっぱりvi エディタの方が使いやすいのです

 

LinuxでもXWindowが起動しない場合、どのようにテキストを編集しますか?

telnetSSH通信時に、どうやってファイル編集しますか?

Linuxを使うならやっぱり基本のviエディタを使用して欲しいと思っています。

 

いろんなエディタや統合開発環境を使ってきましたが、

独断と偏見で最終的に使いやすいと思ったのが、viエディタでした。

LinuxUNIXを触ったことがある人なら必ず使ったことがあるはずのエディタです。

 

Windows環境でもviエディタを使っている私が、viエディタの使いやすいと思っている理由を語りたいと思います。

それがviエディタを使うきっかけになればうれしいです。

いきなりviエディタって言われてもって思う方もいると思いますので、

まずは「viエディタって何?」っていうところから知って欲しいと思います。

 

 

 

 

1.viエディタとは

 

viエディタとは、Linux等に標準で搭載されているエディタの1つで、ファイル編集やプログラムを書く際に使われます。

また、Linuxのデスクトップ画面を表示しているXWindowシステムが、何らかの不具合で起動しないときに、

XWindow無しでLinuxを起動するのですが、その時に必ず使用するエディタです。

 

Windowsでもviエディタを自分でインストールすることで、使用することができます。

私は、Windowsでもviエディタを使いたいので、あえてviエディタをインストールして使っています。

PHPファイルやCSSファイルを編集するときによく使っています。

 

 

2.viの使い方

 

viエディタは、以下の3つのモードがあります。

モード名 説明
編集モード 編集したい特定の位置にカーソル移動、文字の挿入、削除など、さまざまな操作がアルファベットキーに割り当てられています。
入力モード 編集モードから文字の挿入操作でこのモードに切り替えれれて、実際に文字を書き込める状態になります。
コマンドモード 編集モードの状態からコロン(:)で始める操作をするときに、このモードになります。

 

viエディタでファイルを開いた直後は、編集モードから始まります。

編集モードは、アルファベット1文字に対して機能が割り当てられています。

例えば、編集モードで「i」を押すと文字を挿入する入力モードになり、文字が打てるようになります。

また、編集モードに戻すには、「ESCキー」を押すことで戻ります。

viエディタを使ってみようと思うなら、まずは以下のコマンドを最低限覚えておく必要があります。

 

最低限必要なviコマンド
操作 説明 使用するモード
i
文字を挿入する。
編集
a
文字を追加挿入する。
編集
x
文字を削除する。
編集
:w
ファイルを閉じずに修正を保存する。
コマンド
:wq
修正を保存してファイルを閉じる。
コマンド
:q
修正を保存せずにファイルを閉じる。
コマンド

 

それから、viエディタの特徴である矢印キーやマウスを使用せずにカーソル移動ができる下記操作も大変便利です。

 

編集モードでのカーソル移動
操作 説明
j
下に移動する。
k
上に移動する。
h
左へ移動する。
l
右へ移動する。

 

この操作に慣れると、手をホームポジションから手を動かす必要が無いので、

プログラミングが格段とやりやすくなります。

 

 

3.viエディタの好きなところ

 

ホームポジションのままエディタのカーソルを上下左右移動できる

 

先ほどの「編集モードでのカーソル移動」の表のコマンドのことで、

矢印キーを使用せずにホームポジションのまま、エディタのカーソルを上下左右に移動させることができます。 

これが反射的にできるようになると、プログラムを書くスピードがアップします。

ちなみに、ホームポジションとは、「jキー」のところに右手の人差し指を、

「fキー」に左手の人差し指を置いてキーボード入力することを言います。

 

 

・カッコ{}()の始まりと終わりを簡単に行き来できる。

 

例えば、以下のコードの場合、

 if ((( a == 0 )&(b != 0)) || ( c==0 )) { } else { }

目視で()を追って理解しようとするとよく目を凝らして見てしまいませんか?

 

しかし、viエディタでは、編集モードで「 ( 」にカーソルを合わせて、「%」を押すことで、「 ( 」の閉じる方の「 ) 」にカーソルが移動します。

また「 ) 」で%を押しても「 ( 」に飛びますので、%を押しながらコードを読むと目を凝らさずに感覚的に理解できます。

 

これがあるのと無いのとで、長いプログラムを読んでいると格段に差が出ます。

長いプログラムを解析したり、自分でプログラムを書いていると、

条件文や関数コールが何重にもなる場合があります。そんな時にかなり便利です。

プログラムを読み書きする人しか使用しないと思いますので、2項には挙げていませんがかなり便利です。 

 

 

4.viエディタが不便と感じるところ

 

・特殊な切り取り方ができない。

 

例えば、秀丸は前から4列を全ての行をマウスで囲み、その部分だけ切り取れるという機能があります。

このような操作は、viエディタにはできません。

たまにこういう機能があったらと思う時があります。 

 

・テキスト中の文字列の一括置換は、コマンドモードから正規表現を使用する必要がある。

 

ある文字列を別の文字列に一括置換したい場合には、コマンドモードから正規表現を使用する必要があります。

なので、正規表現を知っておかなければなりません。

ただ、一度に置換しようとしなければ、別のやり方でも置換できますので、

まあまあ不便に感じるかなといった感じです。

 

 

5.最後に

 

「2.viの使い方」でのコマンドは、最低限viエディタを使うために、必要な操作しか挙げてませんが、

まだまだ便利な機能がたくさんあります。

私は、viの機能をすべて使えるわけではありません。

しかし、一つずつでもコマンドを使用して慣れていくと、その便利さが徐々にわかってくると思います。

C/C++言語のプログラムを書いている方やLinuxを使って仕事をしている方で、

viエディタを使っていなかったら一度は使ってみてはいかがでしょうか。

 

 

<関連・おすすめ記事>

Linux勉強用の中古パソコンおすすめショップランキング - 水瓶座列車

C言語の演算子と優先順位の解説 - 水瓶座列車

C言語の繰り返し構文( while, do while, for )の解説と応用 - 水瓶座列車

Raspberry Pi (ラズパイ)で役に立つ書籍のおすすめランキングベスト5 - 水瓶座列車

RaspberryPi (ラズパイ)の購入時に最低限必要なものとおすすめセット - 水瓶座列車

プログラミングを独学で勉強するためのLinuxパソコン準備手順 - 水瓶座列車