Home > Vim Hacks > Hack #11: argument listを利用して複数のファイルを取り扱う

Hack #11: argument listを利用して複数のファイルを取り扱う

概要

テキスト編集が単一のファイルのみで済むことは稀です。実際には複数のファイルを取り扱うことがほとんどです。Vimで複数のファイルを取り扱う方法は色々とありますが、ここではargument listを用いたものについて述べます。

argument listとは何か

Vimを起動した場合、特に何も引数を与えていなければ内容が空のバッファが作成・表示されます。起動に際しファイル名を与えていた場合、そのファイルが読み込まれたバッファが作成・表示されます。

ここで複数のファイル名を与えた場合、Vimは最初のファイルに対応するバッファが表示された状態で起動します。では残りのファイルについてはどうなったかというと、Vimは何が指定されたかを記憶しており、これらのファイルの一覧のことをargument listと言います。

Vimではargument listに対する様々なコマンドが提供されており、これを利用することで複数のファイルの取り扱いを便利にすることができます。

基本的な使い方

ここでは例としてvim Makefile foo.c foo.hとしてVimを起動したとします。Makefileが表示され、foo.cとfoo.hは画面上には見えない状態です。

:next
argument list内の次のファイルを開きます。
例: 現在開かれているファイルはMakefileですから、その次のfoo.cが開かれます。
:previous
:Next
:nextの逆で、argument list内の前のファイルを開きます。一見不自然な:Next/?による検索の繰り返しを行なうnNとの類似性から提供されています。
例: 現在開かれているファイルはfoo.cですから、Makefileが開かれます。
:last
argument listの最後のファイルを開きます。
例: argument list中の最後のファイルはfoo.hですから、foo.hが開かれます。
:first
:rewind
argument listの最初のファイルを開きます。
例: argument list中の最初のファイルはMakefileですから、Makefileが開かれます。
:args
argument listの一覧を表示します。

応用例

argument listは、本来はVim起動時に与えられたファイル群を取り扱うためのものなのですが、起動後に任意のファイルをargument listに設定することができます。これを利用すれば、argument list用の機能を用いて任意のファイル群を集中して取り扱うことが簡単にできます。

argument listの設定は:args {file} ...で行うことができます。例えば特定の拡張子のファイルを取り扱いたい場合は:args *.cのようにすることで一連のファイルをargument listに設定することができ、:next/:previousを用いて編集するファイルを素早く切り替えることができます。

ここでは基本的な利用方法についてのみ述べましたが、argument listについては他にも様々なコマンドがあります。詳細については:help argument-listを参照してください。

kana
このエントリーをはてなブックマークに追加
はてなブックマーク - Hack #11: argument listを利用して複数のファイルを取り扱う
Share on Facebook
Post to Google Buzz
Bookmark this on Google Bookmarks
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://vim-users.jp/2009/05/hack11/trackback/
Listed below are links to weblogs that reference
Hack #11: argument listを利用して複数のファイルを取り扱う from Vim-users.jp

Home > Vim Hacks > Hack #11: argument listを利用して複数のファイルを取り扱う

Search
Feeds
Links
  • 公式
  • 勉強会
  • 情報
  • コミュニティ
  • Meta
    Etc
    Creative Commons License
    This blog is licensed under a Creative Commons License.

    Return to page top