> Hi All,
>
> When I learned to touch type in high school, we used an application
> similar to "Mavis Beacon Teaches Typing" that drilled character
> sequences into my muscle memory. I think there was a real advantage
> to this approach over simply stumbling through the process of learning
> to type. The application chose intentionally difficult sequences and
> required that I practice those ones over and over again. The result
> was that I could touch type the unusual sequences at nearly the same
> rate as regular sequences, and my overall achievement in touch typing
> was quite remarkable. (I have since lost my edge, as I now only type
> at about 85 WPM).
>
> This approach to learning seems very similar to what modern psychology
> has identified as the way in which people become experts: Deliberate
> Practice [1]. The idea is that expertise is not accidental and comes
> through a designed learning process [2]. Some of the important
> elements include:
>
> 1. Identifying specific elements that need to be improved and then
> working intently on them.
> 2. A great deal of repetition.
> 3. Feedback.
>
> I am fairly new to Vim and am interested in taking a disciplined
> approach to learning how to navigate and modify code using its
> powerful stateful approach to text editing. In particular, I want to
> eventually learn how to refactor code without thinking too much about
> what keys I'm pressing.
>
> Are there any "Mavis Beacon Teaches Vim" type programs or plugins out
> there that would help me accomplish this?
>
> Thank you,
> Duane Johnson
>
> [1] (PDF) http://projects.ict.usc.edu/itw/gel/EricssonDeliberatePracticePR93.pdf
> [2] http://www.openeducation.net/2008/11/02/deliberate-practice-%E2%80%93-where-self-reflection-work-ethic-and-ambition-meet/
>
Well, my take on this question is that the one and only skill that needs
to be mastered letter-perfect by every person who wants to become really
efficient _by means of_ Vim is to learn how to use the help, including
helptag completion, the various ways to call it (Ctrl-D for "list all
matches" and I recommend also 'wildmenu'), and the :helpgrep command.
See:
:help
:help :help
:help {subject}
:help :helpgrep
(and, for :helpgrep, the following come handy:
:map <F2> :cnext<CR>
:map <S-F2> :cprev<CR>
:map <F3> :cnfile<CR>
:map <S-F3> :cpfile<CR>
:map <F4> :clast<CR>
:map <S-F4> :cfirst<CR>
-- look them up.)
:help index
:help doc-file-list
:help 'wildmode'
:help 'wildmenu'
:help 'wildoptions'
:help cmdline-completion
An accessory task, which I wouldn't call a skill, is to read every post
on one or more of the Vim lists: vim_use in all cases, vim_multibyte if
you're interested in Unicode and/or non-Latin scripts, vim_mac if you're
on a Mac computer, vim_dev if you're interested in compiling your own
Vim, and/or in tracking and/or fixing bugs in Vim, and/or in developing
new features. You don't need vim_announce if you get one (or more) of
the others. It's by reading these lists that I learnt most of what I
know about Vim; but using the help comes first.
Everything else you can learn when and if needed, and you can't know in
advance how often (if at all) you'll need it. What you need most often
you'll learn by doing anyway, no need to deliberate-practice it.
If you want to become an expert _about_ Vim, i.e. know all its ins and
outs perfectly on the tips of your fingers, then you came too late: for
that skill, you would have had to be borne Bram Moolenaar. ;-)
Best regards,
Tony.
--
Ask Not for whom the Bell Tolls, and You will Pay only the
Station-to-Station rate.
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
To unsubscribe, reply using "remove me" as the subject.
No comments:
Post a Comment