我喜欢Netrw。它相当不错/功能强大,它有现货Vim。
但是我使用正常的光标导航模式进入Netrw的生产力问题很小。我做的最重要的活动是/
安装使用导航光标,因为我知道我会寻找什么。
/
进入Netrw,即搜索模式? I.e任何Netrw缓冲区默认为/并按Enter键
应该把它带到简单的光标导航模式? 任何想法如何做到这一点? Vim非常易于组合,因此这应该是可能的。任何想法如何实现这一目标?当然我使用CtrlP等,而Netrw已经变得多余,但有时需要导航FS。如果你认为它有点像Emacs中的ido模式,但是我在想如何添加一个使用Netrw的图层但是以不同的方式处理它添加该图层的挑战是什么以及有什么指示来理解这些特殊的缓冲?
答案 0 :(得分:1)
我会使用原始映射来处理您的第一个要求:
:nnoremap <key> :Explore<CR>/
并查看确实是否需要更复杂。
你的第二个要求听起来不太可能,因为这意味着/
被用于两个截然不同的动作在同一模式下,听起来非常不像vim一样。在我看来,<CR>
更清晰,更直观。
Vim不进行模糊搜索,因此您需要编写自己的算法或将其从其他人的插件中提取出来。 set incsearch
可能是一个足够好的临时解决方案(对我来说肯定是这样)。
答案 1 :(得分:0)
autocmd FileType netrw call feedkeys("/\<c-u>", 'n')
使其对netrw缓冲区保持不变。
使用这样的映射:
map <silent> <C-E> :call ToggleVExplorer()<CR>
cmap <C-E> <C-\><C-N>:call ToggleVExplorer()<CR>
如果你有一个像ToggleVExplorer那样打开和关闭的切换功能:
"Toggle Vexplore with Ctrl-E
function! ToggleVExplorer()
if exists("t:expl_buf_num")
let expl_win_num = bufwinnr(t:expl_buf_num)
if expl_win_num != -1
let cur_win_nr = winnr()
exec expl_win_num . 'wincmd w'
close
exec cur_win_nr . 'wincmd w'
unlet t:expl_buf_num
else
unlet t:expl_buf_num
endif
else
exec '1wincmd w'
Vexplore
let t:expl_buf_num = bufnr("%")
endif
endfunction