I'm a heavy user of emacs. I switched about 2 years ago after using
vim for a few years. Prior to that, I was using the IDE of whatever
language I'm in.

Emacs has a steep learning curve, but it's become the perfect
environment for me. I use the various modules for each of the
languages I program in. Most are built on top of the comint mode. The
j-mode is quite good. The syntax highlighting and matching is very
nice.  It works the same way on linux or windows.

I also had wrist pain after becoming a heavy emacs user. I also had
pain with vim, but just pain in different fingers. Emacs has largely
solved the problem for me with two modules - key-chord mode and
ace-jump mode.

I use key-chords on the home row for common tasks (jw for save). I've
mapped a bunch of bindings to ctrl+l, which is more natural than
ctrl+c for me. With ace-jump mode, I can hit two keys jw to jump to
any word on the screen or jk to jump to any character.

When my fingers start to burn, I switch my bindings out to use
different fingers.

Emacs evil-mode mode is really good too for modal editing, which
sometimes I enjoy when I'm doing a bunch of maintenance work
(modifying text vs composing text). It emulates the vim key bindings
nearly perfectly

Org-mode is fantastic for literate programming or just keeping an
executable notebook. I also use it to track my time. I can even run j
from within my org-mode snippets with the org-babel-j plugin I wrote:
https://github.com/joebo/org-babel-j

Emacs macros have saved me a ton of time too over the years. Vim
macros were ok too, I just found the emacs ones to be much easier to
work with.

Just wanted to share my perspective on emacs. Definitely not intended
to start a vim/emacs comparison "war"


On Wed, Jan 29, 2014 at 9:28 AM, Raul Miller <[email protected]> wrote:
> Nowadays we seem to be plagued with a surplus of code that almost no
> one understands how to use.
>
> For myself, my wrists have recovered (you've seen how much text I dump
> on the lists here) but I spend most of my coding time trying to
> connect the dots - coding possibilities I see with [hopefully] useful
> results for other people.
>
> Put differently, one "virtue" of a good coder is "do not repeat
> yourself" but there are two related virtues: "repeat yourself" and "do
> not do it at all". Needless to say, this can get confusing to reason
> about - if you try to do that in isolation - but they are all
> worthwhile approaches, when used judiciously.
>
> Thanks,
>
> --
> Raul
>
>
> On Wed, Jan 29, 2014 at 9:15 AM, Roger Hui <[email protected]> wrote:
>> Arthur Whitney was talking about a common colleague one time.  "E can
>> program faster than I can type!"  (E is probably not anybody any of you
>> would know.)
>>
>>
>> On Wed, Jan 29, 2014 at 5:58 AM, Raul Miller <[email protected]> wrote:
>>
>>> I've dabbled in elisp - I wrote a minor mode for APL back in the '90s.
>>> It was a fun challenge, but physically painful, and I had to give up
>>> emacs.
>>>
>>> See... a problem with emacs is the keyboard chording system - if you
>>> are typing alt-shift A, control-P, ... or whatever, and are going 80
>>> words per minute, and your posture isn't the greatest? I was doing
>>> something like that and my wrists started hurting terribly. I was
>>> afraid I would not be able to type at all.
>>>
>>> So I switched to vi, and switched my coding style from being prolific
>>> to thinking a lot and typing just a bit. This gave me a lot of
>>> appreciation to "old school style" and also gave my wrists a chance to
>>> recover. You can do a lot with small bits of shell script (or other
>>> coding), some careful thought, and working with people.
>>>
>>> So that is my signature, nowadays - I do not code a lot, and I put a
>>> lot of thought (perhaps too much thought) into the code I do write. My
>>> wrists thank me (usually - sometimes they still grumble), though
>>> sometimes I envy people who can comfortably crank out tons of code.
>>>
>>> Thanks,
>>>
>>> --
>>> Raul
>>>
>>> On Wed, Jan 29, 2014 at 7:01 AM, David Lambert <[email protected]>
>>> wrote:
>>> > I have a quarter million lines of FORTRAN written over the years in the
>>> > various versions.  Mostly f77 using ! comments, but not entirely.  My
>>> goal:
>>> > convert the entire code to f2008.  Parts A, B, and C are continuation
>>> mark,
>>> > code, and comment.  At this stage I'm addressing various forms of
>>> > continuation lines, an example:
>>> >
>>> >       call s( ! comment maybe
>>> >                    ! intervening remarks
>>> >      *arg)
>>> >       character*8 a=/'hi'/  ! or whatever
>>> >
>>> > becomes
>>> >
>>> >      call s& ! comment maybe
>>> > ! intervening remarks
>>> > &arg)
>>> >       character(len=8) :: a = (/'hi'/)  ! fixed with sed
>>> >
>>> > Later I'll have emacs reindent the whole thing.  Such transformations
>>> ignore
>>> > replacing common blocks with modules.  A build with gfortran will catch
>>> > problems that our current compiler does not.  Transforming the code with
>>> j
>>> > makes my job fun, whereas becoming an elisp expert hasn't ever grabbed my
>>> > attention.
>>> >
>>> > On 01/28/2014 07:00 AM, [email protected] wrote:
>>> > Message: 1
>>> > Date: Mon, 27 Jan 2014 22:30:14 -0500
>>> > From: David Lambert <[email protected]>
>>> > To: chat <[email protected]>
>>> > Subject: [Jchat] FSM enhancement proposal
>>> > Message-ID: <[email protected]>
>>> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>> >
>>> >
>>> > I have information of the forms ABC, AB, BC, AC, A, B, C which I'd like
>>> > to separate into 3 boxes.  If a part is missing the box should be
>>> > empty.  I think it is impossible with the current FSM implementation
>>> > because it must read a character to yield output.  With only one
>>> > character on input I cannot obtain '';'';C as output, or any three
>>> > boxes. I haven't investigated emit vector but I don't see how it will
>>> > help.  The 3 boxes preserve the classification work that's already been
>>> > accomplished, and I can use _3&([\) to generate a useful array.
>>> >
>>> > We could enhance the FSM retaining backward compatibility.  I'd prefer
>>> > to pass a gerund as an additional part of x, have the Function code
>>> > specify to use it as an agenda determined by the output code. The agenda
>>> > would monadically process the matched items.  It seems to me that such a
>>> > j FSM would have the full capability of the gnu flex program, excepting
>>> > the automatic generation of the state table.
>>> >
>>> > Perhaps a new output code to emit something ( ace if F is 0 otherwise
>>> > i.0 ? ) and change state without reading the next input item would be a
>>> > simpler solution to treat the case I've presented.
>>> >
>>> > Or this may be far too complicated and I need to write my own function.
>>> > It would surprise me if the gerund concept were not part of the original
>>> > implementation debate.  And it would surprise me to learn that I
>>> > understand the FSM.  For now I'll use a flex bison program.
>>> >
>>> >
>>> >
>>> > ------------------------------
>>> >
>>> > Message: 2
>>> > Date: Mon, 27 Jan 2014 22:39:23 -0500
>>> > From: Raul Miller <[email protected]>
>>> > To: Chat forum <[email protected]>
>>> > Subject: Re: [Jchat] FSM enhancement proposal
>>> > Message-ID:
>>> > <CAD2jOU_tfv6mDdU0o_E5nteCf0k9=v1x_isiaph1omscsud...@mail.gmail.com>
>>> > Content-Type: text/plain; charset=UTF-8
>>> >
>>> >
>>> > I am having trouble understanding your specification.
>>> >
>>> > Do you mean that you have a sequence of letters, such as:
>>> >
>>> > BBBCCCACBBBCBBAAAAABAABACACACC
>>> >
>>> > And you want to separate them into boxes whose letters are lexically
>>> > increasing?
>>> >
>>> > I'd not bother with ;: for that, I'd do something like this:
>>> >
>>> >     (] <;.1~ 1 , 2 >:/\ 'ABC' i. ]) 'BBBCCCACBBBCBBAAAAABAABACACACC'
>>> >
>>> > Though if you prefer gnu flex and bison, I'm sure you can do it that
>>> > way too, with a little time and effort.
>>> >
>>> > Thanks,
>>> > ----------------------------------------------------------------------
>>> > For information about J forums see http://www.jsoftware.com/forums.htm
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to