ラベル vi の投稿を表示しています。 すべての投稿を表示
ラベル vi の投稿を表示しています。 すべての投稿を表示

2016/08/08

vimtutor の日本語テキスト

vimtutorを起動すると英語で表示される場合があります。

$ vmtutor

===============================================================================
=    W e l c o m e   t o   t h e   V I M   T u t o r    -    Version 1.7      =
===============================================================================

     Vim is a very powerful editor that has many commands, too many to
     explain in a tutor such as this.  This tutor is designed to describe
     enough of the commands that you will be able to easily use Vim as
     an all-purpose editor.

     The approximate time required to complete the tutor is 25-30 minutes,
     depending upon how much time is spent with experimentation.

     ATTENTION:
     The commands in the lessons will modify the text.  Make a copy of this
     file to practise on (if you started "vimtutor" this is already a copy).

     It is important to remember that this tutor is set up to teach by
     use.  That means that you need to execute the commands to learn them
     properly.  If you only read the text, you will forget the commands!

     Now, make sure that your Shift-Lock key is NOT depressed and press
     the   j   key enough times to move the cursor so that Lesson 1.1
     completely fills the screen.
"/tmp/tutorGZubZG" 970 行, 33257 文字 

linuxで日本語環境が設定されていれば、オプションの指定ができます。

$vimtutor ja

===============================================================================
=    V I M 教 本 (チュートリアル) へ よ う こ そ        -    Version 1.7      =
===============================================================================

     Vim は、このチュートリアルで説明するには多すぎる程のコマンドを備えた非常
     に強力なエディターです。このチュートリアルは、あなたが Vim を万能エディ
     ターとして使いこなせるようになるのに十分なコマンドについて説明をするよう
     なっています。

     チュートリアルを完了するのに必要な時間は、覚えたコマンドを試すのにどれだ
     け時間を使うのかにもよりますが、およそ25から30分です。

     ATTENTION:
     以下の練習用コマンドにはこの文章を変更するものもあります。練習を始める前
     にコピーを作成しましょう("vimtutor"したならば、既にコピーされています)。

     このチュートリアルが、使うことで覚えられる仕組みになっていることを、心し
     ておかなければなりません。正しく学習するにはコマンドを実際に試さなければ
     ならないのです。文章を読んだだけならば、きっと忘れてしまいます!。

     さぁ、Capsロック(Shift-Lock)キーが押されていないことを確認した後、画面に
     レッスン1.1 が全部表示されるところまで、j キーを押してカーソルを移動しま
     しょう。
"/tmp/tutorneyCTc" 977 行, 44060 文字

2011/09/08

viエディタ、中級編9(外部コマンド)

viエディタ、中級編9(外部コマンド)
ファイルを編集中に外部コマンドが実行できます

ファイルを編集していて、ディレクトリの内容を確認したり、ファイルの名前を確認したいとき、ウインドウをもう一つ開けることで確認できますが、viエディタでもコマンドモードで外部コマンドを実行することで確認出来ます。

:!(command) ENTER
(command)に外部コマンドを入れると外部コマンドの実行ができます。引数も記述できます。viに戻るときはenterキーを押します
例えば、ファイルの内容確認なら「:!cat tmp.txt」です

2011/09/07

viエディタ、中級編8(テキストの書き出しと読み込み)

viエディタ、中級編8(テキストの書き出しと読み込み)
テキストを編集中に、ファイルに書き出したり、ファイルを読み込んだり出来ます

あまり使用頻度は高くないかもしれませんが、編集中のファイルの一部をファイルに保存したり、保存してあるファイルを編集中のファイルに読み込んだり出来ます。
telnetを使っていると、telnetの画面からカット&ペーストして、テキストファイルに保存したりするので、viの画面内でやる必要性は高くないかもしれません。

v
テキスト選択開始、このあと移動コマンドの操作の間が選択範囲になります。 選択範囲は強調表示されます。なおテキストは行単位で選択されます。選択を取り消すときは再度「v」キーを押します。

:w (filename) ENTER
選択範囲をファイルに書き出す

:r (filename) ENTER
カーソル位置の下にファイルを読み込む

2011/09/06

viエディタ、中級編7(ヤンクバッファ)

viエディタ、中級編7(ヤンクバッファ)
コピー&ペーストで使用するヤンクバッファ

viエディタでは、コピー&ペーストで使用するバッファはヤンクバッファと呼ばれています。
通常デフォルトで使用するヤンクバッファは1つです。
また、名前つきのヤンクバッファは26個(a-z)あります。

デフォルトのヤンクバッファは、「x」や「dd」で削除したときもヤンクバッファに入ります。しかし、デフォルトのヤンクバッファは1つしかないので、削除するたびに上書きされ最新のものしか残っていません。

また、ヤンクのしかたによってバッファの内容も変わり、文字単位と行単位があります。

ヤンクバッファへの入れるコマンドは「y」「yy」「x」「d」「dd」などです。
また、ヤンクバッファから取り出すときのコマンドは「p」「P」です。

ヤンクの例
[user@localhost tmp]$ cat tmp.txt
123456
abcdef
ghijkl
qwer
zxcv

[user@localhost tmp]$ vi tmp.txt
123456
abcdef     # この行にカーソルを置き、削除「dd」
ghijkl
qwer
zxcv

# vi 削除(ヤンク)後
123456
ghijkl     # カーソルがこの行に移ります、「p」でペースト
qwer
zxcv

# vi ペースト後
123456
ghijkl
abcdef     # ヤンクバッファの内容がペーストされました。
qwer
zxcv

名前つきヤンクバッファの操作は、コマンドの前に「"?」(?はa-zのうち1文字)を付けます。
例えば「"add」とすると、名前つきヤンクバッファ「a」にカーソル行の内容を入れます。

ペーストするときは、「"ap」で名前つきヤンクバッファの内容をカーソルの下に挿入します。

2011/09/05

viエディタ、中級編6(変更)

viエディタ、中級編6(変更)
テキストの変更コマンド

コマンドモードで、テキストの変更には「r」コマンドがありますが、それ以外に以下のコマンドもあります。

s
カーソルの下の文字が削除され、挿入モードになる。「esc」を押すまで挿入モードのまま
(n)s
カーソルからn文字分削除され、挿入モードになる。「esc」を押すまで挿入モードのまま

c(?)
「c」の後に(?)でカーソルの移動範囲を指定して変更するコマンド、機能は「s」コマンドと同じ

cw
カーソルの下の単語を削除して、挿入モードになる

c$
カーソルの下から行末まで削除して、挿入モードになる

c5l
カーソルの下から→に5文字削除して、挿入モードになる

viエディタ、中級編5(置換)

viエディタ、中級編5(置換)
テキストの変更(置換)をするコマンドです

文字数の少ないときは、以下のコマンドを使用します。
r(x)
カーソルの下の文字を1文字(x)に置き換えます。
R
カーソル位置から、文字入力が上書きされます。上書きをやめるときはを押すことでコマンドモードになります。


テキストを修正するとき、変更対象があらかじめ決まっていたり、変更対象の数が多い場合に使用するコマンドです。また、置換コマンドを使用することで、1つひとつ修正した場合のケアレスミスを防げます。

:s/two/three ENTER
文字列「two」を「three」に1回変更します。

:s/two/three/g ENTER
カーソルのある行で、文字列「two」を「three」に複数回変更します。

:#1,#2s/two/three/g ENTER
「#1,#2」の範囲の行で、文字列「two」を「three」に複数回変更します。

:%s/two/three/g ENTER
ファイル全体で、文字列「two」を「three」に複数回変更します。

:%s/two/three/gc ENTER
ファイル全体で、毎回確認しながら文字列「two」を「three」に複数回変更します。

2011/09/04

viエディタ、中級編4(削除)

viの操作に慣れてきたら、次のコマンドを覚えるとさらに便利になります。
・削除
コマンドには、繰り返し回数を指定出来ます。
(一部初級編と重複があります)

(1)コマンドモードでの削除
x
カーソル上の1文字削除
3x
カーソルから3文字削除(繰り返し回数が指定出来ます)
X
カーソルの左を1文字削除

dw
カーソル上の1単語削除
3dw
カーソルから3単語削除(繰り返し回数が指定出来ます)
de
カーソル上の空白の前まで1単語削除
d$
カーソルから行末まで削除
d
「d」はオペレータと呼ばれるもので、「(n)d(m)(x)」というフォーマットで削除できます。(n)(m)は回数指定、(x)は移動コマンドが使えます。 同様のコマンドとして「c」置換「y」ヤンクがあります。

dd
カーソルのある行を削除
5dd
カーソルのある行から5行を削除


(2)入力モードでの削除
BackSpace
カーソルの左を1文字削除
Ctrl-w
カーソルの左を1単語削除
Ctrl-k
カーソルから行末まで削除
Ctrl-u
カーソル行削除

2011/09/03

viエディタ、中級編3(検索)

viエディタ、中級編3(検索)
ファイル内の検索とカーソル移動

ファイル内の修正箇所を検索し、カーソルを移動するコマンドです。

/(string) ENTER
検索対象文字列(string)を検索し、カーソルを移動します。「ENTER」はENTERキーです。
?(string) ENTER
「/」と逆方向に検索対象文字列(string)を検索し、カーソルを移動します。「ENTER」はENTERキーです。

n
同じ検索を繰り返す場合、次の候補を探します

N
同じ検索を繰り返す場合、次の候補を探しますが、検索方向が逆です。

ctrl-O
検索を戻る。行き過ぎたときに使います。

ctrl-I
逆方向の検索を戻る。(検索Nの戻りです)

%
括弧(「( )」「{ }」「[ ]」)の対応を検索。

2011/09/02

viエディタ、中級編2(画面移動)

viエディタ、中級編2(画面移動)
画面移動のコマンド

コマンドモードでは、カーソル移動のほかに画面移動のコマンドがあります。

ctrl-d
半画面のスクロール。
全画面スクロールだと、迷子になってしまうときは、半画面づつのスクロールが便利です

ctrl-f
全画面のスクロール

ctrl-u
半画面の逆スクロール

ctrl-b
全画面の逆スクロール

viエディタ、中級編1(カーソル移動)

viの操作に慣れてきたら、次のコマンドを覚えるとさらに便利になります。
・カーソルの移動
作業を効率的に進めるため、コマンドには繰り返し回数が指定出来ます。

(1)コマンドモードでのカーソル移動
h
カーソルを←に移動
3h
カーソルを←に3文字移動(繰り返し回数を指定出来ます)
Ctrl-h
カーソルを(行を超えて)←に移動
l
カーソルを→に移動
3l
カーソルを→に3文字移動(繰り返し回数を指定出来ます)
Space
カーソルを(行を超えて)→に移動
3Space
カーソルを(行を超えて)→に3文字移動(繰り返し回数を指定出来ます)
w
カーソルを1単語→(単語の先頭)に移動
4w
カーソルを4単語→に移動(繰り返し回数を指定出来ます)
b
カーソルを1単語←に移動
3b
カーソルを3単語左に移動(繰り返し回数を指定出来ます)
e
カーソルを右へ単語の最後に移動
2e
カーソルを右に2単語移動(繰り返し回数を指定出来ます)
0
カーソルを行頭に移動
^
カーソルを(スペース以外の)行頭に移動
$
カーソルを行末に移動
j
カーソルを↓の行に移動
k
カーソルを↑の行に移動
+, RETURN
カーソルを次の行の最初の文字に移動
-
カーソルを前の行の最初の文字に移動

gg
ファイルの最初に移動
G
ファイルの最後に移動
nnG
nn行目に移動(Gは大文字)
Ctrl-g
編集中のカーソル位置を画面の下に表示


(2)入力モードでのカーソルの移動
Ctrl-f
カーソルを→に移動
Ctrl-b
カーソルを←に移動
Ctrl-a
カーソルを行の先頭に移動
Ctrl-e
カーソルを行の最後に移動
おそらく、キーボードの矢印キーに対応しています

2011/09/01

viエディタで使える正規表現2

viエディタで使える正規表現2
正規表現の使用例

文字の説明だけだと理解しずらいので、具体例をあげます。

linux
文字列「linux」

\<host
「host」で始まる語

host\<
「host」で終わる語

\<host\>
単語「host」を検索

^linux
文字列「linux」で始まる行

linux$
文字列「linux」で終わる行

^linux$
文字列「linux」だけの行


[Ll]inux
文字列「Linux」または「linux」

l...x
「l」で始まり「x」で終わる5文字

^l...x$
「l」で始まり「x」で終わる5文字の行

^\.
「.」で始まる行

^\[^.]
「.」で始まらない行


linux*
「linu」「linux」「linuxx」など、「*」は最後の「x」の0回条の繰り返し

[a-z]*
0文字以上のアルファベット小文字 0文字の場合は全てに該当するので、この表現はあまり使わない。むしろ1文字以上にしたかったときに間違いで記述しているかもしれない。

[a-z][a-z]*
1文字以上のアルファベット小文字

[a-z].*
アルファベット小文字のあとに0文字以上の文字

[a-zA-Z]
英字(小文字、大文字)

[0-9a-zA-Z]
英数字

viエディタで使える正規表現

viエディタで使える正規表現
viエディタの検索(/)で使える文字表現です。正規表現は使うコマンド、プログラムによって少し表現(記述)方法が異なるものがあります。 grepなどとは微妙に異なるところがあるので注意が必要です。

.
改行以外の文字

*
0文字以上の繰り返し 1文字以上の繰り返しは「.*」となります

^
行の先頭

$
行末

\
エスケープ

[ ]
括弧内の任意の文字 [0-9],[a-z]などで使用

[^ ]
括弧内の任意の文字に一致しない

\<
直後の単語で始まる

\>
直前の単語で終わる

2011/08/31

viエディタ、初級編8(vimtutor)

viエディタ、初級編8(vimtutor)
viの使い方、tutor

viは、vimのエイリアスになっています。そのvimの初心者向けtutor(家庭教師)テキストがあります。CentOS 5.5では日本語になっていますのでぜひ一度読んで下さい。作業時間は流して見て30分程度です。もしvi操作に慣れていないなら、操作しながらだと2時間以上かかるかもしれません。でも、このテキストでviの使い方の概略がわかるようになります。もちろん、途中で止めてもテキストは毎回変更がクリアされるので安心です。
一度に2時間が無理なら、15分くらいに分けて最後まで一通り操作することをお勧めします。そうすれば、viのキー操作や、viで何が出来るか、やりたいがあったとき何をすれば良いか、概略が理解できます。

$ vimtutor

出力例
===============================================================================
=    V I M 教 本 (チュートリアル) へ よ う こ そ        -    Version 1.7      =
===============================================================================

     Vim は、このチュートリアルで説明するには多すぎる程のコマンドを備えた非常
     に強力なエディターです。このチュートリアルは、あなたが Vim を万能エディ
     ターとして使いこなせるようになるのに十分なコマンドについて説明をするよう
     なっています。

     チュートリアルを完了するのに必要な時間は、覚えたコマンドを試すのにどれだ
     け時間を使うのかにもよりますが、およそ25から30分です。

     ATTENTION:
     以下の練習用コマンドにはこの文章を変更するものもあります。練習を始める前
     にコピーを作成しましょう("vimtutor"したならば、既にコピーされています)。

     このチュートリアルが、使うことで覚えられる仕組みになっていることを、心し
     ておかなければなりません。正しく学習するにはコマンドを実際に試さなければ
     ならないのです。文章を読んだだけならば、きっと忘れてしまいます!。

     さぁ、Capsロック(Shift-Lock)キーが押されていないことを確認した後、画面に
     レッスン1.1 が全部表示されるところまで、j キーを押してカーソルを移動しま
     しょう。
"/tmp/tutorCb9398" 975 行, 43875 文字

終了するときは、viエディタと同様に、escキーでコマンドモードにして「:q!(enter)」(保存せずに終了)です。

viエディタが使えるとlinux上での作業が楽になります。
vimtutorの練習は出来れば2回以上やることをお勧めします。

なお、linux上で日本語入力が出来ないときは英語版で作業しましょう。
$ vimtutor en



viエディタ、初級編7(tips)

viエディタ、初級編7(tips)
viエディタを使うとき知っておくと便利な操作

viエディタを使うとき知っておくと便利な操作がいくつかあります。

起動オプション
vi +20 tmp.txt
viエディタの起動時に、行指定ができます。
また「+/abcd」とすることで文字(abcd)を検索したあと、カーソルをその行でとめることも出来ます。

コマンドもあります。
u
コマンドモードで編集中に、直前の操作を取り消す。 あまり多用すると何をやっているのか混乱するのでほどほどに。

xp
コマンドモードで編集中に、カーソルの下の文字とカーソルの次の文字を入れ換える。 スペルミスなどで文字の順番を入れ替えるときに便利です。

ddp
コマンドモードで編集中に、カーソルの下の行とカーソルの次行を入れ換える。 入力ミスなどで行の順番を入れ替えるときに便利です。

ctrl-G
ファイル内のカーソル位置を表示します。大きいファイルを編集しているとき、編集箇所を確認するために使います。

:set number
テキストの行番号を表示
表示を消すときは、「:set nonoumber」

2011/08/30

viエディタ、初級編6(man,help)

viエディタ、初級編6(man,help)
viエディタのマニュアル

viエディタのマニュアルは、「man vi」で呼び出すとviコマンドの使い方の説明が表示されます。
また、viは、現在vimのエイリアスになっています。
例 manコマンドで表示されるviの説明
VIM(1)                                                                  VIM(1)

NAME
       vim - Vi IMproved, a programmers text editor

SYNOPSIS
       vim [options] [file ..]
       vim [options] -
       vim [options] -t tag
       vim [options] -q [errorfile]

       ex
       view
       gvim gview evim eview
       rvim rview rgvim rgview

DESCRIPTION
       Vim  is a text editor that is upwards compatible to Vi.  It can be used
       to edit all kinds of plain text.  It is especially useful  for  editing
       programs.

       There  are a lot of enhancements above Vi: multi level undo, multi win-
       dows and buffers, syntax highlighting, command line  editing,  filename
:

viエディタの操作方法を知りたい場合、viエディタを起動したあと、コマンドモードにて以下の操作をして下さい。また、F1キーを押してヘルプ画面が出る設定になっていることもあります。
$ vi tmp.txt             # viエディタを起動

画面がリフレッシュされて、ファイルの内容が表示されたら、コマンドモードの状態で
「:help (enter)」
: help

vi操作のヘルプが開きます。
help.txt*      For Vim version 7.0.  Last change: 2006 Jun 16

                        VIM - main help file
                                                                         k
      Move around:  Use the cursor keys, or "h" to go left,            h   l
                    "j" to go down, "k" to go up, "l" to go right.       j
Close this window:  Use ":q".
   Get out of Vim:  Use ":qa!" (careful, all changes are lost!).

Jump to a subject:  Position the cursor on a tag (e.g. |bars|) and hit CTRL-].
   With the mouse:  ":set mouse=a" to enable the mouse (in xterm or GUI).
                    Double-click the left mouse button on a tag, e.g. |bars|.
        Jump back:  Type CTRL-T or CTRL-O (repeat to go further back).

Get specific help:  It is possible to go directly to whatever you want help
                    on, by giving an argument to the |:help| command.
                    It is possible to further specify the context:
                                                        *help-context*
                          WHAT                  PREPEND    EXAMPLE      ~
                      Normal mode command      (nothing)   :help x
help.txt [ヘルプ][RO]                                         1,1           先頭
abcdef
tmp.txt                                                      2,1            20%
"help.txt" [読込専用] 214L, 7883C

help画面の終了は、「:q (enter)」です。これで、viの編集画面に戻れます。
ヘルプ画面で編集モードになっていることもありますので、「esc」キーを押したあとに「:q (enter)」の操作をする方が安全です。


なお、 vi のtutorもあります。日本語表記なのでこちらの方が見やすいかもしれません。
$ vimtutor

viエディタ、初級編5(変更)

viエディタ、初級編5(変更)
テキストの変更操作

以下のコマンドモードのとき、テキストを変更することが出来ます。
訂正箇所が一部のときに、モードを切り替えなくていいので便利です。

r(x)
カーソルの文字を1文字置き換える、(x)は任意の文字です。実行後は、コマンドモードになる。(挿入モードではありません)

cw
カーソルの文字を1単語置き換える。実行後は、挿入モードになるのでカーソル移動のためには、コマンドモードにするためキーを押して下さい。

c$
カーソル以降行末までの文字を置き換える。実行後は、挿入モードになるのでカーソル移動のためには、コマンドモードにするためキーを押して下さい。

2011/08/29

viエディタ、初級編4(取り消し、再実行)

viエディタ、初級編4(取り消し、再実行)
viエディタの入力作業で、変更を取り消しすることが出来ます

u
直前の変更を取り消し
U
直前の変更を1行分まとめて取り消し

ctrl-R
直前の変更を取り消ししたものの再実行

viエディタ、初級編3(繰り返し)

viエディタ、初級編3(繰り返し)
viエディタを使うとき知っていると効率が上がる操作

viエディタのコマンドは、以下の構成になっています。
「繰り返し回数」「コマンド」「モーション」

ここではviエディタで効率を上げる機能のうち、繰り返し回数の指定について説明します。
viエディタは各操作を行う上で、繰り返し回数の指定が出来ます。指定回数nは数字です。

n「x」
n文字分削除

n「w」
n回分後方に単語単位で移動

n「yy」またはn「Y」
カーソルからn行分をヤンクバッファにコピー

その他各操作で回数の指定が出来ます。

2011/08/28

viエディタ、初級編2(ヤンクバッファ)

viエディタ、初級編2(ヤンクバッファ)
viエディタの編集コマンド2

windowsで使用するコピー&ペーストのバッファーを、viエディタではヤンクバッファと呼びます。
コマンドモードで、ヤンクバッファを使った行単位のコピーペースト機能があります。

「yy」または「Y」
カーソルの行をヤンクバッファに保存
「p」
カーソルの行の下にヤンクバッファの内容をペースト
「P」
カーソルの行の上にヤンクバッファの内容をペースト

2011/08/27

viエディタ、初級編1(挿入モード、削除、移動)

viエディタ 初級編1(挿入モード)
viエディタで入力編集のコマンド

viエディタでコマンドモードのときに使える編集用コマンド
  1. 挿入
  2. 削除
  3. 移動
  1. 挿入(テキストを入力するためのモードです)
    コマンドモードから挿入の操作では、この操作のあと挿入モードになります。
    「i」キー
    カーソルの前に文字を挿入
    「a」キー
    カーソルの後に文字を挿入
    「I」キー
    行の先頭に移動し文字を挿入
    「A」キー
    行末に移動し文字を挿入
    「o」キー
    カーソルの上に1行挿入
    「O」キー
    カーソルの下に1行挿入
  2. 削除
    削除の操作後もコマンドモードのままです。
    「x」キー
    カーソルの下にある文字を1文字削除
    「d0」キー
    カーソルから行頭まで削除
    「dw」キー
    カーソルからスペースを含む次の単語の区切りまで削除
    「de」キー
    カーソルからスペースを含まない次の単語の区切りまで削除
    「df?」キー
    次の「?」キーまで削除
    「D」キー、「d$」
    カーソルから行末まで削除

  3. 移動
    移動操作のあともコマンドモードのままです。
    「H」キー
    ファイルの先頭に移動
    「G」キー
    ファイルの最後に移動
    「w」キー
    単語単位でファイルの後方に移動
    「b」キー
    単語単位でファイルの前方に移動
    「0」キー
    行頭に移動
    キーボードがら手が離れてしまいますが、「HOME」キーでも同じ動作をします
    「$」キー
    行末に移動
    キーボードがら手が離れてしまいますが、「END」キーでも同じ動作をします
    「/文字列」キー
    文字列を検索
    「?文字列」キー
    文字列を逆方向に検索
    「n」キー
    文字列を再検索
    「N」キー
    文字列を逆方向に再検索