logo

Netrwでファイルを開く時にwindowを指定する

Netrwでファイルを開く時開く先のwindowを指定できるように拡張する。

依存

コード

.vimrc に以下を記述

fu! MyNetrwBrowse(isLocal) let l:wincount = winnr('$') let l:fname = netrw#Call('NetrwGetWord') let l:ischoose = 0 if !(l:fname =~ '/$') if l:wincount > 2 let l:winid = win_getid() call choosewin#start(range(2, l:wincount)) let g:netrw_chgwin = winnr() call win_gotoid(l:winid) en en let l:path = netrw#Call('NetrwBrowseChgDir', a:isLocal, l:fname) if a:isLocal call netrw#LocalBrowseCheck(l:path) else call netrw#Call('NetrwBrowse', 0, l:path) en if g:netrw_chgwin != -1 let g:netrw_chgwin = -1 en endf " override keymappings let g:Netrw_UserMaps = [] call add(g:Netrw_UserMaps, ['<CR>', 'MyNetrwBrowse']) call add(g:Netrw_UserMaps, ['l', 'MyNetrwBrowse']) call add(g:Netrw_UserMaps, ['o', 'MyNetrwBrowse'])

補足

win_getid() を使用しているため Vim 8以上でないと動きません。Vim 7で動かしたい場合は要調整。