Definitely if you program, and quite possibly if you don’t, using a ‘real’ editor like vim, or emacs, is almost as much of an increase in productivity over something like textpad as touch-typing is over hunt-and-peck.
That sentence was awkward...
Using vim fluently : Textpad :: touch-typing : hunt-and-peck.
I’ve never been able to get over the initial learning curve of emacs or vi.… every once in awhile I try for a few days, but find myself not advancing up the curve fast enough to get real work done and end up ditching it for a conventional editor. Do you have any tips for how to quickly bring yourself up to speed on one of the editors, i.e. get far enough up the learning curve to be more productive with it than with a traditional editor, in a short period of time?
Others have given good advice; in particular, the idea of using a cheat sheet. People have made nice ones, but it’s easy to make your own. It should show how to do the things you’re already doing in your current editor. Other than that, the “trick” is just to commit yourself to using your chosen new editor all the time (except for emergencies).
If you don’t already touch-type, learn that first. You should have a diagram of the keyboard (or at least the hard-to-remember parts). When you forget where a key is, look at the diagram not the keyboard.
If you choose Vim, feel free to PM me if you can’t figure out how to do something in it.
Emacs hardly even has a learning curve for basic use these days, what with the gui interface and ability to use the mouse. Even the console version tends to be better for new users than variations of vi since the keystroke-commands are (arguably) less arcane.
You can improve your Emacs-effectiveness by reading a manual once, so you know what commands there are, and then just pay attention to when you’re doing repetitive tasks or using a bunch of keystrokes for something you can think of as a one-step process; then there’s probably a command for that. Also, use keyboard macros. And if you have a gui-version, only use the mouse as a last resort and then figure out what you should have done using the keyboard.
gvim is easier than vim and vim is easier than vi; with gvim, you can use the mouse, unlike console versions. In general, using *vi is most valuable for editing, as opposed to entry—things like reformatting code, adjusting text tables, that sort of thing.
You only need a small set of commands to function in gvim—i/esc for modes, v for visual (selection mode), d, y and p for cut, yank (aka copy) and paste. You can skip the home-row cursor motion stuff at first and just use arrows. Once you’re comfortable with a small set of commands, learn a few more at a time, spaced out, and when you have a particular need for them. Start with ‘.’ (repeat last command), since having that while doing semi-redundant editing tasks will motivate you to learn more commands.
I use emacs as my editor of choice, though I’ve never really become a super-expert in it, and I recommend it warmly.
What I advise is to make a list of basic keyboard commands and look it up whenever you’re doing something; in my experience, you should memorize them effectively very soon. What I would initially include into the list are basic file commands (opening, saving, navigation, revert-buffer), copy/paste, find/search/replace, and etags commands (if you’re programming). If you want, you can post your list, and I can tell you what I think should be added to it. (I still occasionally find out about some amazingly useful feature I hadn’t known.)
Also, the default setup for emacs can be ugly and inconvenient, so the first step should be to customize your .emacs configuration file. You can find lots of good examples if you just google for them, and modify one as you like. By the way, if you can, install emacs 23, which supports magnificent anti-aliased fonts.
I don’t use either myself—my studying activity is 90% searching/reading, 10% coding/LaTeXing, so I never really bothered to optimise my computer for keyboard control (whereas I’m always looking for the newest and most feature-rich mouse and make large use of gestures and button combinations). But I know a lot more people who swear by vimperator than people who actually use vi.
Definitely if you program, and quite possibly if you don’t, using a ‘real’ editor like vim, or emacs, is almost as much of an increase in productivity over something like textpad as touch-typing is over hunt-and-peck.
That sentence was awkward...
Using vim fluently : Textpad :: touch-typing : hunt-and-peck.
It’s extremely frustrating returning to a ‘normal’ editor and trying to find the shortcut key for ‘regex substitution’. ;)
Well, in Notepad, the keyboard shortcut for Find/Replace is Ctrl-H...
I’m referring to my favourite feature of vim: regex substitution. Commands like :%s:(\w+)(.*\s+)(\w+)$:\3\2\1:
Yeah, old-fashioned find/replace just isn’t as versatile as regular expressions. :(
Obligatory XKCD link.
Also related to direct experience: use TeXmacs instead of LaTeX (even if it’s auctex).
I’ve never been able to get over the initial learning curve of emacs or vi.… every once in awhile I try for a few days, but find myself not advancing up the curve fast enough to get real work done and end up ditching it for a conventional editor. Do you have any tips for how to quickly bring yourself up to speed on one of the editors, i.e. get far enough up the learning curve to be more productive with it than with a traditional editor, in a short period of time?
Others have given good advice; in particular, the idea of using a cheat sheet. People have made nice ones, but it’s easy to make your own. It should show how to do the things you’re already doing in your current editor. Other than that, the “trick” is just to commit yourself to using your chosen new editor all the time (except for emergencies).
If you don’t already touch-type, learn that first. You should have a diagram of the keyboard (or at least the hard-to-remember parts). When you forget where a key is, look at the diagram not the keyboard.
If you choose Vim, feel free to PM me if you can’t figure out how to do something in it.
Emacs hardly even has a learning curve for basic use these days, what with the gui interface and ability to use the mouse. Even the console version tends to be better for new users than variations of vi since the keystroke-commands are (arguably) less arcane.
You can improve your Emacs-effectiveness by reading a manual once, so you know what commands there are, and then just pay attention to when you’re doing repetitive tasks or using a bunch of keystrokes for something you can think of as a one-step process; then there’s probably a command for that. Also, use keyboard macros. And if you have a gui-version, only use the mouse as a last resort and then figure out what you should have done using the keyboard.
gvim is easier than vim and vim is easier than vi; with gvim, you can use the mouse, unlike console versions. In general, using *vi is most valuable for editing, as opposed to entry—things like reformatting code, adjusting text tables, that sort of thing.
You only need a small set of commands to function in gvim—i/esc for modes, v for visual (selection mode), d, y and p for cut, yank (aka copy) and paste. You can skip the home-row cursor motion stuff at first and just use arrows. Once you’re comfortable with a small set of commands, learn a few more at a time, spaced out, and when you have a particular need for them. Start with ‘.’ (repeat last command), since having that while doing semi-redundant editing tasks will motivate you to learn more commands.
I use emacs as my editor of choice, though I’ve never really become a super-expert in it, and I recommend it warmly.
What I advise is to make a list of basic keyboard commands and look it up whenever you’re doing something; in my experience, you should memorize them effectively very soon. What I would initially include into the list are basic file commands (opening, saving, navigation, revert-buffer), copy/paste, find/search/replace, and etags commands (if you’re programming). If you want, you can post your list, and I can tell you what I think should be added to it. (I still occasionally find out about some amazingly useful feature I hadn’t known.)
Also, the default setup for emacs can be ugly and inconvenient, so the first step should be to customize your .emacs configuration file. You can find lots of good examples if you just google for them, and modify one as you like. By the way, if you can, install emacs 23, which supports magnificent anti-aliased fonts.
Perhaps vimperator? It would enable you to get at least basic vi familiarity during your off-time, instead of hampering your productivity.
I’m a vim user and even so that thing drove me nuts. Have you used it enough to get past the learning curve? And if so is it useful?
I’m half considering giving it another shot, but perhaps leaving the help screen open on my second monitor...
I don’t use either myself—my studying activity is 90% searching/reading, 10% coding/LaTeXing, so I never really bothered to optimise my computer for keyboard control (whereas I’m always looking for the newest and most feature-rich mouse and make large use of gestures and button combinations). But I know a lot more people who swear by vimperator than people who actually use vi.