Defending the Python lanuage...

Quinn Dunkan quinn at dinar.ugcs.caltech.edu
Mon Feb 4 04:01:40 EST 2002


On 01 Feb 2002 18:54:09 -0500, David Bolen <db3l at fitlinxx.com> wrote:
>Alex Martelli <aleax at aleax.it> writes:
>
>> If you have to *think* about it, as "memorization" would suggest, then
>> you'll probably be happier going with the rodent.  The power of vi, for
>> me (and most other vi-enthusiasts I've known) is that the *fingers*
>> learn the patterns -- sort of like in needlepoint; your conscious brain
>> can focus on higher-abstraction stuff.  (...)

Replying to this because I never saw Alex's original post...

Regarding vi-isms, I don't really have to think about them.  The vi sequence I
gave an example of earlier was touched typed as soon as I thought it.

What I'm not sure of is, even though my fingers know the patterns, is it
faster or slower than the rodent?  I have no trouble imagining my fingers
learning a slow pattern and me thinking that it's fast because I'm used to
it and because there's sure a lot of key-tapping going on.  I sometimes
catch myself doing the "arrow key thing", which is holding down 'w' or 'l'
to get to where I want to go, which is a slow and error-prone way of doing
things (but it usually doesn't *feel* like it!).

For example, in vi, the 'w' command gets stuck on the various special
characters that are so common in code, so I'm pretty trained to always use 'W'
instead.  If I want to go to a certain spot, I can count n spaces and then type
'nW'.  It's beyond my ability to count n words keeping in mind vi's set of
special characters that mark a new work in a short enough time to make it
worthwhile.

Then usually 'nW' doesn't take me exactly where I want to go, maybe I want to
be inside a set of parens that 'W' has skipped over.  So sometimes I do
'(n-1)WEhhh...' to get there.  It takes a long time to do the word-counting,
subtract one, then "arrow" over with 'h', but it doesn't *feel* like a long
time because my brain has plenty of busywork the whole time.

As a result of this clumsiness, sometimes I opt to type '/blahblah' to jump to
where I want to go instead of the 'W' stuff.  Now I need to engage the regex
brain cells, and especially vi's special character quoting rules (different
from the perl/python re rules), since I usually want to jump in the vicinity of
some )s or *s or }s.  Wait... does ')' require a backslash?  Is ':set nomagic'
on?  Once again, my brain is busy, so it feels like I'm blazing along... but
how long does it take to make all those extra decisions?

For example, I originally wrote 'saw' above as 'say'.  So I typed
'?say A<cr>erw' (incsearch is nice for that) and then '}}}}}' until I got back
down here.  Would it have been faster to click?

>As an Emacs-die-hard, I'll also agree strongly with this.  The way I
>like to put it is that I touch type Emacs editing commands nearly as
>quickly as I touch type normal text.  Most of the time, I'm rarely
>even conscious of the mechanics of achieving an edit - rather I know I
>want to "move that line over there" or something, and my fingers just
>perform the right operations.  And whether it's vi or Emacs, I find
>not having to leave the home keys and reach for a mouse (with all the
>associated eye hand coordination involved) is an enormous time saver
>for most editing tasks.

But how long does it take your fingers to perform the right operations?  In my
case, with vi, the given operations rarely get me exactly where I want to go,
and I wind up with a combination of paragraph move, word move, and letter move.
I used to not be concious of it, but I am more and more nowadays.  It feels
sloppy and clumsy and awkward.

I'm the same way for X---my setup has no window borders or titles and all
cursor movement and window focussing is done with the keyboard.  This works ok
when I have a simple tiled window layout, but when I get lots of overlapping
small windows I'd probably be better off with the mouse.  But I've developed
such an aversion to reaching for the mouse...

Perhaps it's time to try out that one-handed kbd layout + mouse on top of kbd
setup :)



More information about the Python-list mailing list