印刷
vi vim
vimはvi improvedの略とされ、vimの改良版である。現在では、viで開くと、vimが開く。
今ではたいていの人はパソコンはウインドウズのようなGUIから始める。画面のメニューバーやアイコンを見ながらマウスをクリックすることでパソコンに何かの操作をさせる。メニューバーには文字でコピーとか貼り付けとか書いてあるから、ここを選択すればコピーできるのだななどと誰にでもわかる。アイコンもその操作をイメージする絵になっている。
今、文書の最後の行全体をコピーして、それを次の行に貼り付ける操作をするとする。ウインドウズでは次のような操作になるだろう。
マウスでスクロールして、一番最後の行を出す。
↓
マウスでドラッグして、最後の行全体を選択する。
↓
マウスでメニューバーのコピーをクリックする。
↓
画面をクリックする。
↓
Enterキーを押す。
↓
マウスでメニューバーの貼り付けをクリックする。
少しパソコンに慣れてくると、いちいちメニューバーからコピーや貼り付けを選択するより、Ctrlキーを押しながらCキーを押してコピーし、Ctrlキーを押しながらVキーを押すほうが速いと気づく。また文書の一番最後に移動するのは、スクロールするよりも、Ctrlキーを押しながらEndキーを押すほうが速い。このキー操作ですkると次のようになる。
Ctrlキーを押しながらEndキーを押す。
↓
マウスでドラッグして、最後の行全体を選択する。
↓
Ctrlキーを押しながらCキーを押す。
↓
画面をクリックする。
↓
Enterキーを押す。
↓
Ctrlキーを押しながらVキーを押す。
ウインドウズのテキストエディターではこれが最速だろうか。これをviで操作すると、次のようになる。
Gキーを押す。
↓
yキーを2回押す。
↓
pキーを押す。
つまりGyya と入力すればすんでしまう。これは速い。
viの操作はこのように速いため、またすべての操作がキーボードでできるからGUIが使えない環境でも使えるから、今でもviの愛好者は絶えない。今のviはShiftキーとCtrlキーを押しながらVキーを押すことで他の文書の文を貼り付けることもでき、ウインドウズのテキストエディターのようにも使える。ウインドウズのテキストエディターには、メニューバーにたくさんの項目が並んでいる。これをすべてキーボードに割り当てようというのだから、かなりの数になることが想像できる。これを覚えなければならないことになる。ウインドウズのアプリケーションソフトのワードなどは、バージョンが変わるとメニューバーの配置がかなり変わってしまうことが多い。今まで覚えていたのと違うからとまどったり、使い方がわからなかったりする。ようやく使い方に慣れたかと思うと、また新しいバージョンが出る。このことが繰り返される。しかしキーボードに割り当てたコマンドはそう簡単に変えれない。これはキーボードの配置を変えるようなものである。キーボードの配置を変えるようなことをすれば、世界中からブーイングが起こる。今までのブラインドタッチができなくなるからである。キーボードに割り当てているコマンドはたくさんあるのだけれど、一度覚えてしまえば、少なくとも私たちが生きている間は使えることになる。以下に気づいたことを書く。
viを開くには、端末にviと入力すればよい。Shiken.txtというファイルを開くには
vi Shiken.txt
と入力すればよい。viの後のスペースは一つでなくてもよい。指定したファイル名がない時は新しいファイルをつくることになる。
複数のファイルを開く時は、
vi ファイル名1 ファイル名2 ファイル名3
のようにスペースをあけて書いていく。
-
A appendの略。入力モードになり、キーボードで打った文字がカーソルのある行の最後に入力されていく。
-
a appendの略。入力モードになり、キーボードで打った文字がコマンドモードの時カーソルがあった文字の右側に入るようになる。addだから付け加える感じになるのである。
-
ar argument(引数)の略。複数のファイルを開いている時、開いているファイル名を下に表示する。現在編集しているファイルは[]で囲んである。
-
B backの略。カーソルをスペースを区切りとして、前の単語の先頭へ移す。カーソルのある単語から3番めの単語にカーソルを移すには、3Bとやればよい。
$sth = $dsh->prepare($sql);
で最後にカーソルがあるとすると、Bを打っていくと、; $ = $
と移動する。
-
b backの略。カーソルを前の単語の先頭へ移す。記号も単語とみなされる。カーソルのある単語から3番めの単語にカーソルを移すには、3bとやればよい。
$sth = $dsh->prepare($sql);
で最後にカーソルがあるとすると、bを打っていくと、; ) s ( p - d $ = s $
と移動する。
-
C cはchangeの略。カーソルのある行が削除され、新しい行を入力できるようになる。ccと同じだが、Shiftキーを使うからこちらが少し遅い。Sとも同じである。
-
c cはchangeの略。cを入力しただけでは、何も変わらないが、その後Enterキーを押すと、カーソルのある行が削除され、新しい行を入力できるようになる。ccと同じである。c3、あるいは3cと打って、Enterキーを押すと、カーソルのある行を含んで4行が削除され、カーソルがあった所から4行目の所に入力できるようにカーソルが移動する。
-
caw cawはchange a wordの略。カーソルのある単語全体が削除され、新しい文字を入力できるようになる。cwは、カーソルのある単語全体が削除されず、単語の中でカーソルのある文字より右が削除される。cWと入力してもcwと同じである。
-
cb change backの略。一つの単語のカーソルのある文字から、左の文字が削除され、新しい文字を入力できるようになる。
-
cc cはchangeの略。カーソルのある行が削除され、新しい行を入力できるようになる。Cと同じだが、Shiftキーを使わないからこちらが少し速い。Sとも同じである。
-
Ctrl-B bはbackwardsの略。現在画面に表示されている上の部分が表示される。
-
Ctrl-D dはdownwardの略。3を入力し、Ctrlキーを押した状態でdキーを打つと、画面が3行分下に行く。数字を入力しないと、画面が半分下に行く。
-
Ctrl-E eはextra linesの略。1行下にスクロールする。よって現在カーソルのある所は上に行く。これを使うのは現在カーソルのある所の下を見たいのだが、カーソル自体は動かしたくない場合である。下にさらに行を出したいので、extra linesのEを使っていると考えるべきである。
-
Ctrl-F fはforwardの略。現在画面に表示されている下の部分が表示される。
-
Ctrl-G gはgetの略。開いているファイル名とその行数が表示され、ファイルを変更して保存していないなら、[変更あり]と表示される。
-
Ctrl-L Lはclearの略。下に表示されるシステムメッセージが消える。
-
Ctrl-N 入力モードでいくらか単語を入力した後これを押すことで、単語の候補が出る。Ctrl-Nをさらに押すと、下の候補が選択されていく。Ctrl-Pとの違いは、Ctrl-Nは一番よく使う候補が一番上に表示され、その次の候補がその下に表示されていくが、Ctrl-Pは一番よく使う候補が一番下に表示され、その次の候補がその上に表示されていく。入力ミスを防ぐ効果がある。
-
Ctrl-P 入力モードでいくらか単語を入力した後これを押すことで、単語の候補が出る。Ctrl-Pをさらに押すと、上の候補が選択されていく。Ctrl-Nとの違いは、Ctrl-Pは一番よく使う候補が一番下に表示され、その次の候補がその上に表示されていくが、Ctrl-Nは一番よく使う候補が一番上に表示され、その次の候補がその下に表示されていく。入力ミスを防ぐ効果がある。
-
Ctrl-R rはredoの略。uでもとに戻したが、もとに戻しすぎた時、戻しすぎを戻す。uの反対の働きをする。
-
Ctrl-U uはupwardsの略。3を入力し、Ctrlキーを押した状態でuキーを打つと、画面が3行分上に行く。数字を入力しないと、画面が半分上に行く。
-
Ctrl-V Vはvisualの略。ビジュアルブロックモードになる。Ctrl-Vを押した時にカーソルがあった点とカーソルを右に動かした所の点を結んだ線を対角線とする長方形の中にあるものを選択する。
-
Ctrl-W h Wはwindowの略 二つのウインドウの左のウインドウにフォーカスを移す。
-
Ctrl-W j Wはwindowの略 二つのウインドウの下のウインドウにフォーカスを移す。
-
Ctrl-W k Wはwindowの略 二つのウインドウの上のウインドウにフォーカスを移す。
-
Ctrl-W l Wはwindowの略 二つのウインドウの右のウインドウにフォーカスを移す。
-
Ctrl-W q Wはwindowの略 qはquitの略。現在カーソルのあるウインドを閉じる。
-
Ctrl-W r Wはwindowの略 左右、上下のウインドウを入れ替える。
-
Ctrl-W s wはwindowの略。sはsplitの略。Ctrl-Wを押した後に、sを打って現在開いている文書を水平に2つに分けて表示することができる。長い文章は下にあるものを見ようとして、下にカーソルを移動すると、上が見れなくなる。上と下の両方を見ながら作業したい時この機能は便利である。一方の画面で変更して保存すると、その保存はもう一つの画面にも反映される。下にあるものを上にコピーしたい時は、下を表示させた画面でコピーして、上を表示させた画面で貼り付ければよいのである。一つの画面から他の画面に移りたい時は、Ctrl-Wを押した後にwを打つ。
-
Ctrl-W v wはwindowの略。vはverticalの略。Ctrl-Wを押した後に、vを打って現在開いている文書を縦に2つに分けて表示することができる。これはCtrl-W Ctrl-V とVキーを打つときにCtrlキーを押したまましても同じことになる。今のパソコンは横長で上下の画面が少ないから、下にあるものを見ようとして、下にカーソルを移動すると、上が見れなくなる。上と下の両方を見ながら作業したい時この機能は便利である。一方の画面で変更して保存すると、その保存はもう一つの画面にも反映される。下にあるものを上にコピーしたい時は、下を表示させた画面でコピーして、上を表示させた画面で貼り付ければよいのである。一つの画面から他の画面に移りたい時は、Ctrl-Wを押した後にwを打つ。
-
Ctrl-W w wはwindowの略。分割してある画面で、一つの画面から他の画面に移りたい時に使う。Ctrl-Wを押した後にwを打つ。
-
Ctrl-Y 画面を1行上にスクロールする。よって現在カーソルのある所は下に行く。実際に使う場合大事なのは画面がどう動くかでなく現在カーソルのある所が上に行くか下に行くかである。Yは下に向いている矢印のイメージである。Ctrl-Yはカーソルのある所を下に進める時に使うのだと考えるべきである。
-
Ctrl-[ コマンド画面にもどる。Escキーを打つのと同じである。Escキーはしばしば半角/全角キーを間違えて打つことがあり、コマンドモードにもどるには、こちらを使った方が無難である。プログラムは一から書く散文でなく、問題なく動くとわかっている部品を組み合わせ、その一部を変更してつくるものである。一から書くとミスが出やすい。だからプログラムを書く基本は部品の読み込みとコピーと一部の変更である。これはみなコマンドモードでできるものである。それでviは基本的にコマンドモードで使うものである。入力モードはやむを得ない場合に使うものである。あまり好ましくない入力モードを終えたらすぐにCtrl-[でコマンドモードに戻るという癖をつけておくべきである。
-
cw change wordの略。cwを入力すると、一つの単語のカーソルのある文字から、右の文字が削除され、新しい文字を入力できるようになる。
-
c$ cはchangeの略。c$を入力すると、一行の中で、カーソルのある文字から、右の文字がすべて削除され、新しい文字を入力できるようになる。
-
D deleteの略。カーソル位置からカーソルのある行の最後まですべて削除する。
-
d deleteの略。dを打って次に移動を表すキーを打つことで、移動した所にあるものを削除する。dwなら、wはカーソルを次の単語の先頭へ移動するから、今カーソルがある文字から次の単語までが削除される。ggで最初の行の先頭に移動し、dを打ち、Gを打つなら、今表示されているものはすべて削除される。
-
daw delete a wordの略。今カーソルがある単語が削除される。diwとの違いはカーソルがスペースの所にある時、dawはスペースとその右の単語を削除するが、diwはスペースのみを削除する。
-
dd deleteの略。カーソルのある行をすべて削除する。d$としても同じことができるが、キー操作は明らかにddのほうが速い。カーソルのある行から4行削除したいなら、4ddとやればよい。
-
dG dはdeleteの略。カーソルのある行から最後まですべて削除する。
-
dgg dはdeleteの略。カーソルのある行から最初まですべて削除する。
-
dggdG dはdeleteの略。すべて削除する。
-
diw delete innera wordの略。今カーソルがある単語が削除される。dawとの違いはカーソルがスペースの所にある時、dawはスペースとその右の単語を削除するが、diwはスペースのみを削除する。
-
dl deleteの略。カーソルがある1文字を削除する。カーソルがある文字を含んで左に3文字削除したいなら3dlとする。xと同じである。xが1文字の入力ですむから少し速くなる。
-
dw delete wordの略。今カーソルがある文字から次の単語までを削除する。
-
d0 dはdeleteの略。0でカーソルが、その行の最初まで移動するから、カーソルのある文字からその行の最初まで削除でる。
-
d$ dはdeleteの略。$でカーソルが、その行の最後まで移動するから、カーソルのある文字からその行の最後まで削除でる。
-
E endの略。カーソルをスペースを区切りとして、次の単語の最後へ移す。カーソルのある単語から3番めの単語にカーソルを移すには、3Eとやればよい。
$sth = $dsh->prepare($sql);
で先頭にカーソルがあるとすると、Eを打っていくと、h = ;
と移動する。
-
e endの略。カーソルを次の単語の最後へ移す。記号も単語とみなされる。カーソルのある単語から3番めの単語にカーソルを移すには、3eとやればよい。
$sth = $dsh->prepare($sql);
で先頭にカーソルがあるとすると、eを打っていくと、$ h = $ h > e $ l ;
と移動する。
-
ea eはendの略。aはappendの略。カーソルがある単語の最後から入力する入力モードになる。
-
Esc コマンドモードに切り替える。Ctrl-[を打つのと同じである。Escキーを打とうとして、半角/全角キーを間違えて打つことがよくあり、コマンドモードにもどるには、Ctrl-[を使った方が無難である。ビジュアルモードからコマンドモードにもどる時にも使う。ビジュアルモードの状態でvを打ってもコマンドモードにもどるからこちらが簡単である。
-
F findの略。カーソルがある行のカーソルの左にあるFの次に入力する文字にカーソルが移る。例えばFsと入力すると、カーソルがある行のカーソルの左にある最初のsにカーソルが移る。その次のsにカーソルを移したければ;を入力する。前のsにもどりたければ,を入力する。行が長い時のカーソル移動に便利である。
-
f findの略。カーソルがある行のカーソルの右にあるfの次に入力する文字にカーソルが移る。例えばfsと入力すると、カーソルがある行のカーソルの右にある最初のsにカーソルが移る。その次のsにカーソルを移したければ;を入力する。前のsにもどりたければ,を入力する。行が長い時のカーソル移動に便利である。
-
G Goの略。カーソルを最終行の行頭へ移動する。Gの前に数字をつけて、例えば10Gとすると、10行目の行頭に移動する。最初の行に移動したければ、1Gとすればよいのである。
-
ga get asciiの略。カーソルがある行のアスキーコードが10進法、16進法、8進法で表示される。
-
gE go endの略。カーソルをスペースを区切りとして、前の単語の最後へ移す。カーソルのある単語から3番めの単語にカーソルを移すには、3gEとやればよい。
$sth = $dsh->prepare($sql);
で最後にカーソルがあるとすると、gEを打っていくと、; = h
と移動する。
-
ge go endの略。カーソルを次の単語の最後へ移す。記号も単語とみなされる。カーソルのある単語から3番めの単語にカーソルを移すには、3geとやればよい。
$sth = $dsh->prepare($sql);
で最後にカーソルがあるとすると、geを打っていくと、; l $ e > h $ = h $
と移動する。
-
gg goの略。カーソルを最初の行の行頭に移動する。1Gと同じだがこちらが入力が容易。
-
ggdG すべて削除する。
-
gU gはgetの略Uはuppercaseの略。この後に移動のコマンドを入力すると、移動した所の小文字が大文字に変わる。例えば、現在カーソルが行頭にあるとすると、gU$と入力することで、カーソルのある行の小文字がすべて大文字に変わる。
-
gUU gはgetの略Uはuppercaseの略。現在カーソルのある行の小文字がすべて大文字に変わる。
-
gu gはgetの略uはuppercaseの略、uppercaseは大文字の意味だが、uを小文字にすることで、小文字という感じにしている。この後に移動のコマンドを入力すると、移動した所の大文字が小文字に変わる。例えば、現在カーソルが行頭にあるとすると、gu$と入力することで、カーソルのある行の大文字がすべて小文字に変わる。
-
guu gはgetの略uはuppercaseの略。現在カーソルのある行の大文字がすべて小文字に変わる。uppercaseは大文字の意味だが、uを小文字にすることで、小文字という感じにしている。
-
g~ gはgetの略。この後に移動のコマンドを入力すると、移動した所の大文字が小文字に変わり、小文字が大文字に変わる。例えば、現在カーソルが行頭にあるとすると、g~$と入力することで、カーソルのある行の大文字がすべて小文字に変わり、小文字がすべて大文字に変わる。
-
H homeの略。カーソルを画面の最初の行の行頭に移動する。カーソルを左に移動する時はhを使う。上に最大限移動する時は、その大文字のHを使うのだと考えてもよい。
-
h カーソルを左へ1文字移動する。キーボードのホームポジションは右の人差し指をjキーに置く。hキーを打つには右の人差し指を左に動かすから、カーソルが左に行くという感覚と合う。5文字左へ移動したければ5hとすればよい。ビジュアルモードで行の一部を選択する時は、hの前に数字をつけてカーソルを移動させる方法が特に有用である。
-
I insertの略。入力モードになり、キーボードで打った文字がカーソルのある行の最初に入力されていく。
-
i insertの略。入力モードになり、キーボードで打った文字がコマンドモードの時カーソルがあった文字の左側に入るようになる。insertだから割り込む感じになるのである。
-
J joinの略。行と行をくっつけて一つの行にする。カーソルより下4行を1行にしたいなら、4Jとする。
-
j カーソルを下へ1行移動する。3行下へ移動するには、3jとやればよい。
-
k カーソルを上へ1行移動する。5行上へ移動するには、5kとやればよい。
-
L lastの略。カーソルを画面の最後の行の行頭に移動する。カーソルを左に移動する時はlを使う。下に最大限移動する時は、その大文字のLを使うのだと考えてもよい。
-
l カーソルを右へ1文字移動する。キーボードのホームポジションは右の薬指をlキーに置く。lキーはh,j,kキーの右にあり、カーソルが右に行くという感覚と合う。3文字右へ移動したければ3lとすればよい。日本語入力がされている時、1行が長くなる。lを繰り返し打って右に行くと、カーソルの移動に時間がかかる。その場合にこのlの前に数字を入力して、移動するのは有用である。その他の方法としてはwを使うと少し速くなる。fを使うのも速いが、これは半角/全角キーを打って日本語を一語入力する必要がある。半角文字が混じる日本語で半角文字にカーソルを移動する場合はfを使うのが一番速い。ビジュアルモードで行の一部を選択する時は、lの前に数字をつけてカーソルを移動させる方法が特に有用である。
-
M middleの略。カーソルを画面の中央の行の行頭に移動する。
-
m markの略。現在カーソルがある行をマークする。例えば現在
@file=<FILE>;
にカーソルがあるとする。mfと入力すると、これにfのマークがつく。カーソルを他の行に動かして、'fと入力すると、カーソルが@file=<FILE>;の先頭の@に移る。このマークはこのファイルに保存され、一度ファイルを閉じて、後にまた編集するために開いた時も'fと入力してカーソルをを@file=<FILE>;の先頭に移すことができる。何にどんなマークをつけたのか忘れてしまうことがある。その時は:marksでマークの一覧が表示される。マークが画面に表示しきれない時は、Enterキーで次のマークが表示され、一番下のマークまで表示されるとEnterキーでもとの画面にもどる。
-
N nextの略。/や?で検索をした時に、前の検索結果に進むのに使う。
-
n nextの略。/や?で検索をした時に、次の検索結果に進むのに使う。
-
O openの略。カーソルのある行の上に新しい行を追加して、入力モードになる。
-
o openの略。カーソルのある行の下に新しい行を追加して、入力モードになる。
-
P putあるいはpasteの略。dで削除したり、yでコピーしたものを貼り付ける。一行を削除したり、コピーした時はカーソルのある行の上に貼り付ける。行の一部を削除したり、コピーしたものはカーソルのある文字の左に貼り付ける。
-
p putあるいはpasteの略。dで削除したり、yでコピーしたものを貼り付ける。一行を削除したり、コピーした時はカーソルのある行の下に貼り付ける。行の一部を削除したり、コピーしたものはカーソルのある文字の右に貼り付ける。
-
q 入力したものを保存しておく機能である。次のような手順になる。まずカーソルを空白行に置く。空白行がなければoで空白行をつくる。次にqを入力して、その後にアルファベット1字あるいは数字1文字を入力する。iあるいはaで入力モードにする。記録したいものを打ち込む。入力が終わればCtrl-[でコマンドモードにもどる。qを打つ。これで入力したものが、qの後に入力した文字や数字に保存された。次にこれを使いたければ、コマンドモードで@の後に、その記録した文字または数字を入力するとよい。具体的言うと次のようになる。
まず空白行の最初にカーソルを移す。
qc
と入力する。
i
と入力して入力モードにする。
これは試験です。
と入力する。
Ctrl-[
でコマンドモードにもどす。
q
を入力する。
これでcレジスタに「これは試験です。」が保存された。
これを使うには、挿入したい所にカーソルを移し、
@c
と入力する。
「これは試験です。」
が挿入される。
@cと入力すれば、何回でもこの文が挿入される。
入力モードでの入力はキーボードを使わずに、Ctrl-Cで他の文書からコピーしてきて、Shift-Ctrl-Vで貼り付けることもできることもできる。
何をレジスタに保存したが忘れてしまった時は
:reg
で保存したものが表示される。
保存したものは、一度ファイルを閉じて、パソコンの電源を切っても保存されていて、次にパソコンを立ち上げ、そのファイルを編集する時にも使える。viで別のファイルを開いても使える。
@文字(あるいは数字)は、カーソルのある文字の左に挿入される。だから行末で挿入しようとすると、最後の文字の左に挿入され、行の最後に挿入前の文字が1字残ることになる。これは行の一部に使うのでなく、行単位のものを記録しておいて、使うほうがよさそうである。
これを使うと便利なのは、q: で以前に実行したコマンドを表示したときである。q: を実行すると、一番最後の行にカーソルが行くが、ここに新しいコマンドを入力できる。長いコマンドは入力が手間なので、レジスタに保存しておく。例えば置換は:%s///cgと入力するものが多い。sにこれをレジスタとして記憶する。すると、@s と入力することで、%s///cgが出る。なおq: の後、入力する時には、: はいらないから、レジスタには: のない形で保存する。
-
q: qはquoteの略か。以前に実行したコマンドを表示できる。これを閉じるには、:qと入力する。表示されたコマンドで再度実行したいコマンドにカーソルを移し、Enterキーを打つことで、そのコマンドを実行できる。そのコマンドの編集もできる。この機能が役に立つのは、コマンドを入力してそれにエラーが出た時である。例えばtaroをhanakoに置き換えようとして、
:%s/taro/hanako/gc
と入力しようとしたが、打ち間違えて
:%s/taro/hanako/gx
と入力してしまった。画面には、「余分な文字が後ろにあります」というエラーが出る。q:の機能がないと、この誤ったコマンドを表示させることができない。q:を使うと、この誤ったコマンドが画面に出るから、誤りが確認でき、単にxをcに変えるだけで、Enterキーを打って実行できる。コマンドをもう一度最初から書くのに比べると速くなる。
-
q/ qはquoteの略か。以前に実行した検索履歴を表示できる。これを閉じるには、:qと入力する。検索したい項目にカーソルを移し、Ctrl-CでCommad lineにその検索項目を送ることができる。Command Lineには自動的に/が入力されているから、Enterキーを打つことでその項目を検索できる。
-
q? qはquoteの略か。以前に実行した検索履歴を表示できる。これを閉じるには、:qと入力する。検索したい項目にカーソルを移し、Ctrl-CでCommad lineにその検索項目を送ることができる。Command Lineには自動的に?が入力されているから、Enterキーを打つことでその項目を検索できる。
-
R replaceの略。カーソルのある所の文字が、Rの次に打つ文字に変わり、カーソルが自動的に次の文字に移る。文字を入力するとカーソルのある所の文字がその文字に変わる。これを繰り返す。置換モードから抜けるには、Escキーを押す。
-
r replaceの略。カーソルのある所の文字が、rの次に打つ文字に変わる。sとの違いはsは入力モードに変わるが、rはコマンドモードのまま変えることである。少しの文字の変更ならコマンドモードのまましたほうが簡単である。
-
reg replaceの略。レジスタに保存したものを表示する。これを閉じるには、Escキーを2回押す。
-
S substituteの略。カーソルのある所の1行の文字が消去され、そこに新しい文字を入力できる入力モードになる。cc Cと同じである。5Sとすればカーソルのある行を含んで下に5行が消去され新しい文字を入力できる入力モードになる。
-
s substituteの略。カーソルのある所の文字が消去され、そこに新しい文字を入力できる入力モードになる。3sとすればカーソルのある文字を含んで右に3文字が消去され新しい文字を入力できる入力モードになる。rとの違いはrはコマンドモードのままで文字を変えるが、sは入力モードになる。
-
u undoの略。変更をもとにもどす。
-
V visual の略である。ビジュアルモードになる。vとの違いはVは行単位で選択することである。h lキーは使えず、j kキーで選択する。
-
v visual の略である。ビジュアルモードになり、hjklのキーを打つことでカーソルを移動させ、マウスでドラッグするように画面の一部を選択できる。yを打つことで選択したものがコピーでき、pを打つことで貼り付けることができる。dを打つことで削除できる。英語は単語と単語の間にスペースがあるから、y数字Wで行の一部をコピーできる。しかし日本語の場合は単語の間にスペースがなく、この方法を用いることができない。vを用いると行の一部を選択することができ、行の一部をコピーできる。日本語で書かれた所を処理するのに便利な機能である。もとのコマンドモードにもどすには、再度vを打つ。
-
vaB visual a block の略。カーソルを{または}に移動してvaBを入力すると{}とともに{}の中にあるものも選択する。PerlやPHPでは、{}で囲むことが多い。{}の中身を選択してくれるのは、ありがたい機能である。
-
vab visual a block の略。カーソルを(または)に移動してvabを入力すると()とともに()の中にあるものも選択する。
-
vaw visual a word の略。vawを入力した時にカーソルがある単語を選択する。
-
viB visual inner block の略。カーソルを{または}に移動してviBを入力すると{}の中にあるものを選択する。PerlやPHPでは、{}で囲むことが多い。{}の中身を選択してくれるのは、ありがたい機能である。
-
vib visual inner block の略。カーソルを(または)に移動してvibを入力すると()の中にあるものを選択する。
-
W wordの略。カーソルをスペースを区切りとして、次の単語の先頭へ移す。カーソルのある単語から3番めの単語にカーソルを移すには、3Wとやればよい。
$sth = $dsh->prepare($sql);
で先頭にカーソルがあるとすると、Wを打っていくと、$ = $
と移動する。
-
w wordの略。カーソルを次の単語の先頭へ移す。記号も単語とみなされる。カーソルのある単語から3番めの単語にカーソルを移すには、3wとやればよい。
$sth = $dsh->prepare($sql);
で先頭にカーソルがあるとすると、wを打っていくと、$ s = $ d - p ( s )
と移動する。
-
X カーソルのある左の文字を削除する。削除することを英語でcross outと言い、crossだからxのイメージになる。ウインドを閉じる時もxをクリックするから、xが何かをなくす時に使うのはすでになじみがある。3Xとすると、カーソルのある文字を含まずに左に3文字削除する。
-
x カーソルのある文字を削除する。削除することを英語でcross outと言い、crossだからxのイメージになる。ウインドを閉じる時もxをクリックするから、xが何かをなくす時に使うのはすでになじみがある。DELキーを打っても同じことだが、DELキーをブラインドタッチで打つのは難しいが、xならブラインドタッチで打つことができる。3xとすると、カーソルのある文字を含んで右に3文字削除する。dlでも同じことができる。xが1文字の入力ですむから少し速くなる。ただし、d$でカーソルのある文字からその行の最後まで削除でき、d0でカーソルのある文字からその行の最初まで削除できるが、x$ x0ではできない。
-
xp xはカーソルのある文字を削除する。その文字はバッファに保存される。削除したからカーソルは次の文字に移る。ここでpを打つとカーソルの右に削除した文字が貼り付けられる。結果的にカーソルのある文字とその右の文字を入れ替えたことになる。3xpとすると、カーソルのある文字を含んで右に3文字削除し、4文字目の文字の右にこの3つの文字を貼り付ける。
-
Y yankの略。カーソルのある1行をコピーし、バッファに保存する。yyと同じである。Yは大文字だからShiftキーを使わなければならない。それでyyのほうが少し速い。
-
y yankの略。yの後に移動を示す文字を入れることで、その移動した所にある文字がコピーされる。例えば、ggでカーソルを最初の行の先頭に移動した後、yを打ち、Gを打つなら、全文がコピーされる。移動キーで適当な所に移動し、pキーを打つなら全文を貼り付けることができる。y15lとすれば、カーソルのある所から右に15文字コピーできるのだが、15字がどこまでになるかは、数えなければならないことになる。これは面倒である。vでビジュアルモードにすれば、15lとすれば、どこまで選択したかがちょうどマウスでドラッグした時のように表示される。その後yを打てばコピーできる。
-
yW yank wordの略。yでコピーし、Wでカーソルが次の単語まで移動するから、カーソルのある単語を一つコピーできる。Wはスペースを区切りとして、一つの単語と考えてカーソルが移動する。例えば、
taro, hanako, yoko, takeshi, hiroko
とあり、y3Wなら、taro, hanako, yokoがコピーされる。これは3yWとしてもよい。y3wなら、,も1文字と考えるから、taro, hanako がコピーされる。
-
yw yank wordの略。yでコピーし、wでカーソルが次の単語まで移動するから、カーソルのある単語を一つコピーできる。wは記号も一つの単語と考えてカーソルが移動する。例えば、
taro, hanako, yoko, takeshi, hiroko
とあり、y3wなら、,も1文字と考えるから、taro, hanako がコピーされる。これは3ywとしてもよい。y3Wなら、taro, hanako, yokoがコピーされる。
-
yy yankの略。カーソルのある1行をコピーし、バッファに保存する。カーソルのある行を含んで下に3行をコピーしバッファに保存したいなら、3yyとする。yy3とすると、カーソルがある行を3回コピーすることになる。
当然ながら、別の行をyyすれば、保存してあるバッファは書き換えられてしまう。いろんな所の行をバッファに保存し、何回も使いたいことがある。その場合は変数にバッファを保存する方法がある。 "a3yy で今カーソルのある行を含んで下に3行が変数aに保存される。次にカーソルを別の行に移動し、"b2yy でカーソルのある行を含んで下に2行が変数bに保存される。さらにカーソルを動かし、別の行に進み、"c4yy でカーソルのある行を含んで下に4行が変数bに保存される。次に貼り付けたい所にカーソルを動かし、"apで変数aに保存したものが、貼り付けられ、"bpで変数bに保存したものが貼り付けられ、"cpで変数cに保存したものが貼り付けられる。
-
zb bはbottomの略。カーソルのある行を画面の一番下にもっていく。
-
zd dはdeleteの略。折りたたんだ所にカーソルを移し、zdを入力することで、折りたたんだ文章がもとにもどる。
-
zf fはfoldの略。選択した範囲を折りたたんで画面から消すことができる。長い文書を編集する時に、下の文章を参照にしながら編集したい時に、中の文章を所を折りたためば、下の文章が画面に出るから、下の文章を見ながら編集できる。折りたたんだものをもとにもどすには、折りたたんだ所にカーソルを移し、zdを入力する。
-
zt tはtopの略。カーソルのある行を画面の一番上にもっていく。
-
ZZ 変更を保存してviを終了する。:xと同じである。Zは大文字だからShiftキーを使わなければならず、キー操作は :xが少し速くなる。
-
zz カーソルのある行を画面の中央にもっていく。z.でも同じである。
-
z. カーソルのある行を画面の中央にもっていく。zzでも同じである。
-
0 これは数字の0である。今カーソルがある行の最初の文字にカーソルを移動する。0は数字の始めだから最初というイメージがある。^との違いは、行の最初に空白がある時、0は空白に移動するが、^は最初の文字に移動する。
-
% カーソルが()の上にある時、対応する()へ移動する。
-
$ 今カーソルがある行の最後の文字にカーソルを移動する。$は正規表現で文字列の終わりを示すから行の最後というのは連想できる。
-
^ 今カーソルがある行の最初の文字にカーソルを移動する。^は正規表現で文字列の始まりを示すから行の最初というのは連想できる。0との違いは、行の最初に空白がある時、0は空白に移動するが、^は最初の文字に移動する。
-
/ /の後ろに文字列を入力してEnterキーを押すことで、その文字列を検索できる。カーソルのある位置から下に検索する。次の検索結果に進むのはnを打つ。前の検索結果にもどるのはNを打つ。
他のファイルをCtrl-Cでコピーしたものは、Shif-Ctrl-Vでここに貼り付けることができる。
検索は正規表現も使うことができる。今taroを検索するとすると、
/^taro 行の最初にtaroがあるのを検索する。
/taro$ 行の最後にtaroがあるのを検索する。
/の後に何も記入せずにEnterキーを打つと前回検索したものを検索する。前回は?で検索したものであっても、/の後にEnterキーを打って、前回?で検索したものを検索する。
-
? ?の後ろに文字列を入力してEnterキーを押すことで、その文字列を検索できる。カーソルのある位置から上に検索する。次の検索結果に進むのはnを打つ。前の検索結果にもどるのはNを打つ。
検索は正規表現も使うことができる。今taroを検索するとすると、
?^taro 行の最初にtaroがあるのを検索する。
?taro$ 行の最後にtaroがあるのを検索する。
?の後に何も記入せずにEnterキーを打つと前回検索したものを検索する。前回は/で検索したものであっても、?の後にEnterキーを打って、前回/で検索したものを検索する。
-
. 直前の変更操作を繰り返す。例えばddで一行を消去して、次の一行も削除する時は、もう一度ddとすればいいのだが、.でも同じことをする。こちらのほうがキーを1回打つだけだから少し速くなる。
-
( カーソルが空白行にない時は、上の空白行にカーソルが移動し、カーソルが空白行にある時は、空白行でない上の行の先頭にカーソルが移動する。コードを書く時にまとまったコードの下に空白行を置いておくと、これでコードのまとまりごとにカーソルを移動することができる。
-
) カーソルが空白行にない時は、下の空白行にカーソルが移動し、カーソルが空白行にある時は、空白行でない下の行の先頭にカーソルが移動する。コードを書く時にまとまったコードの下に空白行を置いておくと、これでコードのまとまりごとにカーソルを移動することができる。
-
{ 上の空白行にカーソルが移動する。
-
} 下の空白行にカーソルが移動する。
-
# カーソルのある単語を検索し単語の背景色を変えて表示する。#を押していくと、最初にカーソルがあった所から、上方向に検索した単語の最初の文字にカーソルを移していく。よく$を打とうとして、間違って#を打ってしまうことがある。背景色表示がされ見にくいなら:noh を使うと背景色の表示がなくなる。
-
* カーソルのある単語を検索し単語の背景色を変えて表示する。*を押していくと、最初にカーソルがあった所から、下方向に検索した単語の最初の文字にカーソルを移していく。
-
~ カーソルのある文字が小文字ならば大文字に変え、大文字ならば小文字に変える。
-
> ビジュアルモードで選択した箇所に右のインデントを一つつける。
-
>> 現在カーソルがある行にタブを一つつける。
-
< ビジュアルモードで選択した箇所に左のインデントを一つつける。
-
<< 現在カーソルがある行のタブを一つ取り除く。
-
@@ 最後に実行した@文字(あるいは数字)を実行する。
-
" 画面にある文字をレジスタに保存できる。ビジュアルモードで選択した後bに保存するなら、"byでbに保存できる。カーソルのある行をbに保存したいなら"byyで保存できる。bに保存したものを呼び出すのは、"bpである。これで保存したものは@で呼び出すことはできない。qを使った保存と同じ文字を使うと上書きされてしまう。"の保存はqの保存より保存が簡単であるが、呼び出しはqの保存より少しキー操作が多くなる。
レジスタに保存するのは、:let @b="" でも保存できる。""の中に保存したいものを記入する。この時、@b と = の間にスペースを置くと、エラーになる。これで保存したものを呼び出すのも、"bp である。この場合は @b でも最初の1字がない状態なら呼び出すことができる。
-
! この後ろにコマンドを書くことで、そのコマンドを実行できる。例えばVでビジュアルモードにして、いくらかの文を選択する。その後 ! を入力すると、下に :'<,'>! と表示される。この後ろにsortを入力すると、アルファベットの順に並べ替えることができる。数字を選択して、文字コードの順でなく、数字の小さいものから大きい順に並べるには、sort -n とnオプションを書く必要がある。
計算もすることができる。数式を記入し、あるいはコピーし、その数式の行にカーソルを置いた状態で、!!と入力する。すると下に :.! と表示される。この後ろに bc と記入すると、その数式が計算された値に変わる。ただし割算は整数部分しか出ない。割算以外は電卓より便利である。電卓は複雑な計算だと、入力間違いがありうるが、入力をしたものが消えてしまうから、どんな入力をしたのかがわからない。この場合は数式をコピーしておけるから、どんな数式を計算したのかがすぐにわかる。
:r !date で現在の時刻を挿入でき、:r !pwd で現在使っているディレクトリを挿入できる。
:から始まるものは、入力したものが下に表示される。コマンドを入力した後にEnterキーを押す必要がある。
-
:数字 数字の行番号に移動する。
-
:%s/検索文字列/置換後文字列/gc sはsubstitueの略である。gはglobalの略である。cはconfirmの略である。gがないと、1行の内見つかった一番左の文字列しか置換しない。cがないと確認することなくすべて置換してしまう。置換したい場合はy、置換しない場合はnを入力すると、置換したい所だけ置換することができる。すべて置換したいならa(allの略)を入力すればよい。これでウインドウズテキストエディタのCtrlキー+Hキーと同じことができる。:s/検索文字列/置換後文字列/gcと%をなくすと、カーソルのある行だけを置換する。変換する所を例えば10行目と45行目の間に限定する時は、:10,45s/検索文字列/置換後文字列/gcとすればよい。:1,$s/検索文字列/置換後文字列/gcと書くと、:%s/検索文字列/置換後文字列/gcと同じことになる。検索後背景色が残り、見にくいなら:noh を使うと背景色の表示がなくなる。
-
:b bufferの略。この後にバッファ番号を入力することで、そのファイルが開く。
-
:bn bはbufferの略。nはnextの略。次のバッファ番号のファイルが開く。
-
:bp bはbufferの略。pはpreviousの略。前のバッファ番号のファイルが開く。
-
:co copyの略。行をコピーする。coの前にコピーする行の範囲を指定し、coの後にコピーする行を指定する。coは、t あるいは copy と書いてもよい。例えば3行目から6行目までを12行目の下にコピーするなら
3,6 co 12
と書く。現在カーソルのある行から8行目を17行目の下にコピーするなら
.,8 co 17
10行目から最後までを17行目の下にコピーするなら
10,$ co 17
と書く。
-
:copy 行をコピーする。copyの前にコピーする行の範囲を指定し、copyの後にコピーする行を指定する。copyは、t あるいは co と書いてもよい。例えば3行目から6行目までを12行目の下にコピーするなら
3,6 copy 12
と書く。現在カーソルのある行から8行目を17行目の下にコピーするなら
.,8 copy 17
10行目から最後までを17行目の下にコピーするなら
10,$ copy 17
と書く。
-
:d deleteの略。行を削除する。dの前にコピーする行の範囲を指定する。例えば3行目から6行目まで削除するなら
3,6 d
と書く。現在カーソルのある行から8行目削除するなら
.,8 d
10行目から最後までを削除するなら
10,$ d
と書く。
-
:e editの略。スペースをあけて、ファイル名を書きそのファイルを開く。
-
:exit :helpの画面を開いた時などにその画面を閉じる。
-
:help :helpの後ろに空白をあけて、調べたいものを入力すると、その説明が出る。閉じたい時は:qを入力する。
-
:ls :listの略。開いたファイルの一覧が出る。一番左側に表示されているのがバッファ番号である。前に開いたファイルをもう一度開くには、:bバッファ番号 と入力する。例えばバッファ番号が2なら、:b2と入力し、Enterキーを押すとそのファイルが開く。ファイル名をすべて入力しなくていいのだから、キー操作が速くなる。
-
:m moveの略。行を移動する。mの前に移動する行の範囲を指定し、mの後に移動先の行を指定する。mは、mo あるいは move と書いてもよい。例えば3行目から6行目までを12行目の下に移動するなら
3,6 m 12
と書く。現在カーソルのある行から8行目を17行目の下に移動するなら
.,8 m 17
10行目から最後までを17行目の下に移動するなら
10,$ m 17
と書く。
-
:mo moveの略。行を移動する。moの前に移動する行の範囲を指定し、moの後に移動先行を指定する。moは、m あるいは move と書いてもよい。例えば3行目から6行目までを12行目の下に移動するなら
3,6 mo 12
と書く。現在カーソルのある行から8行目を17行目の下に移動するなら
.,8 mo 17
10行目から最後までを17行目の下に移動するなら
10,$ mo 17
と書く。
-
:move 行を移動する。moveの前に移動する行の範囲を指定し、moveの後に移動先の行を指定する。moveは、m あるいは mo と書いてもよい。例えば3行目から6行目までを12行目の下に移動するなら
3,6 move 12
と書く。現在カーソルのある行から8行目を17行目の下に移動するなら
.,8 move 17
10行目から最後までを17行目の下に移動するなら
10,$ move 17
と書く。
-
:n nはnextの略。開いている次のファイルに移動する。
-
:new 上に新しいウインドウができる。:new の後ろにファイルを指定すると、そのファイルが開く。yyやddによるウインドウ間の移動ができる。カーソルをウインドウの間で移動するには、Ctrlキーを押した状態でWキーを押した後に、jを打つと下に移動し、kを打つと上に移動する。一つのファイルを参照にしながら、もう一つファイルをつくるのに、便利である。左右に分けるには:vnewを使う。最近は横長のディスプレイになっているから、左右に分けたほうが見やすいように思うが、実際は左右に分けると、一文が何行かに分けて表示されることが多くなり、かえって見にくくなる。上下が狭いディスプレイでも上下に分けたほうがなお見やすい。
-
:noh no hilightの略。検索などで背景色がついた時、その背景色をなくす。
-
:rew rewはrewindの略。開いている前のファイルに移動する。
-
:q quitの略。viを終了する。文書を変更して保存せずに、この操作をすると、「最後の変更が保存されていません」と警告画面がでて、この操作では終了できない。
-
:r readの略。rの次にスペースをあけて、ファイル名を入力する。カーソルの下にそのファイルの内容が挿入される。これは非常に役に立つ機能である。プログラムを書く時最初からすべて書くと入力ミスがあったりして、予期しない不具合が出ることがある。それで問題なく動くとわかっている部品のひな形をつくっておき、それをコピーして必要な所だけ変更して用いる。何回も使っているといろんなケースに遭遇するから、まれに起こるようなことも起こり、その部品のひな形自体の不具合がわかることもある。人間は失敗して学ぶものだから、うまく動かないケースに遭遇して始めてその部品のひな形の欠陥に気づくのである。「ウインドウズテキストエディタでは、部品のひな形のファイルをいちいち開いて、コピーして貼り付けることになるが、この機能を使うとファイルを開くこともなく、貼り付けることができる。
:48 r ファイル名
とすると、49行目にファイルの内容が挿入される。 何も書かれていないファイルに
:r ファイル名
で読み込むと1行目の下に読み込まれるから、2行目から読み込まれて1行目が空白になってしまう。その時は
:r 0 ファイル名
とすると1行目から読み込まれる。ただしこれで読み込むと一番最後に空白行がひとつできる。
-
:s/検索文字列/置換後文字列/g sはsubstitueの略である。gはglobalの略である。現在カーソルがある行を置換する。gがないと、1行の内見つかった一番左の文字列しか置換しない。確認が必要な場合はgの後ろにcを追加する。検索後背景色が残り、見にくいなら:noh を使うと背景色の表示がなくなる。
-
:set nonu nonuはno numberの略。行番号を表示させない。
-
:set nu nuはnumberの略。行番号を表示させる。
-
:t 行をコピーする。tの前にコピーする行の範囲を指定し、tの後にコピーする行を指定する。tは、co あるいは copy と書いてもよい。例えば3行目から6行目までを12行目の下にコピーするなら
3,6 t 12
と書く。現在カーソルのある行から8行目を17行目の下にコピーするなら
.,8 t 17
10行目から最後までを17行目の下にコピーするなら
10,$ t 17
と書く。
-
:vnew 左に新しいウインドウができる。:vnew の後ろにファイルを指定すると、そのファイルが開く。yyやddによるウインドウ間の移動ができる。カーソルをウインドウの間で移動するには、Ctrlキーを押した状態でWキーを押した後に、hを打つと左に移動し、lを打つと右に移動する。一つのファイルを参照にしながら、もう一つファイルをつくるのに、便利である。上下に分けるには:newを使う。
-
:w writeの略。文書を保存する。wの後ろにスペースをあけて、ファイル名を入力することで、そのファイル名で保存できる。スペースは一つでなくても大丈夫である。指定したファイル名のファイルがすでにある時は「ファイルが存在します」という警告が出る。指定したファイル名で上書きする時は、w!の後ろにスペースをあけて、そのファイル名を書く。
-
:wq write and quitの略。文書を保存してviを終了する。変更がない場合は保存する。
-
:x 文書を保存してviを終了する。変更がない場合は保存しない。ウインドウズで文書を終了する時、xをクリックするが、そのイメージである。
-
今ディレクトリ名をShikenとすると、:e Shiken/ でShikenディレクトリの中のファイル名の一覧を表示できる。開きたいファイルにカーソルを移し、Enterキーを押すことでそのファイルを開くことができる。
-
未入力の空白行は~がついている。
-
入力モードは下に挿入と表示される。入力モードは最終行の右端のカーソルが文字の右側に行くが、コマンドモードは文字の上にとどまり、文字の右側には行かない。入力した文字はカーソルの左側に入っていくようになる。
-
画面の右下に現在カーソルのある行と行の中の位置が表示され、文書が一番上から何パーセントぐらいの所にあるかも表示される。
-
viで開いた文書に行番号をつくようにするには、端末で、
echo "set number" >> ~/.exrc
を実行する。
-
端末にvi Shiken.txtと打ち込んでShiken.txtを開いて、そのファイルを変更したのだけれど、保存せずに、端末を閉じてしまった時、そのファイルはスワップファイルとして自動的に保存される。次にvi Shiken.txtでShiken.txtを開いた時、以前に保存していないファイルをどうするか聞いてくる。以前のファイルを削除するには、Dを入力する。
-
今shiken.plを開いており、これを一応保存して、shiken2.plをつくりたい時
:w shiken2.pl
でできる。この時、shiken.plを変更して保存していなかったとしても、今の状態で保存される。shiken.plに次の変更をすると問題が起こる可能性がある時、問題のない今の状態を保存しておくと、何か問題の起こった時に、
gg
dd
G
:r shiken2.pl
で問題のなかった状態にもどすことができる。
-
viで文書を開くと、^Mの表示が文末に見られることがある。これはWindowsのテキストエディターでつくったものを開いたり、Windowsのテキストエディターでつくったものをコピーしたりした時に見られる。Windowsは改行コードがCRLFであるが、LinuxはLFである。CRはCarriage Returnの略。LFはLine Feedの略。WindowsにはCRがついているため、これが^Mとして出てくる。viで編集する時はこれは不要なものであり、これがついていると見にくい。これを削除するには、:%s/^M//g でする。^ Mは制御文字であるため、キーボードの^ M から入力しても認識しない。Ctrlキーを押しながらVキーを打ち、Ctrlキーを押しながらMキーを打って入力する必要がある。
-
viのコマンドモードはgeditなどのテキストエディターに比べて、圧倒的な機能を持つ。しかし入力モードでは、gediltのほうが上である。viの入力モードはマウスによるカーソルの移動ができないし、Ctrl-Zによるundoもできない。だから入力が遅くなる。日本語入力の時は、半角/全角漢字キーをしばしば押す必要があるが、Escキーと半角/全角漢字キーは上下に並んでおり、ブラインドタッチでしているとしばしばEscキーと半角/全角漢字キーを押し間違える。Escキーを押すと、コマンドモードにもどる。コマンドモードにもどったのに気づかずに入力すると、コマンドを入力するのだから、いろいろと変なことが起こる。日本語をまったく入力しないなら、半角/全角漢字キーと間違えてEscキーを押すことはないから、geditに比べる不便だが、多くの入力でなければ許容範囲である。
論語に「備わるを一人に求めるなかれ」という一句がある。一人の人間に完璧を求めてはならないということである。テキストエディターもまた一つに完璧を求めないほうがよいと思う。コマンドモードはviを使い、まとまった入力はgeditを使えば、最強のテキストエディターになると思う。
端末で
vi henshu.txt
で開く。
ggdG
でhenshu.txtをすべて削除する。
:x
で閉じる。
編集しているファイルのコピーをする最初の所にカーソルを移す。
v
ビジュアルモードにしてコピーする。
:e henshu.txt
でhenshu.txtを開く。
P
でhenshu.txtに貼り付ける
入力をする。入力が終われば保存して閉じる。
カーソルをコピーを開始した所から一行あげる。
:r henshu.txt
で読み込む。
dd
で以前の不要のものを削除する。
-
vimの設定ファイルはCentOSでは、/etc/vimrcにある。デフォルトでは、行番号がつかないし、タブの幅が大きい。これを変更するには、/etc/vimrcに書き加える。
set rulerの下あたりに、
set number
と書き加えるとviで開いた時に行番号がつく。
タブの設定は、
set tabstop=5
でできる。
タブの設定変えるだけでは、< << > >> でタブを設定した時と入力モードでタブの設定をした時とのタブの幅が変わってしまう。それで、
set shiftwidth=5
でshiftwidthも変えておく必要がある。tabstopを5に設定した時は、shiftwidthも5にすると、同じタブ幅になる。
ホームにもどる
「パソコンについて」にもどる
更新日: 2015年4月7日