
Vim GIFs - shawndumas
http://vimgifs.com/
======
kartD
Great idea, vim is intuitive ( -ish?) once you understand what each character
means ( y for yank being a simple example ). If anyone is looking to learn vim
or any IDE really, check this place out.
[https://www.shortcutfoo.com/app/dojos/vim](https://www.shortcutfoo.com/app/dojos/vim)

~~~
wodenokoto
It seems to me there is a lot of VIM vocabulary that is very different from
what is common on the desktop today. I don't know what yank means. I don't
think I have a desktop app that has a yank function.

The current front page example is using 'z' to "redraw the cursor". I know
what all those words means, but put together they are complete jibberish.
Looking at the gif, it appears that redraw is VIM-speak for scrolling.

Also "z doesn't do anything on it's own. But it pairs with a number of other
things. It is used for redrawing the screen, saving and quitting, as well as
manipulating folds." doesn't sound intuitive _at all_.

~~~
jzymbaluk
It's intuitive once you already know what it means and have sunk dozens of
hours into memorizing what the shortcuts do /s

~~~
cpdean
Actually it takes more like 2 months for the Stockholm Syndrome of vim to sink
in and then you don't want to use anything else ever again.

~~~
Spivak
And that's not a bad thing. I don't think it's right to call Vim intuitive
unless you're used to reading a book to understand 35% of the features of an
editor.

But Vim isn't about being intuitive, it's about being efficient. Once it
'clicks' you will be able to express incredibly complex text manipulations in
only a few keystrokes. And with configuration you'll build the most powerful
but comfortable environment that you'll miss anywhere else.

~~~
TeMPOraL
In other words, Vim is a professional tool, not a toy for causal user. It
offsets steeper learning curve for much more powerful and efficient way of
editing text. It's a _feature_.

~~~
Asooka
That said, it would benefit A LOT from having a more discoverable interface.
See what kakoune is doing in that space:
[http://kakoune.org/](http://kakoune.org/)

~~~
moosingin3space
When it comes to discoverability, I really like what Spacemacs is doing with
its continuous suggestions UI.

------
sdegutis
Speaking of vim, just a reminder that @antirez made a terminal based text
editor in pure C with no dependencies, not even ncurses, in under 1000 lines
of code, complete with search feature, and customizable syntax highlighting
for variable number of languages.

[https://github.com/antirez/kilo](https://github.com/antirez/kilo)

Lots of people have forked it and are actively making it their very own
editor. Sure, none of them may ever take off and become a new emacs or vim
competitor. Or maybe they will. Let's not discount innovation.

Plus it's amazing to me that to make a full fledged terminal editor, almost
all you really need is the ability to read from stdin and write to stdout.
Only a tiny little bit of glue C code is needed (for handling signals like
SIGWINCH, or for setting or unsetting raw mode in the terminal), but almost
the entire rest of it can be written in, say, Lua.

~~~
kartD
+1, to complete the editor love, people should also give the
[https://github.com/google/xi-editor](https://github.com/google/xi-editor) a
look.

"The xi editor project is an attempt to build a high quality text editor,
using modern software engineering techniques. It is initially built for Mac OS
X, using Cocoa for the user interface, but other targets are planned."

------
i336_
There's a truckload of feedback already so I'll keep it short.

Two things:

1\. A "TV mode" that cycles between examples with a pause in between so I can
sit going "oooh, okay!" for a few minutes

2\. A random mode, with a link that's accessible without scrolling the page
down

Bonus: Maybe using cookies/localStorage, remember what's already been seen,
and avoid showing it again too quickly.

------
ue_
The performance could be increased (i.e less choppy) and filesizes could be
decreased (i.e taking up less transfer of data for the same quality) by
filming webm or similar rather than gif.

The only disadvantage visible is Internet Explorer users who don't have the
plugin installed, in which case you could provide a gif fallback.

~~~
cridenour
But then they would need a new domain.

~~~
iBzOtaku
Not really. gfycat does both gifs and webm.

------
vegabook
This is actually very good! My initial reaction was to roll my eyes at another
Vim tutorial, but this suits my (low) attention span by giving me exactly what
each letter does in a spoonfeed (read animated) way. Brilliant taxonomy (a-z)
and brilliant bite-size aborption medium that doesn't require me to trawl
through a tutorial. Bookmarked.

------
captn3m0
This is a very creative (and definitely not bandwidth-happy) way of teaching
vim. Bookmarked.

------
hosh
This is a great idea!

At least until I started to seriously use it to level up my vi skills. Some of
the links (say, for `a` or `g`) goes to the wrong places -- to the entry for
`b`. When I stepped back and looked at how to navigate it, I realized the
structure is disordered so I have no idea how to get to the info I'd like to
see.

~~~
mrmrs
Well I started designing the site a few hours ago so - it would make sense it
has bugs and is out of sorts at the moment. Better information architecture is
coming down the pipe for sure.

~~~
hosh
Awesome, looking forward to it.

------
foota
One of my coworkers once shared the use of set relativenumber, which causes
line numbers to be relative to your current position in the file. Great for
movements.

------
MrQuincle
+1 Minor point. Somehow I first checked f, it gives me the description for b.

~~~
chestervonwinch
I think "b" might be a default? "a" also gives "b":

[http://vimgifs.com/07-18-2016/a/](http://vimgifs.com/07-18-2016/a/)

------
atsaloli
Very nice. I've added VimGIFs.com to my list of resources for learning Vim
([http://www.verticalsysadmin.com/vi.htm](http://www.verticalsysadmin.com/vi.htm))

------
zuck9
I've never understood, what does Vim or Emacs have to offer that people use it
over Atom or Sublime Text?

I think I can edit and navigate through text as fast as Vim users, using the
native OS text editing hotkeys.

~~~
skylerberg
> I think I can edit and navigate through text as fast as Vim users, using the
> native OS text editing hotkeys.

This is where I think you are wrong. An experienced vim user has so many
faster ways to edit text than someone limited to what the OS provides. Here
are some examples:

yt( - Copy characters up to the nearest (

ci{ - Replace text enclosed by curly braces

:g/\\(['"]\\).*\1/d - Use regex to delete every line containing a string
literal

A vim master has thousands of permutations of commands at their disposal the
specify exactly how they want to manipulate text in 5 or less keystrokes. But
navigation is just one great feature. Vim users can travel backwards in time
(:earlier 10m), can have multiple clipboards with different content at the
same time, easily record macros on the fly.

~~~
aninhumer
>faster ways to edit text than someone limited to what the OS provides

But other editors aren't limited to what the OS provides, they build on those
basics to provide most of the same features, but in a way that's intuitive to
modern users.

For example in Sublime:

>ci{ - Replace text enclosed by curly braces

Ctrl-Shift-M selects text inside brackets. Subsequent presses work outwards
through layers of brackets.

>:g/\\(['"]\\).* \1/d - Use regex to delete every line containing a string
literal

Ctrl-F Alt-R (['"]).* \1 Alt-Enter Ctrl-L Delete

>yt( - Copy characters up to the nearest (

Not available out of the box, but there are plugins for it. Although, in my
experience of using vim, the mental effort of working out what character I
needed for t/f tended to be far more disruptive than just using arrow
keys/mouse.

Honestly that was my experience of vim in general. Whenever I had to do
anything slightly non-trivial, it took a lot of mental effort to work out the
exact command I needed. Whereas Sublime's multiple selections are more
intuitive and flexible in unusual situations.

To use your regex example above, depending on the context, I'd probably just
use Ctrl-D to step through instances of " checking whether each one is a
string (which it probably is), skipping any that aren't, and then Ctrl-L
Delete. (And repeat for ') If it's a short file, this is probably about as
fast, it flows from muscle memory, and it means I'm actually checking through
the changes I'm about to make. (And if it was a massive file, I'd use the
regex. My point is just that Sublime offers a more ad-hoc way to do bulk edits
where you're not exactly sure what you need to match on.)

~~~
emanuelev
> Although, in my experience of using vim, the mental effort of working out
> what character I needed for t/f tended to be far more disruptive than just
> using arrow keys/mouse.

I think you maybe didn't give it enough time. What really happens after a
while is that you don't have to do _any_ mental effort to do very complex
things fast and efficiently. My experience is that after three months I had
some sort of clicking in my head and everything made sense.

Said that, I wouldn't mind Ctrl-D on vim though, that's one of those sublime's
features that I really like (and non consecutive multi line editing).

~~~
aninhumer
I gave it several years as my primary editor, and I did learn a lot of things.
Then I switched to Sublime and became about as proficient in a matter of
weeks. I could have put more effort into learning vim, but I didn't have to in
Sublime.

------
stockkid
feedback: 'b' section:
[http://vimgifs.com/07-18-2016/b/](http://vimgifs.com/07-18-2016/b/) has
instructions about some other keys. Similarly
[http://vimgifs.com/07-19-2016/g/](http://vimgifs.com/07-19-2016/g/) has
instructions about 'b'.

------
devin
I've used Vim, and I don't get it. I have no idea why this is useful. Is this
about generating gifs? Why is the alphabet shown with dates?

~~~
pssdbt
This is useful because it shows how to do many things in vim in easily
consumable gifs. The letters are shown with dates because that's when the
author posted each one. Probably not for everybody, I think it's kind of neat
though!

~~~
devin
Thanks for the explanation. Apparently not understanding this immediately
counts as downvote-worthy. I was not trying to be snarky, it simply did not
make sense to me. A better explanation on the page seems like it wouldn't be
asking too much?

------
Philipp__
Vim may be daunting at first, but after you use it for some time, things just
sink into your brain and fingers.

As some of you mentioned here, it is a professional tool, not easy to learn,
requires patience and dedication, but I think in a long term, you will save
much more time by doing so and mastering it, rather than sticking to some gui
editors where you select with mouse.

------
hbz
Does anybody know what program was used to generate the gifs?

~~~
mrmrs
Licecap and visualize

~~~
hbz
Thanks!

------
roansh
Does anyone know a similar site for Emacs users?

------
mrmrs
Hi everyone.

Crazy to see this thing on the front page of hacker news.

First off - I JUST started putting the site together and didn't expect any
attention yet. So apologies for the bugs and mismatched content. Pull requests
welcome at github.com/mrmrs/vimgifs :)

I created vimgifs because I have found gifs to be an effective way to help
people learn vim commands. And I really like helping people become more
efficient at building out their ideas.

The long term vision is to have a comprehensive set of examples that can be
searched in a myriad of ways i.e related commands, all motion commands,all
commands available in insert mode, .etc. If it's in :help I want a gif of it!

I don't have an opinion on whether or not vim is 'intuitive' but I will say it
is much easier to learn than people make it out to be. I'd say it is
infinitely less complex than whatever language you are trying to write in.

It took me less than a week to become more proficient in vim than in textmate
- and I knew most of the command and shortcuts in textmate.

To people who say they don't have time to learn vim, a counter: If you are
pressed for time so much that you are debating whether or not you have time to
learn something... it sounds like vim is definitely for you!

Vim isn't just about key strokes, commands, shortcuts, and the like. The more
I learn about vim's capabilities the more I fundamentally think differently
about editing and manipulating text. It has branching history, native ability
to step through compile errors for ANY language, and navigation methods that
truly changed how I think about exploring/navigating a code system. It's also
ubiquitous which is pretty rad. I can't remember the last time I touched a
computer that didn't have my favorite editor already installed.

I would encourage people not to denounce something they have never possessed.
If you are not proficient in vim - it is difficult to denounce how intuitive
it is. It's tough to denounce its ways and how much time they might save you.

I have become quite proficient in atom, sublime, textmate, and a few other
editors. Even with 'vim mode' enabled these editors do not come close to the
power that lies within vim.

But rest assured you can write amazing software with any text editor. I've met
a lot of people who are excellent at writing code that never use vim and don't
like it much.

In short - I hope this project makes it more fun and less intimidating to
learn vim. I was lucky to have some amazing teachers when I got going and
would love to pay their efforts forward a little bit.

Thanks for flying vim.

------
naviehuynh
finally a comprehensive list of vim shortcuts

~~~
mrmrs
not comprehensive yet, but we will get there!

------
jegutman
Wow, this is really cool.

