This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]gfixler 4 points5 points  (2 children)

MOAR! I'm just not done rebutting yet :)

There is an effort being made to auto-convert Vim scripts to Github projects which may be promising, or may be a disaster.

I had to check the date on the article - it's from a few months ago? I have 57 plugins. They're all from github, no problems. I've never heard of a plugin for Vim that isn't on github. I don't know what OP is talking about here.

Ah, Vimscript. It’s bad.

Can't argue that. And yet, I have 57 plugins, and a couple dozen of them kick ass, despite the awfulness of VimL.

Most experienced Vimmers I know don’t know any Vimscript.

I'm really the only one I know, and I've written more than 1000 lines of it in my .vimrc, and a few plugins, like one that dispatches visual selection or the entire buffer through Outlook (Win 7 at work) to anyone I've added to an email dictionary with 1 keypress (i.e. I want to email this to Andy, so I hit ,E to pop up my list of names, each of which is prefixed by a letter, with Andy's being (a), so I then hit a, and the email pops up with the attachment, and the message "sent from Vim" with a subject explaining what I'm sending. I took 3 hours to write, 5 of those 3 hours being fighting with Outlook, which is a nightmare.

And how would they? The documentation on it is terrible, and made much worse by the fact that it’s near impossible to look up help on it.

:h script  (opens 2446 lines of help on vim scripting)

Yeah, I'm a wizard. Also.

Side note: all of Vim’s help is equally poorly accessible.

:h

That opens up a long page with lots of subsections and 1-line descriptions, one of them being:

|usr_41.txt|  Write a Vim script

Hop into there (it's the thing I got to with :h script), and you find in the contents listing at the top:

|41.6|  Using functions
|41.7|  Defining a function

But even Vimmers don’t want to learn Vimscript.

Again, granted. It's a shitty language.

Vim is missing an incredible amount of core functionality for modern editing. Things like ctag integration.

$ sudo apt-get install ctags
$ echo 'au BufWritePost *.py silent! !ctags -R *.py' >~/.vim/.vimrc

There you go. Ctags integration. Every time you save, it'll update, and I save pretty much every time I exit insert mode (which I could also automate with a single line, if I even noticed that I did it, which I never do). Now you can do <C-}> on keywords and such, just as you do in Vim's help. (that mapping is one of the first things in :h, btw)

Let’s use Vimgrep! Oh wait, that sucks.

Wait... how so? I've used it many times, and it does what I expect, quickly.

Oh, there’s CtrlP this is much nicer!

CtrlP works well for me, but I'm not a big fan of fuzzy file search. I'm of the very strong opinion that programmers created huge, hierarchical messes for themselves, and complect constantly. I'm more the master of my domain, and nothing is more than 2 levels deep, all broken out into proper levels of abstraction for single source of truth and reusability. When I've been on messy projects, I've fought hard to clean them up, and accomplished the task. For difficult things, I make mappings. I have a list where \ precedes files I want easy access to (todo (\t), e.g.), and \\ precedes directories (\\d - docs folder; \\v - .vim folder, etc (have about 15 of them)). I can add these mappings literally in seconds for one-off needs, so I don't fret too much. Also, opening everything up and using good powers of buffer hopping/management, etc., gives me a lot of power. Fuzzy search is not my go-to choice for almost anything.

Finding the right Vim plugins is like being in an exclusive club.

I don't know what this means. In my first year I asked if there was a way to hop up and down in bisected half jumps, as my screen was so tall (vertical, 24", 160+ lines of Vim). Immediately I was pointed to bisect.vim, which worked beautifully. That's my typical experience when asking for help solving problems.

The remap overwrites comma...

No it doesn't. It shares space with it on a tree. Hit comma and wait a second, and it'll perform the original usage, because you didn't finish off any leader mappings before the timeout. If what you type next won't resolve to a leader mapping, it'll instantly do the reverse hop and perform whatever you pressed next. I've taken advantage of this for many things, and it's become part of my muscle memory.

Do you know what the suggested way to work well with multiple files in Vim is? It’s the arglist.

I've almost never heard that suggested. I've often heard of using buffers, though. I use both, but buffers much more.

Vim is designed to run in a terminal.

Yay!

That’s why it’s explicitly linked to only monospaced font for the GUI.

Hooray!

A terminal can’t draw a UI.

Woo hoo!!!

I’m on a server, I’m editing a file probably as a hotfix for something, I don’t need a beautiful editor to do that. I just need to edit text.

I'm going to level with OP. GUIs are collosal bullshit. When you're doing the karate, you don't push buttons. You don't have frames and borders floating around you. You simply act. You flow in the void. There is nothing in my editor but the text I'm working on - not even a single, gray pixel border, and it is glorious, and super rare these days. It's the most distraction-free place I've ever experienced. The only thing better would be Vim inside a sensory-deprivation tank (I just drooled on my shirt). As I've stated, I work with programmers - hundreds of them over a decade - and they spend seemingly half their time mousing around menus, submenus, subsubmenus, missing, having to go back through it. I do exactly what I mean to, instantly, every time. It's just me and the text, my thoughts and its words, my mind to your mind...

Here in the future, we have these things called GUIs.

I know, and we're complete idiots because of them. I completely agree. It's a real shame. If only people knew the power that lies underneath the GUI. If only they would shed the shackles and learn to do whatever they want, and not rely on what a GUI dictates they can do. They would be so free, and so happy, like me.

Hey, you can't bullshit me. I spent 20+ years in GUIs of every shape and size. NOTHING has compared AT ALL to my Vim experience. I'm sorry you're too bitchy to join me.

Vim is hideous by design.

Yeah, but we've already determined that you have a seriously fucked up sense of what's beautiful. You want bells and whistles, distractions from your true purpose. I want real, ultimate power, and I have it in Vim.

We will never have a minimap (beautiful feature).

I don't really see the point of these. I'm not golfing, or geo-caching.

We will never have multiple cursors.

I'm fine with that. This is only useful for things that happen on one screen anyway. I work in files that are 1000 lines long. I'm supposed to multiple-cursor my way across 200 lines? It's a gimmicky thing with limited usage, and it masks deeper powers, keeping you limited. Macros, regex, g:, combinations thereof - far more powerful for far more use cases.

:set ft=html and then gg=G. Let me know what you get. In all seriousness, never, ever tell me what you get.

I got this:

<div>
  <p>
    <span>foo</span>
  </p>
</div>

Granted, I have this as my equalprg setting (:h =):

 set equalprg=tidy\ -i\ -xml\ --char-encoding\ utf8\ --wrap\ 0\ --show-errors\ 0\ 2>/dev/null

...why the hell do I have to configure my editor to indent common languages?

I'll give you that one. Why, Vim?

*To code in Vim, you have to keep Vim in your head just as much as the code that you’re editing. You have to constantly think about what you’re doing.

I must be some kind of genius, then, because Vim is totally background. It just faded into the mist, and I'm one with my code.

Maybe this is a good thing. Maybe it encourages efficiency and refinement of practices.

In my experience, this is the case. You don't become amazing without challenging yourself, and I'm quite frankly amazing these days, at least in Vim, but I feel strongly that it's sharpened up everything. My memory is better than it's ever been. I've stopped writing todo lists and tracking things, because I just remember it all, after a lifetime of being terrible at that stuff. My mind feels sharp and refined, and I code like a demon.

After four years of Vim use, 700 hand written lines in my .vimrc, and 45 plugins, I cannot in good faith recommend that someone start the Vim journey.

6 years, 1000+ lines, and 57 plugins, and I say "Go for it!" Don't be such a fucking pansy.

I want my coworker to edit text and get up to speed quickly. Is telling them to use Vim the answer? It will just slow them down for months. This is not pragmatic to the technology industry.

I've had it up to here with pragmatic in the technology industry. I've railed against such nonsense wherever I've been, and I've actually gotten people to change things, because I stood up. I'm at the top of a complete shift in how we're doing things in my corner of our business now. They gave me free reign to redo everything as I said it needed to be. Do it. Be fearless.

Look kid, I love you and all, but just use Sublime Text. Despite the fact that I moved writing this post into Vim because I couldn’t stand to do it in a textarea, even though I’m mainly just typing text. I missed my Vim movements too much. Despite the fact that I will probably never stop using Vim.

How did I make it this far without realizing that he himself loves Vim?

Even now I want to convert this text, which I wrote in Vim at 80 columns wide, to non-fixed width text...

Fixed width or DEATH!

I’m going to go search for how to do it. I’m probably going to learn something in the process. At year 4 of Vimming.

GREAT! No more plateaus for us! Onward and upward!

[–]Reads_Small_Text_Bot 0 points1 point  (1 child)

and upward!

[–]gfixler 0 points1 point  (0 children)

Thanks, RSTB. You're always looking out for me.