水瓶座列車

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

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

f:id:aquarius999:20180719175756j:plain

 

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

ブログの記事を直接ブラウザで書く時は、エディタは選べませんが、WIndowsでは、SWordやワードパット、メモ帳があり、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つのモードがあります。

編集モード

 編集したい特定の位置にカーソル移動、文字の挿入、削除など、 さまざまな操作がアルファベットキーに割り当てられています。

入力モード 

 編集モードから文字の挿入操作でこのモードに切り替えれれて、 実際に文字を書き込める状態になります。

コマンドモード

  編集モードの状態からコロン(:)で始める操作をするときに、このモードになります。

 

最初は編集モードから始まります。

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

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

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

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

 

最低限必要なviコマンド
操作 説明 使用するモード
i
文字を挿入する。
編集
a
文字を追加挿入する。
編集
x
文字を削除する。
編集
:w
文字を追加挿入する。
コマンド
:wq
文字を追加挿入する。
コマンド
:q
文字を追加挿入する。
コマンド

 

それから是非カーソル移動も矢印キーを使わずに、私が一番良いと思っている以下のコマンドも使用してみると、かなり便利です。

 

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

 

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

 

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

 先ほどの「編集モードでのカーソル移動」の表のコマンドのことで、 矢印キーを使用せずにホームポジションのまま、エディタのカーソルを上下左右に移動させることができます。 

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

 ちなみに、ホームポジションとは、「jキー」のところに右手の人差し指を、 「fキー」に左手の人差し指を置いてキーボードを打つことを言います。

 

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

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

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

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

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

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

 

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

 長いプログラムを解析したり、自分でプログラムを書いていると、 条件文や関数コールが何重にもなる場合があります。そんな時にかなり便利です。

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

 

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

 

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

 他のエディタにある機能がない。

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

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

 

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

 文字列の全置換を一度にしようとすると、コマンドモードから正規表現を使用する必要があります。なので、正規表現を知っておかなければなりません。

 私はこれを面倒に感じるので不便かなと思いました。

 ただ、一度に置換しようとしなければ、別のやり方でも置換できるので、 まあまあ不便に感じるかなといった感じです。

 

5.最後に

 

「2.viの使い方」でのコマンドは、最低限viエディタを使うために、必要な操作しか挙げてませんが、まだまだ便利な機能がたくさんあります。

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

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

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

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

 

 

<関連・おすすめ記事>

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

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

RaspberryPi 3B+でLEDの点灯・消灯・点滅のやり方 - 水瓶座列車

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

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

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