1. ホーム
  2. vim

[解決済み] Vim ファイルナビゲーション

2022-12-31 21:27:15

質問

ここ数年 TextMate を使っていたので、vim を一生懸命に勉強しています。

私はファイル内のナビゲーションのいくつかを記憶し始めましたが、複数のファイル間のナビゲートで苦労しています。

私のワークフローでは、かなり定期的に一握りのファイル (分割ウィンドウが小さくなりすぎるほどのファイル) の間を飛び回ることがよくあります。

私は現在 NERDTree を使用していますが、ディレクトリへのドリルダウンは面倒であり、また常に

CTRL + W h / CTRL + W l で前後にホップします。

私は、簡単に切り替えられるタブがあればもっとうまくいくと思うのですが、たぶん別のワークフローを使う必要があるのでしょう。

また、次のようなショートカットが欲しいです。 CMD + T をTextMateで実行します。見つけたのは fuzzy_file_finder を見つけましたが、これは vim が Ruby バインディングでビルドされている必要があり、私が作業したネイティブインストールではそうではありませんでした。

私が ができました。

を再構築することはできますが、私が vim に切り替えたい主な理由は、どのプラットフォームでも簡単に動作する 1 つのエディタ環境を持つことができるようにするためです。

そこにあるオプションは圧倒的です、どんなアイデアでも大いに感謝されます!

どのように解決するのですか?

サブディレクトリへのドリルダウンは、古い形式の :e を使ったサブディレクトリへのドリルダウンは、タブ補完のための適切な設定があれば、それほど面倒だとは思いません。

を調べてみてください。 'wildmenu' オプションを使用すると、Vim がコマンドラインの上にある modeline に補完リスト (ファイル名) を表示するようになります。 このオプションは 'wildmode' オプションを変更することで、Vim が行うタブ補完の種類をさらに設定することができます。

個人的には :set wildmode=full .

私のワークフローはこんな感じです。

  1. :cd をプロジェクトのトップレベル・ディレクトリにコピーしてください。
  2. ファイルを開くには foo/bar/baz :

    • 最も単純なシナリオ:タイプ :e f<tab>b<tab>b<tab><enter> .

    • で始まるファイルが複数ある場合 b で始まる複数のファイルがある場合、それらのディレクトリの一つで <left> または <right> または別の <tab> をキーボードで入力すると、それらの間をジャンプします (または、さらに数文字を入力して曖昧さをなくします)。

    • 最悪のシナリオは、名前を共有するファイルとディレクトリがあり、そのディレクトリにドリルダウンする必要がある場合です。 この場合、ディレクトリ名をタブで補完し、次のように入力します。 *<tab> と入力して、ドリルダウンします。

  3. 2~3個のウィンドウを開き、必要に応じてすべてのウィンドウでファイルを開きます。
  4. 一度バッファでファイルを開いたら、バッファを削除しないでください。 新しいファイルを開くときは、バックグラウンドで開いたままにしておきます。 ただ :e を同じウィンドウで新しいファイルを開きます。
  5. 次に :b <tab> を使って、バックグラウンドで既に開いているバッファを循環させます。 もし :b foo<tab> と入力すると、現在開いているファイルの中で foo .

また、新しいウィンドウを開いたり、ウィンドウ間をジャンプしたりするのは頻繁に行うことなので、これらのマッピングを使用して簡単にできるようにしました。

" Window movements; I do this often enough to warrant using up M-arrows on this"
nnoremap <M-Right> <C-W><Right>
nnoremap <M-Left> <C-W><Left>
nnoremap <M-Up> <C-W><Up>
nnoremap <M-Down> <C-W><Down>

" Open window below instead of above"
nnoremap <C-W>N :let sb=&sb<BAR>set sb<BAR>new<BAR>let &sb=sb<CR>

" Vertical equivalent of C-w-n and C-w-N"
nnoremap <C-w>v :vnew<CR>
nnoremap <C-w>V :let spr=&spr<BAR>set nospr<BAR>vnew<BAR>let &spr=spr<CR>

" I open new windows to warrant using up C-M-arrows on this"
nmap <C-M-Up> <C-w>n
nmap <C-M-Down> <C-w>N
nmap <C-M-Right> <C-w>v
nmap <C-M-Left> <C-w>V

Vim を開いて、いくつかのウィンドウをセットアップし、その中でいくつかのファイルを開くのに数秒かかります。 個人的には、サードパーティのファイル ブラウジング スクリプトのどれもが、あまり有用であると感じたことはありません。