UNIX的なアレ

UNIX的なこととかいろいろ

初めてviエディタを使いたい人へ

Unix/Linuxを使おうとしてコマンドの次くらいに避けて通れないのが、viエディタ。
慣れてしまうと逆にこれじゃないと・・・というくらい染み付いてしまいますが、確かに最初は何をやっていいのかさえわからないものです。
過去に自分も立ち上げてしまってどうやって終了させていいのかさえわからなくて焦った記憶もあるくらいです。
今回はそのとっつきにくいviエディタを最低限使えるようになりましょう。

どうしてviエディタ?

実際に現役のエンジニアのつかっているエディタを見ると、様々だと思います。
vim,emacs,nanoやwindowsでは秀丸など。
確かに慣れているものが一番使いやすい(実際自分も普段はemacsです)のですが、Unix/Linuxを触る際にviは避けて通れない理由があります。
理由としては、ほぼ間違いなくデフォルトでインストールされているからがあげられます。
Unix/Linuxを最初からインストールしたことがある方はご存知かと思いますが、まず使うことのできるエディタはviのみです。(一部の例外は除く)
そのため、最低限のセットアップをするためにはUnixエンジニアとしてはviを使えないとどうにもならない時さえでてきます。
実際に、Unixエンジニアを見ていてもviは仮に苦手でも最低限の操作はできるという人がほとんどだと思います。

実際にどこがとっつきづらい?

個人的にviがとっつきづらく感じた点は主に2点です。

  • モードを切り替えて使うのが意味がわからない
  • キー操作が特殊すぎる
  • Windows,Macで慣れたショートカットキーがほぼ全く通用しない

確かに秀丸等のエディタになれていると特殊な操作になると思われるので、この2点を重点的に説明をしていきたいと思います。

では何からやればいいの?

それではviを立ち上げましょう。今回はUnix/Linux内で操作するのが前提です。
なお、Macの方はターミナルを立ち上げていただければOKです。
以下のコマンドを打ってください。


# vi

上記の写真の様な画面が立ち上がったと思います。画面の色の設定は個々人によりますので気にしないで下さい。
これでviエディタが立ち上がったわけですが、秀丸などのようにいきなり文字を入力することはできません。
試しに、wやeあたりを何度かたたいてみてください。何も文字は表示されないはずです。

viを操作してみよう!

次に、アルファベットのiを1度だけ押してください。iを押した後は自由にアルファベットを入力することができます。
ここでポイントになるのは、viは文字の入力ができる、編集モード文章の保存等を行う、コマンドモードを切り替えて使うという点です。
viを立ち上げた状態が、コマンドモードiを押した後が編集モードです。
本来ならば、編集モードであればカーソルの移動すらできません。(最近のviはできるようですが)

viを終了しよう!

それではまたコマンドモードに戻ってみましょう。ESCキーを押してください。またwやeを押して反応しなくなればコマンドモードに戻っています。
それでは一度viを終了しましょう。:qと押してください。

:qは画面の左下に表示されます。今は深く考えずにそういうものだと思ってください。そのままreturnキーを押すとviから抜けることができます。

もうちょっとviを使ってみる!

それでは今度はカーソル移動をしてみましょう。先程と同じようにviコマンドを打ってください。


# vi
さて、先程と同じようにiを押して編集モードに移動してください。
改行はreturnキーで通常通り入力することができきるので3行ほど記述してみましょう。
今回は日本語入力に関しては触れないのでアルファベットでお願いします。

カーソル移動をする!

それではカーソルを移動させましょう。WindowsMacについているカーソルキーでも移動はおそらくできてしまうと思いますが、ここでは本来のviの使い方を紹介します。
まずESCキーを押してコマンドモードに移ってください。
jでカーソルキーが下に、kでカーソルキーが上に動くはずです。左右も含めたカーソルの動かし方をまとめると以下の通りです。

j
↓へカーソル移動
k
↑へカーソル移動
h
←へカーソル移動
l
→へカーソル移動

ここは最初はかなりきつい点だと思いますが、慣れるしかありません。とにかくひたすらviをつかって指に覚えこませましょう。

コピペをしてみる!

最後に、コピペまでしてみましょう。上記のキーを使ってカーソル移動をし、一番したの行にカーソルを合わせてください。
そこで、yy(yを2回)押してください。まだ何もおきないはずです。
次にpを押してください。先程yyと押した行がペーストされてカーソルの下の行に追加されると思います。
さて、もう少し進んだ使い方もまとめると以下になります。

yy
行のCopy(ヤンクと呼ばれる)
dd
行の切り取り
p
カーソルの下の行にペースト
P
カーソルの上の行にペースト
x
delete(1文字)
X
backspace(1文字)

それでは先程と同じように終了しましょう。:qの後にreturnキーです。

少しは使えそうな気になりましたか?

さて、長々と説明してきましたがこれはあくまでviの初歩的な使い方です。
実際は文字の検索・置換や、上書きなどいろいろな機能が備わっていますのでもし興味をもたれたらWeb上でも説明しているサイトはありますので参考にしてみてください。(以下参考サイト)
http://www-kn.sp.u-tokai.ac.jp/~inoue/computor/vi/vi.html
viを覚えることで、Unix/Linuxへの敷居が少しでも下がれば幸いです。