View mode: basic / threaded / horizontal-split · Log in · Help
February 19, 2012
Re: Remote unix text editing (Was: Why is there no or or and ?)
"H. S. Teoh" <hsteoh@quickfur.ath.cx> wrote in message 
news:mailman.527.1329589896.20196.digitalmars-d@puremagic.com...
> On Sat, Feb 18, 2012 at 12:10:48PM -0500, Nick Sabalausky wrote:
>
> [...]
>> If I'm using a server that doesn't already have ssh set up (for
>> instance, if I'm actually setting up ssh) *then* I'll either use
>> nano/pico or, if I can, I'll install mcedit which is the closest I've
>> seen to what I would consider a nice text-mode editor.
> [...]
>
> I used to hate vi and its variants because of modality, which I just
> couldn't understand how anyone could consider as *not* a handicap.
>

For most of these things you mention, I'd argue a modal editor like vi isn't 
really necessary. For instance I use Programmer's Notepad 2 (Windows-only, 
unfortunately) which is a "normal" word-processor-style GUI editor, and with 
it:

> But I have to say, after having actually used it for quite a number of
> years now, I simply can't bear to go back to pico. Being able to move in
> text by words

Ctrl-Left, Ctrl-Right

> or blocks or even matching parentheses/brackets/braces
> with just a keystroke or two,

I'm not sure if PN2 in particular does this, but I know that's fairly common 
in many typical non-VI/non-emacs editors.

> or apply complex commands (like regexes)
> to large blocks of text at a time (thus effecting a very large change
> *reliably*),

PN2 has regex find/replace. VS has it, too, and I'm sure many others. I 
agree, it *is* a fantastic thing to have.

> going back to pico is like going back to a 50-year-old
> screwdriver with a loose handle after having used a power drill. It
> makes me feel so crippled.
>
> Part of what makes vi useful is that many of its commands can deal with
> logical units greater than a single character. So you can, e.g.,
> navigate by words

Like I said, Ctrl-Left, Ctrl-Right

> or paragraphs

Not sure what that means in the context of code...? But I have the standard 
PgUp/PgDn/Home/End, FWIW.

> or matching braces (extremely useful for
> moving around in code) with just one or two keystrokes,

Again, fairly common even outside VI.

> replace a word
> without needing to count how long it is,

Replace following word: Shift-Ctrl-Right, Type new word
Replace preceding word: Shift-Ctrl-Right, Type new word
Replace random specific word: Double-click, Type new word

> cut-n-paste n paragraphs (or words, etc.)
> around without needing to actually traverse them. In pico
> you'd have to select, then hit down X number of times per paragraph,

Or mouse on most editors, which really isn't as bad as people make it out to 
be. (But maybe it's just because I'm on a trackball.)

> before you can actually cut. In vi, you just type "d5}" to delete 5
> paragraphs,

Yea, but that way, you have to actually count out what you need. Personally, 
I'd much rather traverse.

> then use '/' (search) to find the reinsertion point, and
> then 'p' to paste everything in there.

Ctrl-F: Quick find (not the default, but that's how I have it set up)
Esc, Ctrl-V

Yea, there's the Ctrl and Esc, but it's not so bad.

> You can also say, "cut to end of
> file" with just two keystrokes: "dG".

Shift-Ctrl-End, Ctrl-X

This works, too:

Shift-Ctrl-(End, then X)

> My favorite is "replace up to
> closing parenthesis": "c/)<ESC>replacement_text<ESC>". Very useful for
> editing code without needing to recount parentheses.
>

Assuming one of the many editors that supports "jump to paren" and such 
things:

Shift-Ctrl-(whatever key it is), replacement_text

> Furthermore, being able to tell the editor to repeat a (set of) commands
> n times is very useful, instead of having to manually repeat it
> yourself.

Yea, admittedly that's not very common with "normal" editors, unless you 
count editor scripting (PN2 uses Python). But there's nothing stopping them 
from enhancing that with macro recording/playback.

> Having logical units is useful here, e.g., you can repeatedly
> replace words of different lengths with a replacement word without
> needing to worry about mismatching lengths.
>

Again, Shift-Ctrl-Left/Right, or Shift-(whatever other navigation 
keys/shortcuts you happen to have available).

> Similarly, pico can in principle do everything that vi does too,

Even *I* very much doubt that ;) Pico's benefit is that it's at least usable 
by people who are used to the typical word-processor-style editors. But 
feature-rich it certainly ain't (unless it's all hidden somewhere?).

> just that vi gets you there with less pain.
>
> Just my $0.02.
>

Yea. I'm not saying that VI isn't nice for those who have learned it and 
like it. But I don't think the typical eclipse/word-processor-style editors 
are much, if at all, behind on the tricks you describe. Certainly not 
impossible in theory (I can easily imagine an editor allowing 
"Ctrl-{number}-Right" for "Move {number} words to the right").

It sounds to me like the difference isn't so much "modal vs modeless" as it 
is whether you escape to the special modes by pressing a key or by holding a 
key. VI: Press a key. Others: Hold a key. The "Hold a key" is easier for new 
users since the mode always "snaps back" whenever you let go (or when you 
press Esc, if you're using something like Quick Find). But I understand that 
some people can get used to VI's...umm..."persistent" modality.
February 19, 2012
Re: Remote unix text editing (Was: Why is there no or or and ?)
On Sun, Feb 19, 2012 at 1:31 AM, Nick Sabalausky <a@a.a> wrote:
> "H. S. Teoh" <hsteoh@quickfur.ath.cx> wrote in message
> news:mailman.527.1329589896.20196.digitalmars-d@puremagic.com...
>> On Sat, Feb 18, 2012 at 12:10:48PM -0500, Nick Sabalausky wrote:
>>
>> [...]
>>> If I'm using a server that doesn't already have ssh set up (for
>>> instance, if I'm actually setting up ssh) *then* I'll either use
>>> nano/pico or, if I can, I'll install mcedit which is the closest I've
>>> seen to what I would consider a nice text-mode editor.
>> [...]
>>
>> I used to hate vi and its variants because of modality, which I just
>> couldn't understand how anyone could consider as *not* a handicap.
>>
>
> For most of these things you mention, I'd argue a modal editor like vi isn't
> really necessary. For instance I use Programmer's Notepad 2 (Windows-only,
> unfortunately) which is a "normal" word-processor-style GUI editor, and with
> it:
>
>> But I have to say, after having actually used it for quite a number of
>> years now, I simply can't bear to go back to pico. Being able to move in
>> text by words
>
> Ctrl-Left, Ctrl-Right
>
>> or blocks or even matching parentheses/brackets/braces
>> with just a keystroke or two,
>
> I'm not sure if PN2 in particular does this, but I know that's fairly common
> in many typical non-VI/non-emacs editors.
>
>> or apply complex commands (like regexes)
>> to large blocks of text at a time (thus effecting a very large change
>> *reliably*),
>
> PN2 has regex find/replace. VS has it, too, and I'm sure many others. I
> agree, it *is* a fantastic thing to have.
>
>> going back to pico is like going back to a 50-year-old
>> screwdriver with a loose handle after having used a power drill. It
>> makes me feel so crippled.
>>
>> Part of what makes vi useful is that many of its commands can deal with
>> logical units greater than a single character. So you can, e.g.,
>> navigate by words
>
> Like I said, Ctrl-Left, Ctrl-Right
>
>> or paragraphs
>
> Not sure what that means in the context of code...? But I have the standard
> PgUp/PgDn/Home/End, FWIW.
>
>> or matching braces (extremely useful for
>> moving around in code) with just one or two keystrokes,
>
> Again, fairly common even outside VI.
>
>> replace a word
>> without needing to count how long it is,
>
> Replace following word: Shift-Ctrl-Right, Type new word
> Replace preceding word: Shift-Ctrl-Right, Type new word
> Replace random specific word: Double-click, Type new word
>
>> cut-n-paste n paragraphs (or words, etc.)
>> around without needing to actually traverse them. In pico
>> you'd have to select, then hit down X number of times per paragraph,
>
> Or mouse on most editors, which really isn't as bad as people make it out to
> be. (But maybe it's just because I'm on a trackball.)
>
>> before you can actually cut. In vi, you just type "d5}" to delete 5
>> paragraphs,
>
> Yea, but that way, you have to actually count out what you need. Personally,
> I'd much rather traverse.
>
>> then use '/' (search) to find the reinsertion point, and
>> then 'p' to paste everything in there.
>
> Ctrl-F: Quick find (not the default, but that's how I have it set up)
> Esc, Ctrl-V
>
> Yea, there's the Ctrl and Esc, but it's not so bad.
>
>> You can also say, "cut to end of
>> file" with just two keystrokes: "dG".
>
> Shift-Ctrl-End, Ctrl-X
>
> This works, too:
>
> Shift-Ctrl-(End, then X)
>
>> My favorite is "replace up to
>> closing parenthesis": "c/)<ESC>replacement_text<ESC>". Very useful for
>> editing code without needing to recount parentheses.
>>
>
> Assuming one of the many editors that supports "jump to paren" and such
> things:
>
> Shift-Ctrl-(whatever key it is), replacement_text
>
>> Furthermore, being able to tell the editor to repeat a (set of) commands
>> n times is very useful, instead of having to manually repeat it
>> yourself.
>
> Yea, admittedly that's not very common with "normal" editors, unless you
> count editor scripting (PN2 uses Python). But there's nothing stopping them
> from enhancing that with macro recording/playback.
>
>> Having logical units is useful here, e.g., you can repeatedly
>> replace words of different lengths with a replacement word without
>> needing to worry about mismatching lengths.
>>
>
> Again, Shift-Ctrl-Left/Right, or Shift-(whatever other navigation
> keys/shortcuts you happen to have available).
>
>> Similarly, pico can in principle do everything that vi does too,
>
> Even *I* very much doubt that ;) Pico's benefit is that it's at least usable
> by people who are used to the typical word-processor-style editors. But
> feature-rich it certainly ain't (unless it's all hidden somewhere?).
>
>> just that vi gets you there with less pain.
>>
>> Just my $0.02.
>>
>
> Yea. I'm not saying that VI isn't nice for those who have learned it and
> like it. But I don't think the typical eclipse/word-processor-style editors
> are much, if at all, behind on the tricks you describe. Certainly not
> impossible in theory (I can easily imagine an editor allowing
> "Ctrl-{number}-Right" for "Move {number} words to the right").
>
> It sounds to me like the difference isn't so much "modal vs modeless" as it
> is whether you escape to the special modes by pressing a key or by holding a
> key. VI: Press a key. Others: Hold a key. The "Hold a key" is easier for new
> users since the mode always "snaps back" whenever you let go (or when you
> press Esc, if you're using something like Quick Find). But I understand that
> some people can get used to VI's...umm..."persistent" modality.
>
>

What you just described is called Kung Fu Typing or Emacs Kung Fu. Vim
has a little of it too. The common example is Ctrl-r which redoes or
undoes the undo. In general Vim tries to avoid it and you can map redo
to a different key(-stroke) if you like. Let the editor flame war
continue...

-Jose
February 19, 2012
Re: Remote unix text editing (Was: Why is there no or or and ?)
I think the difference between chording and non-chording styles of
input depends on the person. I have dyspraxia, which affects my fine
motor control, so remembering and performing complex key sequences
(such as emacs' keyboard shortcuts) is difficult for me, hell I have
difficulty correctly typing ":qa:" properly to quit vim, I often type
":Qa" because I can't take my hand off the keyboard fast enough. I
mistype so often, especially when I have little mnemonic data to go
on.

Shift-Ctrl-End, Ctrl-X is two chords and 5 keystrokes, with <End>
being off my normal typing position, even if I used that combination
for years, I'll likely still get it wrong 1-2 times out of ten. I've
been vim-ing for about 2 years now, I still get the movement keys
wrong. I still type commands that I could bind to shortcut keys, or
already have bindings (":redo") for example. I create ways to remember
most keys, "i" for insert, "r" for replace, "s" for substitute, "d"
for delete, "p" for paste, "g" for go (sometimes), "a" for append, "c"
for cut. But I can't remember modifier keys normally, especially Ctrl
and Alt, I've set most of the keyboard shortcuts on my window manager,
I don't remember a lot of them, because they use <Mod4> (Windows
key/Meta key).

My point is, there's more to modal vs modeless than just how friendly
it is, once I got over the initial hurdle, and forcibly trained myself
to use h, j, k and l for motion (by disabling the arrow keys) I became
far more productive in Vim than I did in any other editor, simply
because I could use single key strokes for actions, I still press
<Esc> just before doing any non-insert on text, even if I'm already in
normal mode, and I still get things wrong, but I find it far easier to
type "dwdwdwdw" to delete 4 words that to type
<Ctrl>-<Shift>-<Right>,<Right>,<Right>,<Right>,<Del>, because its hard
for me to hit keys if I have to move far. Pressing "dd" to delete a
line is easier for me than doing <Home>,<Shift>-<End>,<Del>,<Del>
because its a single key, if I got it once, then I can get it again.

I don't care what editor you use, but I didn't pick mine simply
because I wanted more hacker cred, I picked mine because it allows me
to work around my disabilities.

For the record, while I didn't track it, I estimate that I made about
an average of 1 mistake per word typing this message, I mis-typed
"track" 4 times in this sentence.

--
James Miller
February 19, 2012
Re: Why is there no or or and ?
On 17/02/2012 06:09, bcs wrote:
<snip>
> Any language that is designed to be easy for amateurs to use will be used by amateurs, and
> only by amateurs.
<snip>

Do you consider either VB or Python to fall under that category?

Stewart.
February 19, 2012
Re: Why is there no or or and ?
Vb yes, python kinda.  Vb is designed for people who don't want to
program.  The idea is to create a quick application that gets two job
done.  Python is slightly different.  It has a ton of syntax and all the
libraries that it needs to be used in moderately sized project.  Python
comes across as being easy to learn because it is simple in the most
beautiful way.  I doubt many large programs are written in python but of
course it is finding a home on the web.  I think that python stretches
close to the line but I doubt it was designed for beginners.
On Feb 19, 2012 10:20 AM, "Stewart Gordon" <smjg_1998@yahoo.com> wrote:

> On 17/02/2012 06:09, bcs wrote:
> <snip>
>
>> Any language that is designed to be easy for amateurs to use will be used
>> by amateurs, and
>> only by amateurs.
>>
> <snip>
>
> Do you consider either VB or Python to fall under that category?
>
> Stewart.
>
February 19, 2012
Re: Why is there no or or and ?
Kevin Cox:

> I think that python stretches
> close to the line but I doubt it was designed for beginners.

Python partially comes from ABC, a language that was designed to teach programming. So originally Python was meant (unlike ABC) to be practically useful, but also to avoid being unnecessarily hard to learn and use, retaining ABC ideas and simplicity where possible.

In the last years they have added more features to Python (Unicode on default, lazyiness on default in many places, decorators, and so on and on), to make it more efficient and more fit to write larger programs. So now Python is large enough, and despite being simpler than several other languages, it's not so simple to be a first language.

The problem with languages to teach programming to people that don't know how to program, is that if you design them to be simple and good for teaching, no one uses it for practical purposes, so it ends being useless outside schools, and very few people write patches or libraries for it. So it often dies. If you use a language used for real use, you have many libraries and a good compiler/interpreter, but the language is large, often full of legacy, warts, or backwards compatible things, and the language itself is often not easy to learn and understand.

Apparently there is no way out of this dilemma. I have seen that today Python is good enough to teach programming, but you can't teach static typing well with it. D is too much complex for young newbies. Racket Scheme has a very good editor, it has good documentation, and so on, but in my opinion Python is better as first language, despite Racket contains a typed scheme too.

Bye,
bearophile
February 19, 2012
Re: Why is there no or or and ?
On 02/19/2012 07:25 AM, Kevin Cox wrote:
> Vb yes, python kinda.  Vb is designed for people who don't want to
> program.  The idea is to create a quick application that gets two job
> done.  Python is slightly different.  It has a ton of syntax and all the
> libraries that it needs to be used in moderately sized project.  Python
> comes across as being easy to learn because it is simple in the most
> beautiful way.  I doubt many large programs are written in python but of
> course it is finding a home on the web.  I think that python stretches
> close to the line but I doubt it was designed for beginners.

What he said.

>
> On Feb 19, 2012 10:20 AM, "Stewart Gordon" <smjg_1998@yahoo.com
> <mailto:smjg_1998@yahoo.com>> wrote:
>
>     On 17/02/2012 06:09, bcs wrote:
>     <snip>
>
>         Any language that is designed to be easy for amateurs to use
>         will be used by amateurs, and
>         only by amateurs.
>
>     <snip>
>
>     Do you consider either VB or Python to fall under that category?
>
>     Stewart.
>
February 19, 2012
Re: Remote unix text editing (Was: Why is there no or or and ?)
On 02/18/2012 06:13 PM, Nick Sabalausky wrote:
> "bcs"<bcs@example.com>  wrote in message
> news:jhonpv$neg$1@digitalmars.com...
>> On 02/18/2012 09:10 AM, Nick Sabalausky wrote:
>>>
>>> I've heard a lot of people say that about vi(m), but in my (admittedly
>>> somewhat limited) experience, I've never come across a (Li|U)n[ui]x
>>> system
>>> that didn't have nano or pico (neither of which are great, but they're
>>> good
>>> enough for editing Unix configuration files, and I'm actually capable of
>>> using them, unlike emacs or vim).
>>
>> Vi's not that hard to use if you don't expect to be a power user.
>>
>
> I figure I could probably get by with it (if I had to) as long as I grabbed
> a command reference and kept it nearby. But so far, I haven't felt any need
> or desire to do so.
>

I'm in a similar position, vi is my tty console editor of choice but not 
my goto editor for anything of much significance.

>>>
>>> But I prefer to do it like this: SSH into a server, but then also connect
>>> via SSHFS (SSHFS is fucking *awesome*!). That way, no matter the server,
>>> I
>>> can use *any* editor I want: kate, gedit, whatever.
>>
>> How long does it take to get in via sshfs? If it take more than about 10
>> seconds to get started, that is a non-starter for some cases
>
> Same speed as any normal SSH login. Only difference is instead of doing:
>
> $ssh user@domain
>
> You do:
>
> $sshfs user@domain: /desired/local/mount/point
>
> Or if you don't want it rooted on the remote user's home dir:
>
> $sshfs user@domain:/ /desired/local/mount/point  # the whole damn remote
> system
> or
> $sshfs user@domain:/remote/dir /desired/local/mount/point
>
> Then to logout, it's just:
>
> $fusermount -u /desired/local/mount/point
>
> It literally is SSH, so the actual login process is exactly the same as SSH,
> whether you use a key-pair or a full login/pass.  So however fast that is,
> that's how fast SSHFS is. I've never noticed any difference.
>

That's kind of borderline for some uses.
February 22, 2012
Re: Why is there no or or and ?
On Friday, 17 February 2012 at 16:43:54 UTC, F i L wrote:

>
> I just don't see an argument for why we *shouldn't* make 
> mathematical operations in code match those we where taught as 
> children as close as possible.
>

There is a profound difference in that math is mostly about 
making a series of static statements, universal or temporary 
facts of relationships between things, while programming is all 
about describing operations to be performed, even if hidden by 
functional or object costume.

Math may use operators and functions, and programming sometimes 
assertions of relations, which makes reality not so clean cut 
simple, but this is the essential difference.

It does not serve any purpose to insist on closely similar 
notations.
February 22, 2012
Re: Why is there no or or and ?
On Friday, 17 February 2012 at 06:25:49 UTC, H. S. Teoh wrote:
> But who am I to speak out against more than four decades of 
> historical
> accidents, right? I think I'll shut up now.

Can you forgive me a little investigation? I heard similar 
proposals and wonder where they come from. What do you think? It 
can't be python or golang, because they were already designed 
with there thoughts in mind.
2 3 4 5 6 7
Top | Discussion index | About this forum | D home