
Vim as Language - ben336
http://benmccormick.org/2014/07/02/learning-vim-in-2014-vim-as-language/
======
scriptdevil
I use Emacs for almost all my work, but I find Vi(m)'s editing capability is
superior. I use evil-mode and it does extremely well in emulating Vim. Even
text-objects and ex-commands are available. ace-jump-mode and undo-tree are
two other extensions that significantly improve my editing experience.

I find dired, tramp, org-mode, auctex, magit and good async support
indispensible and the Vim equivalents are either less powerful or non-
existent.

------
woogle
This is what I was looking for a long time! Thank you. As vim is not learnable
in a week-end. Understanding the basics progressively (like you do with a
language) seems a nice approach.

~~~
riquito
This StackOverflow answer, in the same spirit of the article, has opened eyes
to many people.

"Your problem with Vim is that you don't grok vi."

[http://stackoverflow.com/questions/1218390/what-is-your-
most...](http://stackoverflow.com/questions/1218390/what-is-your-most-
productive-shortcut-with-vim/1220118#1220118)

~~~
ben336
Yep, that post is one of the things that pointed me down the road to the
mindset in this article, and I mentioned it at the bottom. I still don't use
everything in that post though. The depth of Vi by itself is crazy.

------
mikevp
I've been using vi for (egad!) over 30 years, and vim for about 8 years, and I
still learn something new about it every now and then. In this case, text
objects. I'd never run across that feature before.

An example of vi/vim's power I've used for ages is formatting a paragraph of
text: {!}fmt<cr>

With text objects, in the middle of a paragraph somewhere,!pfmt<cr> \-- Much
easier to type!

(yes, I know vim has the gq command, but I prefer piping text to the *nix fmt
command.)

------
gnuvince
I read a similar article a couple months ago:
[http://ismail.badawi.io/blog/2014/04/23/the-compositional-
na...](http://ismail.badawi.io/blog/2014/04/23/the-compositional-nature-of-
vim/)

------
virtualwhys
Emacs, "a great operating system, lacking only a decent editor"[1]

Vim, "a great editor, utterly lacking a decent window manager"

The latter is just outright painful -- tabs, windows, and buffers, so much
promise, yet...such fail O_o

[1]
[http://en.wikipedia.org/wiki/Editor_war](http://en.wikipedia.org/wiki/Editor_war)

~~~
MrException
I totally disagree with you. I find Vim's implementation of
buffers/windows/tabs to be far more powerful than any other editor I've used.
The ability to quickly switch between files, move a file between different
windows, create and destroy splits, etc. is just so nice. Every other editor
seems clunky and inefficient, forcing you to use the mouse for all of those
operations.

~~~
virtualwhys
> The ability to quickly switch between files

by context switching to the grey matter to inquire what the _name_ of the file
is and then tab complete your way to said file vs. where you visually "know"
the file to be in standard panels (splits) with tabs (buffers) based editors.

> move a file between different windows

please don't lie to the uninformed -- one can only rotate windows within the
_same row or column_ , not across columns and rows -- it's rather limited.

> create and destroy splits, etc. is just so nice

I'd take drag and drop splits any day over Vim's adhoc implementation. If you
create a split it's best to destroy it as it will _never_ behave predictably;
i.e. your split layout may completely collapse when closing a buffer.

and then cloned splits, man do I love to see the exact same file displayed
across splits, nothing says maximize screen real estate usage like cloned
content. Sure, can close the cloned split, but why waste one's time on an
event that isn't even possible in GUI editors? (i.e. attempting to open an
already open file brings you to its location, not pointlessly duplicates it).

> Every other editor seems clunky and inefficient

Feel the same way about Vim's window management, try Sublime, heck even try
Eclipse, you get multiple visible tabs (buffers) per panel (split), and as an
added bonus, the labels are set _above_ the code (where top-down, left-right
humans expect it), not below. You can also quickly hotkey rotate through _all_
opened files, bing, bing, bang vs. either reading through a buffer list that
has _nothing_ to do with its location in visual space, or praying that ctrl-O
doesn't start opening files from a previous session, or just saying ctrl-6
(toggling between 2 measly files) is the answer.

I think the deal with Vim is that you have to keep a lot in mind, literally,
as in the entire set of file names you're working with, vs. visual editors
where code location is representation (i.e. its "name").

------
libredreams
I plan to remain a member of The Church of Emacs until I die.

------
VLM
"One more step Please complete the security check to access benmccormick.org
... Why do I have to complete a CAPTCHA?"

What language is that? Oh, I see, thats "customers please go away" written in
techie-language.

Well, I didn't learn a lot about Vim from that, but I know not to go back. Too
bad, I like Vim.

~~~
ben336
Sorry, looks like you've done something to make cloudflare flag you:
[https://support.cloudflare.com/hc/en-
us/articles/200171816-W...](https://support.cloudflare.com/hc/en-
us/articles/200171816-Why-do-I-see-an-Access-Restricted-CloudFlare-Challenge-
Page-from-anti-virus-cloudflare-com-)

I use them to manage caching and anti-DDOS for my site. Most people don't see
that message, not sure what would have set it off for you. It's not a site
specific feature, just a byproduct of using cloudflare.

~~~
nilved
Cloudflare indiscriminately flags people for using privacy-enhancing software.
Please do not use Cloudflare or privacy-conscious users will be unable to use
your site.

~~~
infogulch
Wait, is this intentional? What does the software do that throws up flags to
Cloudflare?

~~~
nilved
As far as I understand, Cloudflare intentionally blocks those people because
they assume anonymous people are hackers.

