Hacker News new | past | comments | ask | show | jobs | submit login

Based on this comment I think it's possible that vim isn't for you and you would probably be better suited to something like Sublime or TextMate.



Why would that be, vim seems to be difficult to use because a good manual that actually teaches how to use vim isn't available yet.

In fact it was surprising to me when I learned vim commands are actually a form of some terse language. Because I was only of an assumption that most vim commands are random string of characters you need to memorize. And when you memorize and practice enough you become productive.

I would be definitely well suited for vim, because I like terse language paradigms in unix like sed, awk, perl. I think if I had known about these aspects of vim a while back. I would have tried to write a few essays myself to understand using vim effectively.

I feel tempted to give vim a try now.


> Why would that be, vim seems to be difficult to use because a good manual that actually teaches how to use vim isn't available yet.

What manuals have you tried? Have you tried `vimtutor`(if vim is installed, just run vimtutor from the sell).

> In fact it was surprising to me when I learned vim commands are actually a form of some terse language. Because I was only of an assumption that most vim commands are random string of characters you need to memorize. And when you memorize and practice enough you become productive.

You need to know a lot of words before you can form intelligible sentences. There is no not-knowing `h,j,k,l,esc,d,x,p,b,w,i,I...`. So yes, you do need to memorize basic operations before you can chain them. Most of the things in this cheatsheet are important to know http://tnerual.eriogerg.free.fr/vimqrc.pdf

And once you have learnt the basic, there is no manual to tell you how to combine them, because there is no syntax to do it - you just run them in sequence. It has already been pointed out in the SO thread, and various other threads here.

> I feel tempted to give vim a try now.

Your temptation will last all of 1 day. If you give up, vim isn't for you. It takes a minimum of 15 days to a month to s top missing whatever editor you are using right now, then another month to actually start liking it.


I am emacs user. The problem isn't patience with vim. The problem really is deciphering the `h,j,k,l,esc,d,x,p,b,w,i,I...` sequence.

So as long I can't make sense of what random stream of characters mean, any amount of practice to put them into finger memory is going to be a exercise in frustration.


> The problem really is deciphering the `h,j,k,l,esc,d,x,p,b,w,i,I...` sequence. > So as long I can't make sense of what random stream of characters mean, any amount of practice to put them into finger memory is going to be a exercise in frustration.

That wasn't a sequence - that was basic movements and operations you need to compose sequences.

h,j,k,l is as intuitive as it gets http://wireless.ictp.trieste.it/school_2003/docs/linux/linux...

Rest of the basic movements are mostly mnemonics

w - move forward a word

b - move back a word

e - move to the end

d - delete followed by movement

You use these to formulate sequences.

d2w - delete 2 words

d2b - delete 2 words backwards

d2w2j - delete 2 words and move 2 lines up

d2w2jp - delete 2 words, move 2 lines up and paste(what was deleted)

d2w2j^p - delete 2 words, move 2 lines up, go to beginning of line(^) and paste(the deleted words)

df)/test$F{p

delete till ) (df)), search forward for test (/test), go to end of line where search is found($), search backward for { (F{), and paste(p)

They aren't random stream of characters if you know basic movements and operations.

As far as emacs goes, I find vim to be superior when it comes to navigation. When I am using emacs, I have a minimal configuration file for a few things I absolutely need:

    ;; General settings.
    (setq transient-mark-mode t)
    (line-number-mode t)
    (column-number-mode t)
    (global-hl-line-mode t)
    (setq-default indent-tabs-mode nil)
    (global-font-lock-mode t)
    (setq-default fill-column 120)
    (setq auto-fill-mode t)

    (define-key global-map "\C-xw" 'what-line)
    (define-key global-map "\C-z" 'undo)
    (define-key global-map "\M-g" 'goto-line)
"M-x goto-line line-number <CR>" is just too much typing for going to a specific line.

What emacs wins at is external tools integration. Vim doesn't support async command integration, and per the developers, never will. Vim developers believe vim is a text editor, and it has no business running shells; a stance I am ok with. But that means there never will be a slime for vim, at least not the way it works for Vim i.e you can't execute chunk of code, and be dropped in a debugger if an exception occurs. And there will never be a debugger which seamlessly integrates with vim. I do miss these things sometimes, but there are decent alternatives - I love my zsh, don't need it in an editor; slime, sans debugger is just configuring vim to send selection to repl etc etc.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: