標準Viは 複数のファイルの扱いが難しく,機能も弱かったと思う人が多かったのでは ないかと思いますが, JVimでは非常に強力な機能と使いやすさを持っています. JVimの起動時に
jvim file1 file2 file3
…や
jvim *.txt …のようにして起動すれば 最初から複数のファイルを指定された
状態で編集を開始できます
また, -o オプションをつけて
jvim -o file1 file2
のように起動すると 指定された複数のファイルを同時に窓を分割して見えるよう
な形式で起動できます
また, JVimでは 起動中に他のファイルを開いたりジャンプしたりする機能が
手軽に使えるような機能がありますが 読み込み方については別文章を参照して
下さい. この文章では 複数のファイルを読み込んだ後で,それらをどのようにうまく
扱うのかを解説します
JVimではファイルが読み込まれたり指定されたりすると かならず通し番号が つけられます. どのファイルが何番で どのような状態になっているのかを表示 させるには
:files
とします. すると例えば次のような表示が出ます
1 #h "/usr/test/example" line 1
2 - "manual.txt" line 0
3 % + "makelist.c" line 1
この例を詳しく説明すると…
まずひとつのファイルについて一行の表示なので 現在 3つのファイルを JVimが
扱っていることがわかります
先頭の数字がファイルの番号です. 起動から終了までの間, この数字は
どんな操作をしても変わることはありません . ファイルにつけた背番号みたいな
ものだと思って下さい
二文字目は…以下のような意味です
% の印がついているファイルは 現在編集対象となっているファイル です
カーソルがいる編集対象のことです
# の印がついているファイルは 現在の編集ファイルと 交替する対象 となる
ファイルです. この印がついているファイルは すぐに現在のファイルと切替える
ことができて 他のファイルよりもちょっと便利です
CTRL-^ または :e# といった操作で このファイルと編集中のファイルが
瞬時にして入れ替わります
何の印もなくてスペースが入っているだけの場合は 上のどちらでもないファイルです
三文字目は…以下のような意味です
何の印もない場合 は ファイル内容が読み込まれている通常の状態だという意味です
h の印のファイルは ファイル内容がメモリ内に読み込まれているが
表示はさせてなくって
隠された(hidden)状態にある ことを示しています. h 状態のファイルは 後で
セーブするのを忘れないように気を付けましょう
- の印のファイルは ファイル 内容が読み込まれていない状態 だという意味です
起動時にファイル名だけ指定したけども まだ内容を一度も見てない場合とか
過去に編集し終って閉じてしまったファイルなどが この状態になります. 閉じたファイルでも
JVimを終了させるまでは ファイル名はこのリストに残るので また編集したくなったら
番号で呼び出すことができるのです
四文字目は…
+ の印のファイルは 現在内容に変更が加えられているが セーブされていない
…つまり 変更中 の意味です
そして ファイル名と カーソルの位置が続いて表示されています
:files コマンドでファイル一覧を表示させてみて,もう一方のファイルの行に # という印が ついているのであれば
CTRL-^
という操作をすれば, 一瞬でそのファイルに切り替わるので, 2つのファイルの間を手軽に
行き来できます
また,どんな場合でも
ファイル番号CTRL-^
という操作で, ファイル番号に対応したファイルに即座に切り替えようとします
ファイルがセーブされていないと編集対象が切替えられない設定にしている場合は
切替える前にファイル内容をセーブしておかないと切替えは失敗します
というオプション設定をしておけば 編集中の内容を保ったまま別の画面に切替えることが
できます. このようにして編集中なのに表示されていない状態のファイルが
存在することもあるわけで, これは非常に便利なのですが セーブのし忘れの
原因にもなりやすいので :files コマンドの表示をよく見て + 記号があるか
どうかの確認をするとか :bmodコマンドを覚えるなどして対処しましょう
たくさんファイルを同時に開いている場合には :filesコマンドを見ながらの
操作をすることも多いかも知れませんが とりあえずは
とすれば その番号のファイルの編集に切り替わることを知っているだけで困ることもないでしょう
例えば :files の出力を見て,三番のファイルに切り替えたくなったら
3 CTRL-^
または :e#3 という操作でも全く同様に編集を切り替えできます
画面を新しく分割してファイル内容を編集したければ
:new #3または :sp #3 とします(もちろんファイル番号が3の時の例)
ファイルリストも多くなると不要な項目は削除したくなりますよね
こんな時は :bdel (番号) というコマンド操作で編集を終わりにして
リストからも消すことができます. 例えば 3番のファイルをリストから削除したければ
で良いのです. 内容が変更中だと失敗するのでセーブしてからにするか, あるいは
:bdel! 3 とすれば変更中の内容は捨てて リストからも消去します
なお, 番号を消してもファイル番号は起動中は変化することがない ので
消した番号は欠番となるだけで 前に番号が詰められるわけでは無いので注意
また,多くのファイルを読み込んだ後で 膨大になったファイルリストを片付ける
時には 複数の番号をまとめて ":bdel"できます
たとえば
とスペースで区切って数字を並べれば 3,4,5,6番のファイルをまとめて消せるし
:1,9bdel
とすれば 1から9番までのファイルをすべて一気に消せます
びっくりマークをつければ変更中であっても捨ててリストから削除できます
たとえば
:bdel! 3 4 5 6 とか :1,9bdel! などとします
たとえば JVimを起動する時に
jvim *.txt
などとして 大量のファイルを次々と見たいことってありますよね ?
こういう時は 次のファイルの表示に切替える時に
:n または :next と打つだけでリストの次のファイルの表示に切り替わります
ついでに知っておきたいのは
jvim -o *.txt
のように 起動時に -o オプションをつけると できるだけファイルの数だけ
画面を分割して 一度に全部のファイルを表示させた状態で起動しようとします
それでもメモリの制限などで 読み込みできなかった窓も出るかも知れません
が, カーソルを移動させれば内容が読み込まれるので大丈夫です
複数ファイル編集と関連の深そうな ファイルを閉じたり書き戻すコマンドを
適当に重要そうなものを選んで解説します
編集しているファイルを閉じます. 閉じた後の状態は - となり,メモリから内容
が削除されます. 閉じようとする時に変更内容がセーブされていないと
失敗します. 略さずに :quit と打ってもよいです
変更内容がセーブされていない場合に,変更内容を捨ててファイルを閉じる
画面分割をしていない時に このコマンドを打つと JVimが終了するので 変更中の
ファイルをセーブしていない状態で隠している時は要注意 ! 略さずに
:quit! としても同様
変更のあったすべてのファイルを一度に全部セーブする
とすれば強制バージョンになる. 略さずに :wall とか :wall! のように書いても同様
ファイルリストで 次の変更中のファイルの編集に切替える
終了しようと思った時に 編集中のものをセーブしに行く時に便利
すべての変更のあるファイルをセーブしてから JVimを終了させる
は 強制バージョン. 略さずに :wqall や :wqall! とも
書ける
また,これの「ファイル一個だけバージョン」の :wq は 良く使ってますよね
終了はせずに とりあえず変更のあったファイルについてセーブだけを
まとめてする場合ならば :wa や :wa! といったコマンドを使います