0

我喜欢网络。它非常好/强大,并且有库存 Vim 。

但是,我在使用正常的 Cursor Navigation Mode 进入 Netrw 时遇到了一个小的生产力问题。我所做的最重要的活动是/使用可导航光标,因为我知道我会寻找什么。

  1. /是否可以在ie 搜索模式下进入 Netrw ?即任何 Netrw 缓冲区默认为 / 并按 Enter 应将其带入简单的光标导航模式?
  2. 如何使另一个'/'应该只输入当前在第一个搜索突出显示下的目录?
  3. 模糊搜索会更加出色,但是关于如何实现的任何想法?

任何想法如何做到这一点?Vim 是相当可组合的,因此这应该是可能的。任何想法如何实现这一目标?当然,我使用 CtrlP 等,而 Netrw 已变得多余,但有时需要导航 FS 。如果您认为它有点像 Emacs 中的 ido-mode ,但是我在想如何添加一个使用 Netrw 但处理方式不同的层缓冲区?

4

2 回答 2

1

我会使用粗略的映射来处理您的第一个要求:

:nnoremap <key> :Explore<CR>/

看看它是否真的需要更复杂。

您的第二个要求听起来不太可能,因为这意味着在同一模式下/用于两个截然不同的动作,这听起来非常不像 vim。我认为更清晰,更直观。<CR>

Vim 不进行模糊搜索,因此您需要编写自己的算法或从其他人的插件中提取它。set incsearch可能是一个足够好的临时解决方案(对我来说肯定是)。

于 2014-06-29T11:31:00.210 回答
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
于 2014-06-29T12:40:16.903 回答