LinuxZaurus
■viをもう少し使ってみる

SL-C700上でスタンダードに使える強力なメモ帳というものがまだ出ていない以上、設定ファイルの書き換えなどにはやはりviを使う事になるのですが。こちらで紹介した以外にもいろいろと活用方法があるのでそれをもう少しメモしておこうと思います。

これらの入力はコマンドモードから行います。

文字列検索

開いているファイルの現在のカーソル位置から下に向かって文字列を検索するには

/検索文字列

と入力して実行します。
/を入力した時点で画面の一番下に飛びますが、気にせず入力します。
次の候補を見る場合は

n

を押します。前の候補を見る場合には

N

を押します。また、現在のカーソルから前の位置に向かって文字列を検索するには

?検索文字列

と入力して実行します。

置換、変換

次に文字の置換、変換方法です。

大文字を小文字に変換するには、変換する文字にカーソルを持っていって

~

を押します。

ある行を検索して最初にヒットした文字列を検索して置換するには

:s/検索文字列/置換文字列/

と入力します。:を入力すると画面下にカーソルが飛びますが、続けて入力します。
例えば

cd Documents

の行頭にカーソルを合わせて

:s/c/C/

と入力して実行すると

Cd Documents

と変換されます。2文字目のcはヒットしません。これを行全体で検索する場合は

:s/c/C/g

と入力して実行します。
また、検索をテキスト全体に反映したい場合は

:%s/検索文字列/置換え文字列/

と入力して実行します。
これで文中の検索文字列を一気に置き換え文字列に置換できます。
ただし、ひとつずつ確認は取ってくれませんので注意しましょう。

移動

方向キーでセコセコ動く以外にこんな移動方法もあります。

画面の一番上に移動するには

H

と入力します。画面の真中の行への移動は

M

で、最下行は

L

で移動します。
また、ファイルの最終行へは

G

で移動、ファイルの3行目に移動するには

3G

と入力します。(カーソル位置から3行下ではないので注意)

また行頭へ移動は

0(ゼロ)

で行末への移動は

$

になります。

入力への切り替え

挿入モードへの切り替えはaとi以外にも以下のような方法があります。

A 行末から入力を開始します。

I 行頭から入力を開始します。

また、現在の行の下に一行追加してその行から入力を開始する場合には

o(オー)

と入力。現在の行の上に1行追加してそこから入力を開始する場合には

O(オー)

と入力します。

結合

現在の行と次の行を結合する場合には

J

と入力します。また、現在の行とそれ以下4行を結合する場合は

5J

と入力します。カレント行が1Jなので4行下で5Jになるわけですね。

削除

文字の削除方法です。1行削除、1文字削除のほかにも以下のような方法があります。

まず現在のカーソル位置から3行削除する場合は

3dd

と入力して実行します。4行削除の場合は

4dd

です。また、これ以外に

d+移動コマンド

の組み合わせでも削除範囲を指定できます。
例えば

カーソル位置の単語を削除する場合はd+w(恐らくwordのwでしょう)

dw

として実行します。
カーソル位置から行末までの削除はd+$(行末移動)

d$

となります。カーソル位置から行頭までの削除はd+0(行頭移動のゼロ)

d0

になります。

カーソルから3単語分削除、だと

3dw

になりますね。同様のことがコピーにも言えます。

コピー

文字のコピーとペーストにはこんな方法があります。

カレント行から4行下までをコピーする場合

4yy

カーソルのある場所の単語をコピーする場合は

yw

と入力します。これ以上は削除の部分を参考にしてください。

ペースト

pでペーストすると文字や単語はカーソルの右、行は現在の行の下に貼り付けられます。

P

でペーストするとpの逆(カーソル左または現在の行の上)になります。

バッファ操作

コピーした内容をa-zの名前を付けて保存しておくことが出来ます。
例えば何度も前にコピーした内容を貼り付けたい、という事がたまにあるのですが、そういう時にあらかじめ名前を付けてバッファに登録しておけば何度コピーペーストした後でも呼び出すことが出来ます。

例えばコピーした1行をaという名前で保存しておく場合

"ayy

と入力します。ペーストする際は

"apまたは"aP

となります。

上書き

上書きで誤字を訂正する事が出来ます。
一文字だけ訂正したい場合は訂正する文字の上にカーソルを移動して

r

と入力し、訂正する文字を入力します。カーソル位置の文字が置き換えられ、そのまま自動でコマンドモードに戻ります。

R

と入力するとcancelボタンを押すまで上書きが続きます。

cw

と入力するとカーソル位置から単語の最後の文字までを置き換えます。

cc

と入力すると1行丸ごと上書きします。

操作取り消し

今のなし!という感じで直前の1操作を取り消すにはコマンドモードで

u

を入力します。

1行に対しての操作を取り消す場合は

U

を入力します。

また

.

(ピリオド)を入力すると前回操作の繰り返しになります。

その他の操作

:e%!

と入力するとこれまでの変更を破棄してファイルを再読み込みします。

:r ファイル名

と入力することで、カレント行の下に指定したファイルを読み込むことが可能です。

:r! コマンド名

でコマンドを実行した結果をカーソル位置に挿入することが出来ます。例えば

:r! date

とするとカーソル位置に今日の日付が挿入されます。また

:! コマンド名

でshellコマンドの実行結果を挿入せず一時的に表示することが出来ます。

例えば

:!pwd

でカレントのディレクトリを調べることが出来ます。

またそれだけでは足りない場合は

:sh

と入力することで一時的にシェルに戻ることも出来ます。
例えば:r ファイル名で挿入したいファイルの場所がわからない場合

:sh

で一旦シェルに戻り、suしてからfind / -name "hoge*"などとすることで目当てのファイルを探すことが出来ます。シェル画面でexitでシェルからviに戻ります。

感想

こんな感じでviは使いこなそうとすると非常に置くが深いことに気付かされます。まだまだviの入り口付近なので頑張って勉強しようと思います。

今は

空白行を削除

::g/^$/d

のような正規表現について勉強していますが記事に出来るかどうかは微妙です(汗)

 

戻る