help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: External editor


From: John Eaton
Subject: Re: External editor
Date: Tue, 17 Jan 95 14:29:23 CST

address@hidden (Krzysztof Gozdziewski) wrote:

: I have a problem with calling an external editor from within a session
: of octave. If I try to define a command like
: 
:     ed = system( "joe", "myfun.m" )
: 
: the editor 'joe' hangs the session at the start and I have to kill 
: the process of octave. The same is with vi.

This is from the manual distributed with 1.1.0:

   If you want to execute a shell command and have it behave as if it
   were typed directly from the shell prompt, you may need to specify
   extra arguments for the command.  For example, to get `bash' to
   behave as an interactive shell, you can type

     system ("bash -i >/dev/tty");

   The first argument, `-i', tells `bash' to behave as an interactive
   shell, and the redirection of the standard output stream prevents
   any output produced by `bash' from being sent back to Octave, where
   it would be buffered until Octave displays another prompt.


So, I think it might work to do something like

    function ed (file)
    system (["joe ", file, " >/dev/tty"]);
    endfunction

Of course, this could be improved by checking the argument to make
sure it exists and is a string, etc.

You might also want to look at the edit_history command, which will
start the editor for you on a list of previous commands from Octave's
history list.

: We use octave on SunOS4.1.3 and 5.3, the shell is tcsh.
: 
: Sorry if I overlooked a strightforward solution to this problem.
: If someone knows it please replay. I need the editor for
: writing function and program files when having only one text terminal.

On Sun systems with tcsh you should be able to use job control to
suspend Octave while you edit and restart it when you are ready to go
on.  Is there some reason this doesn't work properly for you?

jwe


reply via email to

[Prev in Thread] Current Thread [Next in Thread]