JVimを起動してから 他のファイルを開きたくなった場合,どのようにしていますか ?
とりあえず JVimを閉じてから…という人 は このページをよく読んでみて下さい
ここでは何種類かの方法を紹介しますが 工夫の仕方次第で もっといろいろな
開き方もあるので 慣れたらいろいろ試してみて最も便利な方法を考えるのも
面白いかと思います
jvim起動中に
:new filename
または :sp filename とすれば,新しくファイルを読み込み,画面分割します
画面間の移動は
CTRL-Wk と CTRL-Wj で
上や下に移動できます. 詳細は別文章で解説してます
画面を分割したくない場合 は
:e filename
で ファイルを読み込んで編集対象を切替えます
ただし,切替える前のファイルは セーブされていないと失敗する ことがあります
:set hid のように hid オプションを設定すれば 元のファイルを隠しておいて
切替えることができるし
:set autowrite すれば 切替え時に変更を自動的にセーブするようになります
あるいは
のようにびっくりマークをつけてコマンドを実行すると 元ファイルにしていた変更を
すべて捨てて切替えます
結構ありがちなのは…ファイル名を打とうという時になって
「あれっ…ファイル名は何だったっけ ?」 というものでしょう…でも大丈夫
:sp や :e の後ろにスペースを入れてから CTRL-D を押すと
選択肢となるファイル名の一覧が表示 されます
シェルの補間機能のように 最初の1〜2文字だけを入れてから TAB や CTRL-D で
完全なファイル名を補間させたり候補を表示させることもできます
ちょっとディレクトリのファイルを見たくて "ls"したいだけならば
:!ls
で 一時的にシェルに戻って lsコマンドを実行することもできます
なお,ファイル名入力の時は パス名つきでももちろんOKです
自分のホームディレクトリもシェルなどと同様に ~ 記号で代用できるし
入力する時も シェルみたいな補間機能が使えます.(デフォルトはタブキー)
パス名などを入力中に CTRL-D を押せば その時点での有効な候補をすべて
表示できます
現在いるディレクトリからの相対パスでも指定できます
:pwd コマンドで現在のディレクトリを確認もできるし :cd コマンドで
変更もできます
開きたいファイル名がカーソル位置に書いてあった場合には
CTRL-W fという操作(コントロールWを押した直後に f を押す)だけで目的のファイルを開けます. ためしに
:r!ls
などとしてファイル一覧を読み込ませてから, 好きなファイル名が書かれた行の上に
カーソルを移動させて CTRL-W f をやってみて下さい
カーソル位置の文字列をファイル名とみなして読み込み, 画面を分割 します
画面を分割しなくても良い場合は カーソルを飛びたいファイル名の書いてある
行の上にもっていってから gf コマンドで画面を切替えてジャンプできます
ただし,ジャンプ前の画面がセーブされていないとジャンプは失敗します
わざわざセーブしたくない場合は 設定ファイルに hidden などのオプションを
設定しておくと便利に使えると思います
なお, gf コマンドや CTRL-W f コマンドでは パス名がついていてば それも正しく解釈して目的のファイルを開けます. つまり
/home/jonny/.bash_profile
なんて行にカーソルをやって どこにいても瞬時に希望のファイルを読み書きできます
gf コマンドは, ファイル名がフルパスで書かれていれば どのディレクトリにいても そのファイルを開く事ができるのですが, パス名がついていないファイル名の上で コマンドを実行した場合は, オプション path に設定されているディレクトリの中に カーソル位置の文字列と同じ名前のファイルを探しに行きます. 頻繁に gf コマンド で呼び出して使いたいファイルのあるディレクトリは ここに登録しておくと便利だと思い ます. 例えば
set path=.\ ~/\ /usr/include
のような行を設定ファイルに書いておけば「現在いるディレクトリ」,「ホーム
ディレクトリ」,「/usr/include」以下にあるファイルならばパス名をつけなくて
も gfコマンドが適用できるというわけです. なお,
この例のように並べて複数のディレクトリ名を書く時は バックスラッシュなどで
空白文字をエスケープするのを忘れないように注意
unixのコマンドである grep を使って grep -n の出力から gg コマンドで該当する場所に直接ジャンプできます. grepコマンドは知ってますよね ?
grep -n (文字列) (ファイル名)
とすると, ファイルの中の指定した文字列を含む行を探し, 次のような形式で出力されます
(ファイル名) : (行番号) : (該当する行の内容)
…というわけで grep結果をリダイレクトするか,または jvimの中から
:r!grep -n 文字列 ファイル名として読み込ませてから カーソルをジャンプしたい行にあわせて
gg
と打つと 該当するファイルを開いてその行にジャンプします. 同じ形式の行ならば
別に grep -n の出力じゃなくても良いので使い方はいろいろ考えてみて下さい
例えば HTMLファイルの「リンク」の機能みたいに使えます. 特定のファイルから 別のファイルへの参照が多いときは ファイル名を書いておくと この機能によって手軽に行き来できますね. ちなみに CTRL-^ で飛ぶ前のファイル に戻ってこれます. 例えば…文章中に
/etc/fstab:5: この行から"gg"コマンドでfstabの5行目に飛ぶことができます
みたいな行を書いておけば この行で gg するだけで気軽にジャンプして
CTRL-^ で戻ってこれます. いろいろと参照できて便利ですよね. 目的別に
リンク集みたいなファイルを作るのも面白いかも
ちなみに
(ファイル名) : (行番号) :
の部分さえあれば正しく機能します. これ以降は何を書いても書かなくても良いので
メモなどを書いて利用できます
似たような機能としては tagジャンプ機能 というのがあります. これは
特定のファイルと場所に 短い別名のようなものをつけて その短い名前で
呼び出すことができるというものです. これも頻繁に読み書きするファイルを
登録しておくと大変便利に使えるので ぜひ覚えましょう
あと,複数のファイルの読み込みを覚えたならば
当然複数のファイルを自由に切替え
たり 窓の分割などの関連操作 も覚えましょう