引数でたくさんファイルを指定したのはいいけれど、裏にあるはずのファイルが開ません。
そもそもVimで複数ファイル扱えるの? Vim初心者にはよくある認識誤りです。
裏のファイル、Vimではバッファと呼ぶので、裏のバッファを表に持ってくるのは簡単です。
準備として今回使用するダミーファイルを10個生成しておきましょう。
~$ ls ~$ ~$ seq 100 | split -dl10 ~$ ls x00 x01 x02 x03 x04 x05 x06 x07 x08 x09 ~$
Vimを起動します。先ほど生成した全ファイルを指定します。
~$ vim *
全ファイルを指定しましたが、このように最初のファイル(バッファ)しか表示されていません。他ファイルはどこへ行ったのでしょうか。
他ファイルは、上図のようにバッファとして存在します。今は、一番前にあるバッファのみが表示されている状態です。
Vim上で:lsを実行してみましょう。
:ls
他ファイルもバッファリストに存在していますね。:lsと:buffersは同じ意味です。
バッファは、:n(次のバッファ)、:N(前のバッファ)で切り替えできますが、全バッファリスト中の、どのバッファを編集中か確認するために、:lsと組み合わせてバッファの切り替えをできるようにしてみます。mapで、ファンクションキーのF3,F4に割り当てます。
:map <f4> :n<CR>:ls<CR> :map <f3> :N<CR>:ls<CR>
キーの割り当てができたので、使ってみます。F4は、次のバッファ+バッファリスト表示です。
F4
%a の位置のバッファが、現在編集中のバッファとなります。
F4キー、ワンストロークで、次のバッファに切り替わります。
F3で、前のバッファに戻ります。
Enterキーで編集画面に戻ります。
さて、終了する場合は:q(uit)でよいでしょうか?
:quit
「編集すべきファイルがあと8個あります」と表示されてしまいました。なぜ9個ではないのか疑問ですが、もう一度:q(uit)を実行します。
:quit
終了できました。
さて、さきほどのなぜ9個ではないのかの疑問ですが、もう一度Vimを起動して確認してみましょう。
~$ vim *
起動したら、10個目のバッファへ切り替えるため9nを実行します。
:nn
ここで:qで終了をしましょう。注意されるでしょうか。
:q
注意されることなく終了できました。他のバッファに切り替えていなくても、最後のバッファに切り替えた時点で、warningのフラグが落ちるようですね。さきほど 「編集すべきファイルがあと8個あります」と表示されたのは、2番目のバッファに切り替えた後だったからということでしょう。
コメント