this post was submitted on 17 Jul 2024
45 points (97.9% liked)
Ask Experienced Devs
1235 readers
1 users here now
Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I've been using vim as my daily driver for development for the last 8 years.
There are a million things I could talk about regarding vim's editing language, consistent interface, scriptability, performance (seriously, I've opened 1GB+ files and vim barely breaks a sweat), etc., but one thing I'll highlight that most people don't talk about is vim's ability to interface with other tools. It's what takes vim from a great editor into a full-fledged development environment. You can:
:help read !
):help write !
):help !
):help quickfix
,:help make
):help <C-R>=
, specifically when used with the:help system()
function)And much more. I use all of these every day: the output of git commands give me filepaths I can jump to with
gf
; a range in vim selected with thev
command gives me line numbers to pass togit log -L
to see the history of a section of code; the current filepath of the vim buffer is pass to many different shell commands to do processing with that file; the symbol under the cursor is passed as an argument to theopen
command on macos to lookup external (company-specific) documentation in a Web browser. And many, many other things. Unix is my IDE, and vim is at the heart of it.And here I am proud that I can open a file, save it, make edits, jump to the beginning/end, and quit it. ๐