OK - great!  I got it to work though I invoke J through a batch file so I
can supply the arguments to run it with my usual defaults loaded.

Are you familiar with Zach Elliott's "j-mode.el" at
http://github.com/zellio/j-mode ?

Also, are you familiar with this:

;* disable-substitution-on-recall.el: prevent unwanted interpretation of !:
in J.
(defun disable-substitution-on-recall()
    "Avoid unwanted interpretation of '!:' in J."
    (interactive)   ; Necessary to be able to run from interactive key
sequence?
    (setq comint-input-autoexpand nil)
    (setq comint-dynamic-complete-functions nil))
;EG NB. (disable-substitution-on-recall) [C-x C-e]

I think Joey Tuttle showed me this: it prevents emacs from garbling J
expressions like "6!:2" when they are recalled to a session via
"comint-previous-input".



On Wed, Mar 12, 2014 at 1:29 PM, Joe Bogner <[email protected]> wrote:

> Sorry, ctrl-l-map is just a keyboard mapping for ctrl-l. I use it
> instead of ctrl-c as a prefix key (easier on the fingers)..
>
>
> (global-unset-key "\C-l")
> (defvar ctl-l-map (make-keymap)
>      "Keymap for local bindings and functions, prefixed by (^L)")
> (define-key global-map "\C-l" 'Control-L-prefix)
> (fset 'Control-L-prefix ctl-l-map)
>
>
> But, you could just bind cmd-send-region to anything, just like you
> bound C-c C-y
>
> (define-key global-map "\C-c\C-y" 'comint-previous-input)
>
> For example, if you wanted to bind it to C-c p to run the paragraph
>
> (define-key global-map (kbd "C-c p")  '(lambda () (interactive)
> (save-excursion
> (mark-paragraph) (cmd-send-region (region-beginning) (region-end)))))
>
> Typically you would use a (defun) instead of passing in a lambda
>
>
> To start j, you could have a function like this in your  .emacs
>
> (defun jcmd()
>   (interactive)
>   (make-comint-in-buffer "cmd" nil
> "C:/Users/jbogner/Downloads/j64-801/bin/jconsole.exe" nil)
>   (switch-to-buffer "*cmd*"))
>
>
> and then do M-x jcmd
>
> And then the C-c p should send the paragraph from another buffer to
> it. I typically have emacs in a split window configuration - with my J
> file on top and the interpreter buffer on the bottom.
>
> I am happy to keep discussing it
>
> On Wed, Mar 12, 2014 at 11:05 AM, Devon McCormick <[email protected]>
> wrote:
> > I'd like to play with the bare comint as I've unsuccessfully attempted to
> > start jconsole directly in emacs without going through "cmd".  However,
> > when I tried to run your example, it complained about "ctl-l-map" not
> being
> > defined.  I found a definition of something with the same name here -
> > http://pastebin.com/0qdgEC9t - but don't know if this is the same as
> yours.
> >
> > Anyway, when I use this "ctl-l-map" and your code, then run "(cmd)", I
> get
> > a dead buffer "*cmd*": when I hit enter, I get the message "Output file
> > descriptor of cmd is closed", though it does tell me I have a running
> > process when I kill it.  I guess I'm confused at what point "jconsole"
> > comes into it as I don't see it referenced anywhere.
> >
> > I'm using emacs v. 23.1.50.1 .
> >
> > On a note related to an earlier post in which I mentioned the advantage
> of
> > running under "eshell" was that it properly handles an interactive
> "mysql"
> > session from the command line: it turns out I was mistaken.  The key is
> to
> > invoke mysql with the "-n" option; the "-f" option is also handy to
> prevent
> > exiting upon error.  This works from the cmd shell as well as from
> eshell.
> >
> >
> >
> > On Wed, Mar 12, 2014 at 7:06 AM, Joe Bogner <[email protected]> wrote:
> >
> >> Moved from programming...
> >>
> >> On Tue, Mar 11, 2014 at 5:55 PM, Devon McCormick <[email protected]>
> >> wrote:
> >> > Good to know.  I've been using the emacs shell a little bit lately
> but it
> >> > looks like I have to re-do some of my common utilities to get them to
> >> work
> >> > with it.  For instance, I have this defined
> >> > (define-key global-map "\C-c\C-y" 'comint-previous-input)
> >> > to re-do my most recent input but I guess it fails under the emacs
> shell
> >> > because it's not "comint"?
> >>
> >> (define-key global-map "\C-c\C-y" 'comint-previous-input) works for me
> >> in a *shell* buffer. I can hit C-c C-y to get the previous input
> >>
> >>
> >> I tinkered with this earlier on -- just creating a bare comint buffer.
> >> Instead of invoking cmd, it could invoke jconsole directly to skip the
> >> step of starting jconsole manually.
> >>
> >> (defun cmd()
> >>   (interactive)
> >>   (make-comint-in-buffer "cmd" nil "cmd" nil)
> >>   (switch-to-buffer "*cmd*"))
> >>
> >> (defun cmd-send-region (start end)
> >>   (interactive "r")
> >>   (comint-send-region (get-buffer-process "*cmd*") start end))
> >>
> >>
> >> ;;send the current paragraph to the cmd buffer
> >> (define-key ctl-l-map "p"  '(lambda () (interactive) (save-excursion
> >> (mark-paragraph) (cmd-send-region (region-beginning) (region-end)))))
> >>
> >> ;;send the current marked region to the cmd buffer
> >> (define-key ctl-l-map "r"  '(lambda () (interactive) (save-excursion
> >> (cmd-send-region (region-beginning) (region-end)))))
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >>
> >
> >
> >
> > --
> > Devon McCormick, CFA
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>



-- 
Devon McCormick, CFA
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to