Hacker News new | ask | show | jobs
by PuffinBlue 3139 days ago
I really want to use/like Vim. Sounds like I'm going to say it not great, but actually this might be a call for help...

I have used Vim for a couple years I think, maybe more now and learned enough to write my own vimrc file from scratch, understanding all the parts I'm adding, what they do and why and sync it via version control etc etc.

I use it on every server I administer/whenever I use the terminal.

I've added many of the plugins mentioned here, they're great.

But I just can't get around the visual layout and moving throughout a project/codebase. Maybe it's my brain, but I highly value visual representation of the open files I'm working on.

Something like Sublime Text with the open tabs visible is just key for me. I can replicate the sidebar with NERDTree which is OK (still a bit annoying navigating it but whatever) but how can I do the same regarding tabs. Alright buffers, you know what I mean. I want to see a visual representation of the files I've got open, not through CtrlP or a key combo, but on screen like in Sublime Text.

Can it be done?

6 comments

There are many ways, depending on what you specifically need.

For the most basic command that will probably work immediately, just start up vim with multiple files like so:

    vim -p file1 file2
This will open file1 and file2 in separate vim tabs.

But vim tabs may not behave the way you would expect them to coming from other programs. You might prefer to just list all the buffers within one window instead. There are many plugins dealing with buffer management on the vim wiki and elsewhere. Here are two I found with a Google search that look at a glance like they might work [0], [1] (haven't tried, just looked at the page briefly)

[0]: https://github.com/ap/vim-buftabline

[1]: https://github.com/bling/vim-bufferline

I've steered away from using actual tabs as Vim uses them becauses I wanted to follow the buffer/window/tab mentality Vim follows. It's a logical setup.

I will take a look at these. I think that because I've got lightline installed I'll have to either integrate one of these or just go for one on it's own or something.

Generally I use screen (tmux can also work), and make each screen be titled to the file it has vim opened to. It's not a tree, but representing my files as a tree seems counter-productive to me -- I don't care where my files are, just what they are.
You can show open buffers in your status line. I use the 'buftab' plugin for it, but I'm sure there are others as well.
Never heard of it, I'll take a look, thanks.
I used to use bufftabline, https://github.com/ap/vim-buftabline. I think something like it is what you're looking for? If it's not quite right for you the readme in the github repo mentions some other plugins that have similar capabilities.

I really liked bufftabline when I used it. It was lightweight and did exactly what I wanted it to do, give me an immediate visual representation of the buffers I had open in a familiar tab-like format.

Eventually I moved towards an even lighter weight setup. Take at look at this video is you're interested in anything like that. https://www.youtube.com/watch?v=XA2WjJbmmoM

Actually, buftabline looks perfect. I'm not sure how I have overlooked this.

I really only need this as a crutch to get over the way I previously used graphical text editors. I know some people say go cold turkey and I have for a loooooong time but I need this representation.

I'm not sure it's even a 'bad' thing to do, seems quite handy to see what buffers are open without having to write a command. Plus I have a huge amount of screen real estate so I think this might work well.

Thanks.

Pl

I've done some research, as I have the same interest. I know that `neovim` allows clicks on non-tab elements -- I think something akin to `vim-wintabs` and `neovim` might get what you want.
If you like tabs, you can just use tabs inside vim instead of buffers
It kind of feels like sacrilege though :-)
I don't see why? You can of course create as many horizontal/vertical splits inside each tab as you like.
Because buffers are files, and what I really want is a list of files indicated, so it seems overkill to set up completely seperate tabs.