views:

3229

answers:

9

I've tried MiniBufExplorer, but I usually end up with several windows showing it or close it altogether. What I'd like is something like LustyJuggler with incremental search, the way I switch between buffers in Emacs. Surely there is a script like this?

+1  A: 

i use simple :vsplit with ^W+w/^W+r and :tabnew with Ctrl+Alt+PgUp/PgDown key combinations.

Eimantas
I have to agree with what [Zathrus](http://stackoverflow.com/users/16220/zathrus) said [here](http://stackoverflow.com/questions/102384/using-vims-tabs-like-buffers#103590). Tabs in Vim (or Emacs with TabBar for that matter) simply do not work like in the usual tabbed interfaces.
Alexey Romanov
+6  A: 

I use the basics - ':ls' + ':bn'/':bp' + ':b <part-of-name>'

orip
:-) I never thought I'd see "simple" and "':ls' + ':bn'/':bp' + ':b <part-of-name>'" in the same sentence.
paxdiablo
Pax, I still don't see it. :-)
csexton
+2  A: 
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>
Terminus
The most interesting thing with Vim is that you may learn something every day !
Luc M
+14  A: 

I used to use a combination of tabs and multiple gvim instances, keeping groups of related files as tabs in each instance. So long as I didn't end up with too many tabs in one instance, the tab bar shows you the name of each file you're editing at a glance.

Then I read a post by Jamis Buck on how he switched from TextMate back to vim, and learned some great tricks:

  • Ctrl-w s and Ctrl-w v to split the current window
  • Ctrl-6 to switch back and forth between two buffers in the same window.
  • the awesome fuzzyfinder.vim which gives you autocompleting search of files in your current directory or of buffers you currently have open
  • Jamis' own fuzzy_file_finder and fuzzyfinder_textmate, which slightly modify how fuzzyfinder works to behave more like a similar feature in TextMate (as far as I can tell, the difference is that it matches anywhere in the filename instead of only from the start). Watch this video to see it in action.

Now I just have one gvim instance, maximised, and split it into multiple windows so I can see several files at once. I bound Ctrl-F to fuzzyfinder_textmate, so now if I type (say) Ctrl-F mod/usob it opens up app/models/user_observer.rb. I almost never bother with tabs any more.

Update 2010/08/07

While fuzzyfinder_textmate remains awesome, as Casey points out in the comments, it's no longer maintained. Also, it (and/or fuzzyfinder.vim) gets a bit slow and unstable when working with large projects (lots of directories or files), so I've been looking for an alternative.

Fortunately, there seems to be a very nice alternative in the form of Wincent Colaiuta's Command-T plugin. This has very similar (if not slightly better) behaviour to fuzzyfinder_textmate, but is noticeably faster; it also has nice features like being able to open the found file in a split or vertical split. Thanks (and upvotes!) to David Rivers for pointing to it.

Sam Stokes
Yes, fuzzyfinder is a very close fit to what I want.
Alexey Romanov
Jamis' fuzzyfinder_textmate completes vim. It should really become a core feature!
csexton
It looks like Jami has stop working on this project. Maybe the original author will pull in these features?http://weblog.jamisbuck.org/2009/1/28/the-future-of-fuzzyfinder-textmate
Casey
Sam, thanks for the props that you gave me (on my birthday!) :D
David Rivers
+2  A: 

The excellent Buffer Explorer, the be has gotten to be such strong muscle memory that I find myself wishing I could use it in other applications. I find it to be extremely fast when actively editing more than two files.

csexton
+3  A: 

I like "ctrl-w s" and "ctlr-w v" to split the window. Then I map the movement keys (h, j, k, l) with ctrl held down to move between the split windows:

" 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>

Having to move my hand over to the arrow keys is annoying.

Next, I set up ctlr-tab to switch between buffers in the current window (like a lot of other environments):

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

These have worked pretty well for me over the last several years although vim always has more secrets than you can know.

Dave Ray
Your comment "switch to alternate file" is misleading because Vim has an alternate file already, it's the previous file you were on, and you can switch the current (%) and alternate (#) files easily using ctrl-6.
graywh
Also, <C-w> with hjkl will switch windows--arrow keys not required.
graywh
+1  A: 

I've spent quite a while building my .vimrc to work with this HTML::Mason project I've been on for four years, so I have an odd mix of tabs and split windows. For your viewing enjoyment:

map ;o :Sex <CR>
map <C-J> <C-W>j
map <C-K> <C-W>k
map <C-l> <C-W>l
map <C-h> <C-W>h
map ;] :tabnext<CR>
map ;[ :tabprev<CR>
map <C-t> :tabe +"browse ."<CR>
map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>
Jack M.
A: 

I use tselectbuffer. It's really fast and unlike bufexplorer doesn't take space in your window. It also has a incremental search.I tried minibufexplorer and I found the navigation in the buffer a bit difficult.

Taurus Olson
+3  A: 

I have been using Wincent Colaiuta's Command-T vim plugin for a couple months now. Wincent wrote the parts of it that need to be fast in C, and I must say that it is! And, I think its file pattern matching logic is even better than Textmate's Command-T. Check out the screencast.

The Command-T plug-in for VIM provides an extremely fast, intuitive mechanism for opening files with a minimal number of keystrokes. It's named "Command-T" because it is inspired by the "Go to File" window bound to Command-T in TextMate.

Files are selected by typing characters that appear in their paths, and are ordered by an algorithm which knows that characters that appear in certain locations (for example, immediately after a path separator) should be given more weight.

Easier buffer switching contains many useful tips. I have adapted the following to my .vimrc, which does buffer-name auto-completion, maps the most useful buffer-switching commands to my <Leader> and left-side home row keys, and shows the current buffer number in the status line:

"" 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

I also use MiniBufExplorer, which provides a compact listing of each listed buffer in its own horizontal split up top.

David Rivers