vimではできます カーソルの下のファイルを開きます。gf
コマンドを使用して 。
ワンクリックで新しいペインでファイルを簡単に開くこともできます<c-w> f
。これはとても素敵で時間を節約する機能です。
ところで、すでに開いているウィンドウで(新しいウィンドウを作成せずに)ファイルを開く方法がわかりません。
答え1
私はこれを行うためにすべての作品を一つにまとめました。最善の方法は、すべてのコマンドに対してカスタムマッピングを作成することです。
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
フォーカスを前のウィンドウ(実際に出てきたウィンドウ)に変更します。
答え2
答え3
これは私にとって効果的です。
function! OpenFileInPrevWindow()
let cfile = expand("<cfile>")
wincmd p
execute "edit " . cfile
endfunction
nmap ,f :call OpenFileInPrevWindow()<CR>
答え4
2013年の上記の答えに本当に迷惑ですが、そうではありません。辞める私が興味を持っている状況で安定して動作し、それを処理するためにもう少し強力な機能を作成します。具体的にはgF
(例:「行番号に移動」機能を含む)は、次のようになります。
function! gfriend#goto_cWORD(winmotion)
let cword = expand("<cWORD>")
let st = match(cword, '\v\f+:\d+')
let end = matchend(cword, '\v\f+:\d+')
if end !=# -1
let cword = cword[st:end - 1]
endif
let bits = split(cword, ':')
let starting_window = nvim_win_get_number(0)
" If there's no previous window, create a new one
wincmd p
if nvim_win_get_number(0) ==# starting_window
execute(a:winmotion." ".bits[0])
else
execute("e ".bits[0])
endif
if bits[1]
execute(bits[1])
endif
endfunction
使い方はこんな感じです。
nmap <silent> <Leader>gF \
:<C-u>call gfriend#goto_cWORD(winwidth(0) >=# 180 ? 'vsp' : 'sp')<CR>
(小さい)内容を投稿しました。GitHubに行く、必要に応じてそこからプラグインとしてインストールできます。
Plug 'ELLIOTTCABLE/vim-gfriend'