【vim】複数ファイルを開く
問題
viで、複数のファイルを開いて編集したい。
タブ方式のテキストエディタみたいな感じで!
答え
viコマンドの引数にファイル名を複数渡して、複数ファイルを開くことができる。
$ vi a.txt b.txt c.txt
$ vi *.txt
viを起動したところから複数ファイルを開いた状態にしたいときは、:args
コマンドを使う。
:args b.txt c.txt
:args *.txt
開くと、ぱっと見は単一ファイルを開いたときと変わらないが、ファイル切り替えのコマンドでファイルを切り替えられる。複数ファイルの切り替えは 次へ → :n
, 前へ → :prev
などのコマンドでおこなう。
ファイルを切り替えて、コピー(ヤンク)して、別のファイルに切り替えて貼り付けなどの操作ができる、
ファイルを切り替えるとき、保存していないと警告されるので、複数並べて編集中にしたいときは :vsコマンドなどがよいかもしれない。
複数ファイルを指定して起動
- $vim filename filename …
- 指定したファイルをすべて開いてVimを起動
- :next
- 次のファイルを編集する。:n でも可。現在のファイルが編集中ならエラーになる。
- :next!
- 現在のファイルが編集中でも強制的に次のファイルを編集する
- :wnext
- 現在のファイルを保存して次のファイルへ。 :wn でも可。
- :args
- 指定したファイルと現在のファイルを確認できる
- :previous
-
:nextと逆方向にファイルを開く。:prev でも可。
現在のファイルが編集中ならエラーになる。
強制的に移動するときは :previous! - :wprevious
- 現在のファイルを保存して前のファイルへ。:wp でも可。
- :last
- 最後尾のファイルへ。:la でも可。
- :first
- 最初のファイルへ。:fir でも可。
- CTRL-^
- 直近の2つのファイルを交互に開くことができる
自動保存
- :set autowrite
- ファイルを移動する際に自動で保存するように設定。
- :set noautowrite
- 自動保存を解除
起動中のVimから複数ファイルを開く
- :args a.txt b.txt c.txt
- 指定したファイルを開く。
ワイルドカードを使うこともできる :args *.c
他のファイルを開く
- :edit filename
- ファイルを開く。:e filename でも可。ファイル名を指定しない場合、カレントファイルを開き直す。カレントファイルが編集中の時はエラーになる。
- :edit! filename
- :e! filename でも可。カレントファイルが編集中でも強制的に開く。
コメント