viの基本的な操作方法

linuxって初めての方にとっては敷居がちょっと高いと感じます。でも最近はフリーのVmware Playerを使ってだれでもWindows上で動かすことができます。結構サーバーとしては利用していることも多いので、勉強したい!と思っている人も多いはずです。

しかし、まずはじめにつまづくのはviもしくはvimの使い方なのではないでしょうか。これが使えないことにはlinuxを使いこなすのは難しいかもしれません。

なぜつまずくか・・・。私の経験からすると、それはコマンドや機能が多すぎるからです!そこで今回はテキストエディタとして利用するのに最小限知っておきたい操作方法をまとめておきます。削除の方法一つとっても色々あったりするのですが、何か一つ方法を覚えておけば、それを使いこなして何とかなります。あとは、必要に応じて覚えていけばいいだけです。

今回は、私のお勧めする、もっとも簡単で応用の効く操作方法をまとめておきます。特に注意書きはしませんが、ほとんどの操作で、別のオプションがあったり、別の方法があったりします。でもそのことには一切ふれません!

ちなみにここで紹介するviは、vimに置き換えても使えます。私はデフォルトでもコードに色づけしてくれるvimを好んで使用します。しかし、マルチバイトでは文字化けする場合があるので、本番環境のファイルを少し編集するぐらいならviを使用しています。

ファイルを開く

vi ファイル名

ファイルがあればそれを開き、なければ新規作成します。

ファイルを閉じるく

:q!  保存しないで閉じる
:wq 保存して閉じる

ここまで知っていれば、ファイルの中身をviで確認することまではできるようになります。
しかし、ファイルの編集をするためには、viの特徴的なモードの移行を覚える必要があります。
viでファイルを編集するときにはマウスを使いません。コマンドだけで編集することになります。
そのために、モードを移行しながらコピー&ペーストをしたり、検索したり、編集したりすることになります。

モードの移行と特徴く

各モードへの移行と特徴は以下の通りです。

ノーマルモード(起動時)カーソルを移動させ、簡単な編集もできます。
 ┗(i)━ 挿入モード 文字を入力していきます。
 ┗(v)━ ビジュアルモード カーソルを移動させると範囲選択ができます。
 ┗(:)━ コマンドラインモード ファイルを閉じるq!のような命令を実行します。
各モードからノーマルモードに戻る場合はESCです。

挿入モード

ノーマルモードでカーソルを移動して、小文字のiを押します。すると挿入モードになって文字が入力できるようになります。
DELETEで削除、ENTERで改行になりますので、そのきになれば何でもできます。一番重要なモードです。
編集をしたらESCでノーマルモードにもどり、:wqと入力すれば保存して閉じることができます。

ビジュアルモード

ノーマルモードで選択したい文字のはじめの位置にカーソルを持っていき、小文字のvを押します。その後はカーソルを移動すると文字が反転していき範囲選択ができます。
選択した文字は、yでコピー、dで削除できます。
コピーしたり、削除するとそのままノーマルモードに移行しています。好きな位置にカーソルを持っていき、pでペースト(張り付け)ができます。

yでコピーというのがなれない感じがします。これはコピーしたもじをクリップボードではなく、ヤンク(yank)という領域に保存しているからです。

コマンドラインモード

ノーマルモードで:を押せばコマンドラインモードに移行します。はじめに出てきたファイルを閉じる(:q!や:wq)がコマンドラインモードの例の一つです。
ここでは検索と置き換え方法を紹介します。

検索

コマンドラインに

/検索したい文字列

と入力します。そのまま次の箇所を検索したい場合はn(next)を押します。SHIFTを押しながらnで上に向かって検索します。

置き換え

:%s/OLDWORD/NEWWORD/g ファイル内を一括で置き換えます。
:%s/OLDWORD/NEWWORD/gc /gcを付けると、確認しながら置き換えます。

%は全て。sはset。gは恐らくgrep(文字列検索プログラムの名前)で、cはチェックかな?自信ないですけど・・・

なぜそう思ったかと言いますと、%の部分は行番号の範囲指定ができるからです。

:10,20s/OLDWORD/NEWWORD/g  10行目から20行目まででOLDWORDをNEWWORDに一括置換

実は、%sの後の区切りに使用している文字は/以外も使えます。
パス名を変更する際は、;などを使うと分かりやすいです。(はじめから;って言っとけ・・・)

:%s;OLDWORD;NEWWORD;gc  これで確認しながらパスを変更できます。

UNDO(元に戻す)

最後の間違って編集してしまった場合のUNDOの方法ですが、ノーマルモードに移行して、ESC+uとなります。

以上でノーマルメモ帳と同じ機能は大体使えるようになるのではないでしょうか。
私としては、挿入モードとファイルの閉じ方さえ知っていれば、あとは何とかなるような気がしてるんですけど!

タイトルとURLをコピーしました