Vimでファイルの往来(編集中の他ファイルってどうやって開く?)

テキストエディタ(Vimやその他)

引数でたくさんファイルを指定したのはいいけれど、裏にあるはずのファイルが開ません。
そもそもVimで複数ファイル扱えるの? Vim初心者にはよくある認識誤りです。

裏のファイル、Vimではバッファと呼ぶので、裏のバッファを表に持ってくるのは簡単です。

準備として今回使用するダミーファイルを10個生成しておきましょう。

~$ ls
~$ 
~$ seq 100 | split -dl10
~$ ls
x00  x01  x02  x03  x04  x05  x06  x07  x08  x09
~$ 

Vimを起動します。先ほど生成した全ファイルを指定します。

~$  vim *

vim-001
全ファイルを指定しましたが、このように最初のファイル(バッファ)しか表示されていません。他ファイルはどこへ行ったのでしょうか。
vim-title
他ファイルは、上図のようにバッファとして存在します。今は、一番前にあるバッファのみが表示されている状態です。

Vim上で:lsを実行してみましょう。

:ls

vim-002
他ファイルもバッファリストに存在していますね。:lsと:buffersは同じ意味です。

バッファは、:n(次のバッファ)、:N(前のバッファ)で切り替えできますが、全バッファリスト中の、どのバッファを編集中か確認するために、:lsと組み合わせてバッファの切り替えをできるようにしてみます。mapで、ファンクションキーのF3,F4に割り当てます。

:map <f4> :n<CR>:ls<CR>
:map <f3> :N<CR>:ls<CR>

キーの割り当てができたので、使ってみます。F4は、次のバッファ+バッファリスト表示です。
F4
vim-003
%a の位置のバッファが、現在編集中のバッファとなります。

F4キー、ワンストロークで、次のバッファに切り替わります。
vim-004
F3で、前のバッファに戻ります。
vim-005
Enterキーで編集画面に戻ります。
vim-006
さて、終了する場合は:q(uit)でよいでしょうか?

:quit

vim-007
「編集すべきファイルがあと8個あります」と表示されてしまいました。なぜ9個ではないのか疑問ですが、もう一度:q(uit)を実行します。

:quit

vim-008
終了できました。
さて、さきほどのなぜ9個ではないのかの疑問ですが、もう一度Vimを起動して確認してみましょう。

~$ vim *

起動したら、10個目のバッファへ切り替えるため9nを実行します。

:nn

vim-009
ここで:qで終了をしましょう。注意されるでしょうか。

:q

vim-008
注意されることなく終了できました。他のバッファに切り替えていなくても、最後のバッファに切り替えた時点で、warningのフラグが落ちるようですね。さきほど 「編集すべきファイルがあと8個あります」と表示されたのは、2番目のバッファに切り替えた後だったからということでしょう。

コメント

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