I've been using vscode in java because of the cumbersome file navigation in bash. Is there easy full tree navigation in vim? It may also be because the terminal view is much smaller than vscode's smaller navigation font so I can see much less of the file tree in a terminal program such as ranger. I also never really mastered windows although I did master vim buffers. I do use tmux.
In my workflow I've integrated both ranger file manager and fzf as file pickers: fzf when I'm inside a git repo ('git ls-files | fzf' - but doesn't have to be this way), and ranger for elsewhere. Both ranger and fzf are amenable to being used for this purpose, so all it takes is a couple of lines of hand-rolled vimscript - no need to wait for a third party integration plugin to drop.
What Is Vim?
151–160 of 179 posts
Re: What Is Vim?
#152Earlier quoted context omitted.
The reason I chose Vim over Emacs is simply because of the fact that it's available literally EVERYWHERE. I've honestly never seen a UNIX system which doesn't have Vi or Vim installed by default. Emacs is more hit and miss.
What does Vim offer over Nano? After using both I settled on Nano years ago and still don't see how my workflow would improve with Vim.
To me nano is just a basic text editor (open, edit, save). Vim is a way to 'jack in' and be able to manipulate text with my mind. I don't 'think' anout how to accomplish something, I just think about what I want done and my hands just do it.
This comes from the modal nature of the editor and text objects, mostly, but there are so many other little things (like macros, ex commands, filters) that you pick up over time that all add up to a great text manipulation toolkit.
Re: What Is Vim?
#153Vim is not only an editing language, but a fast-starting editor with a small-ish native executable, and small run-time memory use. This facet is typically not ported into other editors that have a Vim mode. Vim runs natively inside virtual machines and containers, on resource-constrained embedded systems, and on remotely accessed machines. Another aspect is that Vim can be operated entirely using a terminal emulator,…
Zed feels quite as fast as vim though, and has remote ssh for remote hosts And you don't have to suffer latency when working on machines with 300ms latency I still use vim when I need to quickly edit some file on some remote host once, but for see no reason to use it over zed in other cases
Habitual adopters tend to jump from editor to editor, for myiad reasons. Entrenched users tend to dig in and try to learn their editor when they hit snags.
Vim amd Neovim are great for the entrenched type of user. There is so much depth to the editor, but it is not immediately obvious. Habitual adopters tend to discard Vim when a new editor gets a little traction.
Re: What Is Vim?
#154Earlier quoted context omitted.
The "buffer" model. Half the speed of using vim in a project for me is the ability to manipulate the layout and having different "windows" on the same file. One of my most common workflow is to split the current window and navigate to a different part of the same file for reference purpose (can quickly switch to another file with fuzzy finding too). And quick integration with external tooling. Creating an extension f…
This works the same in vscode as it does in vim as far as I am aware. e.g. `:vs` to split the window and moving between windows uses the same shortcuts as it does in vim.
In Vim I can have test and implementation side-by-side in tab0, and then two splits of the one file in tab1, a header file, impl and test in tab2, etc.
With another editor, I have to switch tabs in split 1, then switch tabs in split 2, rearranging or adding more splits as needed when moving between different groups of files.
Re: What Is Vim?
#155Earlier quoted context omitted.
> And they’re always frustratingly incomplete and/or buggy. Have you tried evil-mode (Emacs VI Layer - E.V.I.L.), an implementation of the vim-bindings in Emacs? I've heard it works very well. Or, at least, the Emacs subreddit seems to get a pretty steady flow of people who come from vim and get into Doom Emacs, which has evil-mode (and lots of other stuff) pre-configured and ready to go. They seem very happy, from r…
evil on Emacs has been great for me. I’ve been using vim for 20 years (vim, visual studio, vim again, now Emacs) and Emacs/evil for at least 5 years or so. I’ve heard someone say that Emacs with Evil is a better vim than vim. I’m inclined to agree.
"And they - vim implementations - are always frustratingly incomplete and/or buggy...
Except perhaps Emacs' evil-mode, with some users going so far as to claim that it's an even better implementation of vim-bindings than vim!"
:=D
P.S., off the back of your comment, I downloaded and started playing with Doom Emacs last night, as this thread reminded me of how great some people claim Doom and the vim bindings are. My Emacs has been stable for a while, with a basic enough configuration (only a thousand lines hah), so I'm in the mood for playing with some alternatives.
Being able to test very different configs now with "--init-directory" is really a nifty quality of life improvement which I had yet to fully appreciate!
Re: What Is Vim?
#156Earlier quoted context omitted.
Here is some material to challenge that idea: https://danluu.com/productivity-velocity/ Is also funny to phrase it in terms of bottlenecks because bottleneck optimization is an 80/20 approach to performance. People who are serious about perf don’t practice it. 80/20 is good for once a month tasks. When it comes to the primary work I do everyday I don’t want to leave 20% on the table.
I spend maybe 90-95% of my time thinking, looking up existing code, reading documentation, solutions, and code exemplars online, and trying to engineer a solution either in my head or on paper. I spend at most 10% actually typing. It's just not something that I've really ever felt has slowed me down.
Re: What Is Vim?
#157Earlier quoted context omitted.
Would you say that software, in general, is improving in the year of our lord 2024? We may have taken a wrong turn somewhere. Going back may be the answer.
Ok, if Vim is supposed to be an improvement, may god have mercy on us all.
Stuff just works in vim. So uh yeah, definitely an improvement. And re: may god have mercy on us all... Yeah it's not looking good. I'd really like it if we could get our shit together, but ever since we put the marketing people in charge the engineering has been looking increasingly flimsy.
Re: What Is Vim?
#158"Vell Vim's just zis guy, you know"
Re: What Is Vim?
#159Helix uses a selection-first action model: you select the word/paragraph/whatever you want to perform an action on, then you change/delete/whatever on that selection. I think this is more intuitive than the "verb object" model Vim uses: if you get your selection wrong in Vim, you then need to undo the action and try again. In Helix, I can see what I am about to manipulate before I make the action. I think at this poi…
I've set up myself once to learn Helix. First there was Kakoune that sounded exciting with its new modal model, but what had me wanting to really give Helix a go, beyond being exciting, was that it advertised itself "batteries included". It promised to deliver all the cool things programmers' editors do recently. But then I stopped abruptly when realized Helix misses a key feature of Vim: swap files. I can just start…
Re: What Is Vim?
#160Because Vi[m] is just one example of a keyboard-driven UI that has been adopted in other places, whereas in fact there's a more common one that's used by more people on more computers every day... but it's not widely known that it's a thing and it has a name.
It's IBM CUA.
https://en.wikipedia.org/wiki/IBM_Common_User_Access
It is what defines the keyboard interface of MS Windows, and tens of millions of skilled Windows users use parts of CUA every day, from Alt+F4 to close a window to Ctrl+S to save to Ctrl+F to find to F2 to edit.
For blind and visually impaired users it is the sole or primary UI for Windows.
It is also largely supported in multiple Linux and FOSS desktops, such as Xfce, Unity, LXDE, LXQt, MATE, and others.
Sadly, KDE does not implement much of it, and modern GNOME almost none of it.
But it's there and most Gtk desktop apps support some of it -- although Gtk4 is driving that out now.
CUA provides a whole set of consistent keyboard controls for DOS, Windows 3.x, 9x, NT, 2000-11, OS/2, and almost all the Linux desktops until GNOME 3 came along. It has editing keys but also far more.
A skilled person can drive all of a Windows computer, and all apps, as quickly as a skilled Vi[m] user can -- well, can edit text and nothing else.