File Manager tab in vim - vim

I'm very close to figuring this out, but can't seem to find the missing piece.
I have a pretty good vim set up for development. When doing MVC projects, I need multiple tabs open, and I've gotten pretty good at shifting between them and rearranging quickly.
I can even open a vertical tab with an interactive directory listing of my files.
What I really want and can't figure out:
To be able to have this vertical tab persistent, that is, in the "foreground" of all tabs, and allow me open a file into a new tab. (Basically, I want vim to have a sidepane that is a file manager and when i press enter on a selected file in the directory, it will open a new tab, but the "file manager/directory tab" will stay open, and in front.
To set the persistent "file manager/directory tab" to be a specific width - ie :vsplit 32(pixels?)
Does that make sense? Can anyone point me to the right part of the help section for this?
Thanks, Kevin

Are you using NERDTree? If not, it might be the answer to your prayers.
You can set the width of the NERDTree window by putting this in your .vimrc:
let g:NERDTreeWinSize=32

For the benefit of anyone passing by, you should take a look at project. It took me a bit to figure it out, but you basically get a file browser on the lefthand side. It's up to you to manage the file list though, so you can apply filters, link to source/api docs, and omit what's not important. Of course it will automatically fill in the list, if you like. Very neat. It's a help page you have to sit down and read, but I like it.
You should also look at snipMate and surround if you love efficiency. I've been using vim for ten years and this is all new to me! Life changing! Now I have to quite fiddling with the interface and get some work done.

Related

In vscode, how to put editor regions inside tabs, and not the other way around?

I've been trying Visual Studio Code for a few days, and it's the first editor that I used in years that makes me feel I could switch from my beloved vim.
Now, it's hard to get used to new habits when you have years of muscle memory, but I'm trying to keep an open mind. There's one thing that's bugging me, though, and I could not find a way to get around: it's the fact that editor regions and tabs are "swapped". Let me explain:
In vscode, you define editor regions by splitting your screen, then each region can contain as many tabs as you want.
My problem is, that does not fit my workflow. Here's what my workflow used to be with vim, where regions are inside a single set of tabs (I mainly work with Django):
In a first tab, I've split my editor in half and I'm editing my models.py and forms.py side by side.
In a second tab, I've split the editor in half, I'm editing my views.py on the left hand side, and the right hand side is again split horizontaly, allowing me to edit multiple templatetags files.
In a third tab, I'm editing my main template, and I don't split the editor since the file may contain very long lines.
In a fourth tab, I'm editing several html files and the editor is split multiple times.
Etc.
That way, I can very quickly go to edit my models, then my views, then the templates, and start over in quick iterations.
With vscode, where the tabs are inside the fixed regions, not so much.
So my question is, what solution could I use? Am I missing a big feature here? Are there any extension that would allow me to get my old workflow back?
I'm also open to suggestions about new workflows.
As #romainl pointed out: the workflow is different, it doesn't work that way with VS Code (and I know, I'm a vim user, too).
The best you can get that is vaguely close to what you're used to is to consider VS Code windows as you did with vim tabs.
To give you an idea using your example:
You open a VS Code window and open side by side models.py and forms.py
You hit Ctrl+Shift+N (or Command+Shift+N on a Mac) and open a new window. There you open your views.py on the left and split the right one horizontally for the templates.
You open a new window again and repeat.
This way you can switch between different layouts with Alt+Tab
(or Command+Tab).
You could speed this up a bit by saving different workspace files for different files that you want open, because I think (not 100% sure) that saving the workspace also saves the layout.
There's a couple of annoying things with this approach though:
If you have multiple windows open in general (say, a browser, slack app and so on), they'll also appear in the list when you try to switch.
I'm not sure if the open folder will be remembered when opening a new window, but you can work around that by saving the workspace and opening it.
It's annoying but at least there's already a feature request about this ( https://github.com/Microsoft/vscode/issues/41486 )

Dreamweaver source code view, is it possible to add "tags"?

I do'nt know if this is possible or if its called tags
im using dreamweaver cs4, in source mode view it displays line numbers to the left, I wish I could add some kind of "tag" to a certain line, and then have some sort of menu where it scrolls me to the tag.
Does this makes any sense?
It's because I have a huge source file that I need to navigate a lot in different places while coding and this "feature" would make my life a LOT easier.
Any help is appreciated.
Best Regards
It sounds like you're looking is what I've heard called a number of times "bookmarking". Unfortunately, Dreamweaver does not have this functionality built in. Not quite the same thing, but if you remember the line number you can jump to the line using a keyboard shortcut: CTRL+G on Windows, I think Cmd+, on Mac this pop up a little dialog you can enter the line number and hit enter to jump to that line.

more intelligent global bookmarks in vim

Here's how global bookmarks work.
Let's say I have two tabs in my vim session. One showing foo.txt, one showing bar.txt. I go to line 10 in foo.txt and hit mA
Then I go to the other tab, showing bar.txt. I hit `A, and the workspace on that tab opens foo.txt, putting my cursor on line 10.
So now I have two tabs, both showing foo.txt. This is less than ideal.
How I want it to work is, if one of my active workspaces on any tab is showing the file I the bookmark system is trying to navigate too, move my focus to that tab. If the file isn't open, sure - open it in my active workspace.
Is there any way to make this possible?
Thanks!
This is not a problem with Vim's global bookmarks. It's a problem with Vim's tabs.
In most text editors, tabs serve as a list of currently open files, but in Vim, the buffer list serves this purpose. If you think of a tab in Vim as being like a saved layout for split windows, then you'll meet less friction. This answer sums it up nicely, and I made a screencast to try and explain how tabs can be used.
Here is a script that answers your initial question. But as far as I'm concerned, nelstrom is right: tabs are not meant to contains the others files, but other layouts.
How do I jump to markers within different tabs in vim?

Text editor in Windows with real time update?

What's a good text editor in Windows that automatically updates the view whenever the opened file has been modified by another process? I need this to watch the output of my program.
If you like using a mouse, Notepad++ is great
If you're happier with the keyboard, for me, it has to be Emacs. Here's the download for Windows.
To use the feature in Emacs, add the following to your .emacs:
(global-auto-revert-mode t)
There are lots of people at work who like Textpad but I don't understand why, it doesn't even have column editing.
Notepad++ has this feature.
If you want to reload automatically, go to Settings / Preferences, then the MISC tab and uncheck Update silently under File Status Auto-detection.
What I use is snaketail. It can update in real time several files, even without the focus.
I would recommend Notepad2. It refresh the content automatically without focus switching. You just need to go to menu 'Settings' and set 'File Change Notification...' option, and then save your settings. But keep in mind, refresh has a delay about 2-3 seconds.
Editplus is great.
This doesn't really answer your question, but it sounds like what you really want is some kind of console view, not a file. Would it be possible to pipe your program's output into an output stream that's visible in a console instead? Those are designed to show new lines as they arrive, automatically scroll, etc.
See the Viewer (F3 option) in FAR file manager, when End button is pressed, it updates and scrolls text automatically
Use Tail For Windows.
Tail doesn't need to have focus on.
I've got it from superuser.com answer.

VIM VTreeExplorer plugin (IDE style browsing for VIM)

I've looked at a number of the IDE style file explorer / management plugins for VIM. The most popular one seems to be Project, but I've never got on well with it. Specifically, having to always create a .project file for the files you want to browse, and that changes to that file hierarchy outside of VIM are not picked up.
I stumbled across the VTreeExplorer plugin and I really like the way it works. I'm trying to work out how I can make it work in a more IDE style way, for instance, to always open vertically down the full length of my window, and once I've opened a file from it, it automatically hides the VTreeExplorer buffer again? Also, ideally it wouldn't show up when I use :bn or a buffer explorer to tab through each file buffer.
Any recommendations would be appreciated. Thanks!
What about NERDTree? It is really good, one of the best file tree plugin for vim available.

Resources