カレントファイルのパスを基準に他のファイルを開くには単純に :e %:h/foo.txt
のようにすれば良いです。
Ex コマンドのファイル名を要求する場所で %
を使うとカレントファイル名に置き換えられます。
その後の :h
でカレントファイルのディレクトリパスを取得しています。
例えばカレントファイルが category/cat/nya.txt
なら、%
は category/cat/nya.txt
となり、%:h
は category/cat
になります。
ですが、ctrl + uを押しても元のショートカットであるページ上へページ送りにしかなりません。どうしたらこのショートカットが使えるようになりますか?
また:uffとはどのキーのことを示しているのでしょうか?
vim
1noremap :uff :<C-U>UniteWithBufferDir file -buffer-name=file<CR>
これは :uff
に :<C-U>UniteWithBufferDir file -buffer-name=file<CR>
をマッピングしています。:uff
とは単一のキーのことではなく、:
, u
, f
, f
という一連のキー入力を表しています。ノーマルモードなどでそのまま :uff
と入力するとこのコマンドが実行されます。
<C-U>
はコマンドラインモードでは行頭からカーソル位置までの全ての文字を削除するという機能を持ちます。
ビジュアルモードで範囲選択した状態で :
を押してコマンドラインモードに移行すると :'<,'>
と入力された状態でコマンドラインモードが開始されてしまうので、<C-U>
を付けることでそれを取り除くようにしているだけで、<C-U>
に対して何かをマッピングしているわけではありません。
質問内容とは関係無くなりますが、マッピングの接頭辞に :
を使うのはあまりおすすめできません。
一般的にはこのようなマッピングの接頭辞には既存のマッピングが無い or ほとんど使われないバックスラッシュやカンマ、スペースなどを使うのが良いでしょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/23 11:47