0

私は Netrw が好きです。そのかなり良い/強力で、Vim の在庫があります。

ただし、通常の Cursor Navigation Mode で Netrw に入ると、生産性に少し問題があります。私が行う最も重要な活動は/、ナビゲート可能なカーソルを使用する代わりに、何を探しているかを知っていることです。

  1. /検索モードで Netrw に入ることができますか? つまり、すべての Netrw バッファのデフォルトは / で、Enter キーを押すと、単純なカーソル ナビゲーション モードになりますか?
  2. 別の「/」を作成するには、現在最初の検索ハイライトの下にあるディレクトリを入力する必要がありますか?
  3. あいまい検索はさらに素晴らしいですが、どのように達成できるかについてのアイデアはありますか?

これを行う方法はありますか?Vim は非常にコンポーザブルなので、これは可能なはずです。これを達成する方法はありますか?もちろん、私は CtrlP などを使用しており、Netrw は冗長になっていますが、FS をナビゲートするために必要な場合があります。Emacs の ido-mode に少し似ていると考えると、Netrw を使用するレイヤーを追加する方法を考えていましたが、それを別の方法で処理する方法を考えていました。そのレイヤーを追加する際の課題と、これらの特別な機能を理解するための指針バッファ?

4

2 に答える 2

1

最初の要件に対処するために、大まかなマッピングを使用します。

:nnoremap <key> :Explore<CR>/

さらに高度な処理が本当に必要かどうかを確認します。

あなたの2番目の要件は、同じモード/で2つの大きく異なるアクションに使用されることを意味するため、ほとんどないように聞こえます。私の意見では、より明確ではるかに直感的です。<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 に答える