93

MiniBufExplorerを試しましたが、通常、いくつかのウィンドウに表示されたり、完全に閉じたりします。私が欲しいのは、インクリメンタルサーチを備えたLustyJugglerのようなもので、Emacsのバッファーを切り替える方法です。確かにこのようなスクリプトはありますか?

4

16 に答える 16

76

以前は、タブと複数のインスタンスを組み合わせて使用​​し、gvim関連するファイルのグループを各インスタンスのタブとして保持していました。1つのインスタンスでタブが多すぎない限り、タブバーには編集している各ファイルの名前が一目でわかります。

次に、Jamis BuckによるTextMateからvimへの切り替え方法に関する投稿を読み、いくつかの優れたトリックを学びました。

  • Ctrl+w sおよびCtrl+w vは、現在のウィンドウを分割します
  • Ctrl+6同じウィンドウ内の2つのバッファ間を行ったり来たりします。
  • 現在のディレクトリ内のファイルまたは現在開いているバッファの自動検索を可能にする素晴らしいfuzzyfinder.vim
  • Jamis自身のfuzzy_file_finderfuzzyfinder_textmateは、動作をわずかに変更しfuzzyfinderて、の同様の機能のように動作しますTextMate(私が知る限り、違いは、ファイル名の最初からではなく、どこでも一致することです)。このビデオを見て、実際の動作を確認してください。

これで、インスタンスが1つだけgvim最大化され、複数のウィンドウに分割されて、一度に複数のファイルを表示できるようになりました。Ctrl+Fをにバインドしfuzzyfinder\_textmateたので、(たとえば)Ctrl+と入力F mod/usobすると開きますapp/models/user\_observer.rb。もうタブを気にすることはほとんどありません。

更新2010/08/07

ケーシーがコメントで指摘しているように、素晴らしいままですが、それfuzzyfinder\_textmate はもはや維持されていません。また、fuzzyfinder.vim大規模なプロジェクト(多数のディレクトリまたはファイル)で作業する場合は、少し遅くなり、不安定になるため、別の方法を探していました。

幸いなことに、WincentColaiutaCommand-Tプラグインの形で非常に優れた代替手段があるようです。これは、と非常によく似た(わずかではないにしても)動作をしますfuzzyfinder\_textmateが、著しく高速です。また、見つかったファイルを分割または垂直分割で開くことができるなどの優れた機能もあります。それを指摘してくれたDavidRiversに感謝します(そして賛成します!)。

于 2008-11-29T12:22:06.110 に答える
33

私は基本を使用します-' :ls'+' :bn' /' :bp' +' :b <part-of-name>'

于 2008-11-29T11:44:13.907 に答える
32

ウィンドウを分割するには、「ctrl-w s」と「ctlr-w v」が好きです。次に、移動キー (h、j、k、l) をマップし、Ctrl キーを押しながら分割ウィンドウ間を移動します。

" Map ctrl-movement keys to window switching
map <C-k> <C-w><Up>
map <C-j> <C-w><Down>
map <C-l> <C-w><Right>
map <C-h> <C-w><Left>

矢印キーに手を動かさなければならないのは面倒です。

次に、ctlr-tab を設定して、現在のウィンドウ内のバッファーを切り替えます (他の多くの環境と同様):

" Switch to alternate file
map <C-Tab> :bnext<cr>
map <C-S-Tab> :bprevious<cr>

これらは、過去数年間、私にとってはかなりうまく機能していましたが、vim には常に、あなたが知るよりも多くの秘密があります。

于 2008-12-01T03:17:46.580 に答える
24

Wincent Colaiuta のCommand-T vim プラグインを数か月間使用しています。Wincent は高速である必要がある部分を C で書きました。そして、そのファイル パターン マッチング ロジックは、Textmate の Command-T よりも優れていると思います。スクリーンキャストをご覧ください。

VIM 用の Command-T プラグインは、最小限のキーストロークでファイルを開くための非常に高速で直感的なメカニズムを提供します。「Command-T」という名前は、TextMate の Command-T にバインドされた「ファイルに移動」ウィンドウに触発されているためです。

ファイルは、パスに表示される文字を入力することによって選択され、特定の場所 (たとえば、パス区切り記号の直後) に表示される文字をより重視する必要があることを認識しているアルゴリズムによって並べ替えられます。

簡単なバッファ切り替えには、多くの役立つヒントが含まれています。以下を .vimrc に適用しました。これは、バッファー名の自動補完を行い、最も有用なバッファー切り替えコマンドを <Leader> および左側のホーム行キーにマップし、ステータス ラインに現在のバッファー番号を表示します。 :

"" Tab triggers buffer-name auto-completion
set wildchar=<Tab> wildmenu wildmode=full

let mapleader = ","

map <Leader>t :CommandT<Return>
map <Leader>a :bprev<Return>
map <Leader>s :bnext<Return>
map <Leader>d :bd<Return>
map <Leader>f :b 

"" Show the buffer number in the status line.
set laststatus=2 statusline=%02n:%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P

私はMiniBufExplorerも使用します。これは、リストされた各バッファーのコンパクトなリストを、独自の水平分割上部に提供します。

于 2010-08-01T03:43:48.230 に答える
18
nmap <Leader>bb :ls<CR>:buffer<Space>

素敵なプラグインctrlp.vimについては誰も言及していません。このプラグインを使用すると、バッファを名前で検索できます。

于 2011-12-19T14:33:41.597 に答える
15

私が使う

CTRL-J次のバッファ用

CTRL-K前のバッファ用

CTRL-L次のタブ用

CTRL-H前のタブ用

.vimrc構成は次のとおりです。

map <C-J> :bnext<CR>
map <C-K> :bprev<CR>
map <C-L> :tabn<CR>
map <C-H> :tabp<CR>

http://syskall.com/my-biggest-vim-productivity-boost/を参照してください。

于 2013-05-21T03:20:43.067 に答える
6
imap <A-1> <Esc>:tabn 1<CR>i
imap <A-2> <Esc>:tabn 2<CR>i
imap <A-3> <Esc>:tabn 3<CR>i
imap <A-4> <Esc>:tabn 4<CR>i
imap <A-5> <Esc>:tabn 5<CR>i
imap <A-6> <Esc>:tabn 6<CR>i
imap <A-7> <Esc>:tabn 7<CR>i
imap <A-8> <Esc>:tabn 8<CR>i
imap <A-9> <Esc>:tabn 9<CR>i

map <A-1> :tabn 1<CR>
map <A-2> :tabn 2<CR>
map <A-3> :tabn 3<CR>
map <A-4> :tabn 4<CR>
map <A-5> :tabn 5<CR>
map <A-6> :tabn 6<CR>
map <A-7> :tabn 7<CR>
map <A-8> :tabn 8<CR>
map <A-9> :tabn 9<CR>
于 2008-11-29T11:49:56.517 に答える
4

私が使用するバッファをリストして切り替えるには:

nnoremap <Leader>l :ls<CR>:b<space>

バッファを切り替えるには:

map <Leader>n :bn<CR>
map <Leader>p :bp<CR>
于 2011-12-19T12:57:38.583 に答える
2

私はtselectbufferを使用します。これは非常に高速で、bufexplorer とは異なり、ウィンドウのスペースを取りません。また、インクリメンタル検索もあります。minibufexplorer を試してみましたが、バッファ内のナビゲーションが少し難しいことがわかりました。

于 2009-04-03T23:39:58.493 に答える
2

私はtselectbufferを使用しています。これは非常に高速で、bufexplorer とは異なり、ウィンドウのスペースを取りません。また、インクリメンタル検索もあります。minibufexplorer を試してみましたが、バッファ内のナビゲーションが少し難しいことがわかりました。

于 2015-10-08T12:52:55.813 に答える
2

<S-J><S-K>:bpとにマップしまし:bnたが、ファイルの数が 10 を超えるため、使用していないことは認めます。次に<C-J>、 と<C-K>を Gnome ターミナルの前後のタブにマップし、通常、それぞれに対して 4 つの vim インスタンスを実行します。私が取り組んでいる4つの異なるプロジェクト。次のバッファーと前のバッファーが、バッファーリストの順序ではなく、作業中のバッファーの履歴に移動することを本当に望んでいます。

于 2012-01-09T12:26:51.167 に答える
2

優れたBuffer Explorerである be は、他のアプリケーションで使用したいと思うほど強力な記憶力を持つようになりました。2 つ以上のファイルをアクティブに編集する場合、非常に高速であることがわかります。

于 2008-11-29T13:53:06.613 に答える
0

単純な:vsplitを^ W + w / ^ W + rで使用し、:tabnewをCtrl + Alt + PgUp/PgDownキーの組み合わせで使用します。

于 2008-11-29T10:28:49.207 に答える