すでに開いているウィンドウでカーソルの下のファイルを開くためのvimショートカット


12

vim では、コマンドを使用してカーソルの下のファイル開くことができ ますgf

また、を押すと、新しい分割ウィンドウでそのファイルを簡単に開くことができます<c-w> f。これは本当に素晴らしい時間節約機能です。

しかし、(新しいウィンドウを作成せずに)既に開いている分割ウィンドウでファイルを開く方法がわかりません。


1
preview機能を確認することをお勧めします(を参照:h preview)。
ステファンChazelas

そう、プレビューも使っています。しかし、私はプレビューウィンドウでファイルを開きたくありませんでしたが、明示的に他のファイルで開きました。
psibar 2013年

回答:


10

私はトリックをするためにすべてのピースを集めました。最善の方法は、すべてのコマンドのカスタムマッピングを作成することです。

 map <F8> :let mycurf=expand("<cfile>")<cr><c-w> w :execute("e ".mycurf)<cr><c-w>p

説明:

  • map <F8> 「F8」に続くコマンドをマッピングします
  • let mycurf=expand("<cfile>") カーソルの下のファイル名を取得して保存します mycurf
  • <c-w>w フォーカスを次の開いている分割ウィンドウに変更します
  • execute("e ".mycurf) に保存されたファイルを開きます mycurf
  • 最後に<c-w>p、フォーカスを前のウィンドウ(実際に元のウィンドウ)に変更します

1

それは簡単にはできません。A [count]の前<C-w>fに指定したファイルの一致は'path'それがない、開かれていない既存のウィンドウを選択します。<C-w>wコマンドの場合のみ、[count]「既存のウィンドウ番号に移動」を意味します。

この機能を使用するには、カスタムマッピングを作成する必要があります。

  • ファイルを取得して[count]ウィンドウに移動し、gfコマンドをエミュレートする、または
  • 現在のバッファを[count]ウィンドウに複製し、gfそこで実行します

はい、それを行う唯一の方法はカスタムマッピングを書くことです。カーソルの下にあるファイルをつかむのに問題がありました。しかし、私はそれを今理解したと思います
psibar 2013年


0

これは私のために働きました:

function! OpenFileInPrevWindow()
    let cfile = expand("<cfile>")
    wincmd p
    execute "edit " . cfile
endfunction

nmap ,f :call OpenFileInPrevWindow()<CR>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.