emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r115456: Import `octave-mode' manual from GNU Octave


From: Rüdiger Sonderfeld
Subject: [Emacs-diffs] trunk r115456: Import `octave-mode' manual from GNU Octave.
Date: Wed, 11 Dec 2013 13:51:57 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 115456
revision-id: address@hidden
parent: address@hidden
committer: Rüdiger Sonderfeld <address@hidden>
branch nick: trunk
timestamp: Wed 2013-12-11 14:50:46 +0100
message:
  Import `octave-mode' manual from GNU Octave.
  
  The manual was written by Kurt Hornik.  He agreed to assign the
  copyright for it to the FSF.  I have updated and modified the manual.
  
  * doc/misc/octave-mode.texi: Imported from GNU Octave
    (doc/interpreter/emacs.txi).
  * doc/misc/Makefile.in: Add octave-mode.texi.
  * lisp/progmodes/octave.el (octave-mode, inferior-octave-mode): Link
    to info manual and show keybindings and set `:group' keyword.
added:
  doc/misc/octave-mode.texi      
docmiscoctavemode.te-20131211135130-mke18k9sh7x9vmyx-1
modified:
  ChangeLog                      changelog-20091113204419-o5vbwnq5f7feedwu-1538
  doc/misc/Makefile.in           
makefile.in-20091113204419-o5vbwnq5f7feedwu-6287
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/progmodes/octave.el       
octavemod.el-20091113204419-o5vbwnq5f7feedwu-1028
=== modified file 'ChangeLog'
--- a/ChangeLog 2013-12-11 05:37:30 +0000
+++ b/ChangeLog 2013-12-11 13:50:46 +0000
@@ -1,3 +1,9 @@
+2013-12-06  Rüdiger Sonderfeld  <address@hidden>
+
+       * doc/misc/octave-mode.texi: Imported from GNU Octave
+         (doc/interpreter/emacs.txi).
+       * doc/misc/Makefile.in: Add octave-mode.texi.
+
 2013-12-11  Paul Eggert  <address@hidden>
 
        Remove the option of using libcrypto.

=== modified file 'doc/misc/Makefile.in'
--- a/doc/misc/Makefile.in      2013-11-30 18:34:58 +0000
+++ b/doc/misc/Makefile.in      2013-12-11 13:50:46 +0000
@@ -67,7 +67,7 @@
        dbus dired-x ebrowse ede ediff edt eieio \
        emacs-mime epa erc ert eshell eudc efaq \
        flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \
-       mairix-el message mh-e newsticker nxml-mode \
+       mairix-el message mh-e newsticker nxml-mode octave-mode \
        org pcl-cvs pgg rcirc remember reftex sasl \
        sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp \
        url vip viper widget wisent woman
@@ -564,6 +564,18 @@
 nxml-mode.html: $(nxml_mode_deps)
        $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/nxml-mode.texi
 
+octave_mode_deps = ${srcdir}/octave-mode.texi ${gfdl}
+octave-mode : $(buildinfodir)/octave-mode$(INFO_EXT)
+$(buildinfodir)/octave-mode$(INFO_EXT): $(octave_mode_deps)
+       $(mkinfodir)
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ 
${srcdir}/octave-mode.texi
+octave-mode.dvi: $(octave_mode_deps)
+       $(ENVADD) $(TEXI2DVI) ${srcdir}/octave-mode.texi
+octave-mode.pdf: $(octave_mode_deps)
+       $(ENVADD) $(TEXI2PDF) ${srcdir}/octave-mode.texi
+octave-mode.html: $(octave_mode_deps)
+       $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ 
${srcdir}/octave-mode.texi
+
 org_deps = ${srcdir}/org.texi ${gfdl}
 org : $(buildinfodir)/org$(INFO_EXT)
 $(buildinfodir)/org$(INFO_EXT): $(org_deps)

=== added file 'doc/misc/octave-mode.texi'
--- a/doc/misc/octave-mode.texi 1970-01-01 00:00:00 +0000
+++ b/doc/misc/octave-mode.texi 2013-12-11 13:50:46 +0000
@@ -0,0 +1,477 @@
+\input texinfo                  @c -*-texinfo-*-
address@hidden %**start of header
address@hidden ../../info/octave-mode
address@hidden Octave Mode
address@hidden %**end of header
+
address@hidden
+Copyright @copyright{} 1996--2013 Free Software Foundation, Inc.
+
address@hidden
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+and with the Back-Cover Texts as in (a) below.  A copy of the license
+is included in the section entitled ``GNU Free Documentation License.''
+
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual.''
address@hidden quotation
address@hidden copying
+
address@hidden Emacs editing modes
address@hidden
+* Octave mode: (octave-mode).         Emacs mode for editing GNU Octave files.
address@hidden direntry
+
address@hidden
+
address@hidden
address@hidden Octave Mode
address@hidden An Emacs mode for programming in GNU Octave
+
address@hidden
address@hidden 0pt plus 1filll
address@hidden
address@hidden titlepage
+
address@hidden
+
address@hidden
address@hidden Top
address@hidden Octave Mode
+
address@hidden
address@hidden ifnottex
+
address@hidden
+* Overview::
+* Using Octave Mode::
+* Running Octave from Within Emacs::
+* GNU Free Documentation License::
+* Key Index::
+* Variable Index::
+* Lisp Function Index::
+* Concept Index::
address@hidden menu
+
address@hidden Overview
address@hidden Overview
+
+The development of Octave code can greatly be facilitated using Emacs
+with Octave mode, a major mode for editing Octave files which can
+e.g.@: automatically indent the code, do some of the typing (with
+Abbrev mode) and show keywords, comments, strings, etc.@: in different
+faces (with Font-lock mode on devices that support it).
+
+It is also possible to run Octave from within Emacs, either by
+directly entering commands at the prompt in a buffer in Inferior
+Octave mode, or by interacting with Octave from within a file with
+Octave code.  This is useful in particular for debugging Octave code.
+
address@hidden Using Octave Mode
address@hidden Using Octave Mode
address@hidden Using Octave Mode
+
+In Octave mode, the following special Emacs commands can be used in
+addition to the standard Emacs commands.
+
address@hidden @kbd
address@hidden C-M-j
address@hidden C-M-j
address@hidden octave-indent-new-comment-line
address@hidden octave-continuation-string
+Break Octave line at point, continuing comment if within one.  Insert
address@hidden before breaking the line unless
+inside a list.  Signal an error if within a single-quoted string.
+
address@hidden C-c ;
address@hidden C-c ;
address@hidden octave-update-function-file-comment
+Query replace function names in function file comment.
+
address@hidden C-c C-p
address@hidden C-c C-p
address@hidden octave-previous-code-line
+Move one line of Octave code backward, skipping empty and comment
+lines (@code{octave-previous-code-line}).  With numeric prefix
+argument @var{n}, move that many code lines backward (forward if
address@hidden is negative).
+
address@hidden C-c C-n
address@hidden C-c C-n
address@hidden octave-next-code-line
+Move one line of Octave code forward, skipping empty and comment lines
+(@code{octave-next-code-line}).  With numeric prefix argument @var{n},
+move that many code lines forward (backward if @var{n} is negative).
+
address@hidden C-c C-a
address@hidden C-c C-a
address@hidden octave-beginning-of-line
+Move to the beginning of the physical line
+(@code{octave-beginning-of-line}).  If point is in an empty or comment
+line, simply go to its beginning; otherwise, move backwards to the
+beginning of the first code line which is not inside a continuation
+statement, i.e., which does not follow a code line ending in
address@hidden  or @samp{\}, or is inside an open parenthesis list.
+
address@hidden C-c C-e
address@hidden C-c C-e
address@hidden octave-end-of-line
+Move to the end of the physical line (@code{octave-end-of-line}).  If
+point is in a code line, move forward to the end of the first Octave
+code line which does not end in @samp{...} or @samp{\} or is inside an
+open parenthesis list.  Otherwise, simply go to the end of the current
+line.
+
address@hidden C-c M-C-h
address@hidden C-c M-C-h
address@hidden octave-mark-block
+Put point at the beginning of this block, mark at the end
+(@code{octave-mark-block}).  The block marked is the one that contains
+point or follows point.
+
address@hidden C-c ]
address@hidden C-c ]
+Close the current block on a separate line (@code{smie-close-block}).
+An error is signaled if no block to close is found.
+
address@hidden C-c C-f
address@hidden C-c C-f
address@hidden octave-insert-defun
+Insert a function skeleton, prompting for the function's name, arguments
+and return values which have to be entered without parentheses
+(@code{octave-insert-defun}).
address@hidden
+in one of your Emacs startup files.
address@hidden table
+
+A common problem is that the @key{RET} key does @emph{not} indent the
+line to where the new text should go after inserting the newline.  This
+is because the standard Emacs convention is that @key{RET} (aka
address@hidden) just adds a newline, whereas @key{LFD} (aka @kbd{C-j}) adds a
+newline and indents it.  This is particularly inconvenient for users with
+keyboards which do not have a special @key{LFD} key at all; in such
+cases, it is typically more convenient to use @key{RET} as the @key{LFD}
+key (rather than typing @kbd{C-j}).
+
+You can make @key{RET} do this by adding
address@hidden
+(define-key octave-mode-map "\C-m"
+  'octave-reindent-then-newline-and-indent)
address@hidden lisp
address@hidden
+to one of your Emacs startup files.  Another, more generally applicable
+solution is
address@hidden
+(defun RET-behaves-as-LFD ()
+  (let ((x (key-binding "\C-j")))
+    (local-set-key "\C-m" x)))
+(add-hook 'octave-mode-hook 'RET-behaves-as-LFD)
address@hidden lisp
address@hidden
+(this works for all modes by adding to the startup hooks, without
+having to know the particular binding of @key{RET} in that mode!).
+Similar considerations apply for using @key{M-RET} as @key{M-LFD}.  As
address@hidden@@cnri.reston.va.us, Barry A. Warsaw} says in the
+documentation for his @code{cc-mode}, ``This is a very common
+question.  @code{:-)} If you want this to be the default behavior,
+don't lobby me, lobby RMS!''
+
+The following variables can be used to customize Octave mode.
+
address@hidden @code
address@hidden octave-blink-matching-block
address@hidden means show matching begin of block when inserting a space,
+newline or @samp{;} after an else or end keyword.  Default is @code{t}.
+This is an extremely useful feature for automatically verifying that the
+keywords match---if they don't, an error message is displayed.
+
address@hidden octave-block-offset
+Extra indentation applied to statements in block structures.
+Default is 2.
+
address@hidden octave-continuation-offset
+Extra indentation applied to Octave continuation lines.
+Default is 4.
+
address@hidden octave-font-lock-texinfo-comment
+Highlight texinfo comment blocks.  The default value is @code{t}.
address@hidden vtable
+
+If Font Lock mode is enabled, Octave mode will display
+
address@hidden @bullet
address@hidden
+strings in @code{font-lock-string-face}
+
address@hidden
+comments in @code{font-lock-comment-face}
+
address@hidden
+the Octave reserved words (such as all block keywords) and the text
+functions (such as @samp{cd} or @samp{who}) which are also reserved
+using @code{font-lock-keyword-face}
+
address@hidden
+the built-in operators (@samp{&&}, @samp{==}, @dots{}) using
address@hidden
+
address@hidden
+and the function names in function declarations in
address@hidden
+
address@hidden
+Function comments blocks in @code{octave-function-comment-block}
address@hidden itemize
+
address@hidden Imenu Support
+There is also rudimentary support for Imenu (@pxref{Imenu,,, emacs,
+The GNU Emacs Manual}).  Currently, function names can be indexed.
+
address@hidden ElDoc Mode Support
address@hidden octave-eldoc-message-style
+ElDoc mode (@pxref{Lisp Doc,,, emacs, The GNU Emacs Manual}) is
+supported.  By customizing @code{octave-eldoc-message-style} it can be
+changed from displaying one or multi line hints.
+
address@hidden @cindex TAGS
address@hidden @cindex Emacs TAGS files
address@hidden @cindex @file{octave-tags}
address@hidden You can generate TAGS files for Emacs from Octave @file{.m} 
files using
address@hidden the shell script @file{octave-tags} that is installed alongside 
your copy of
address@hidden Octave.
address@hidden
address@hidden octave-mode-hook
+Customization of Octave mode can be performed by modification of the
+variable @code{octave-mode-hook}.
+
address@hidden Running Octave from Within Emacs
address@hidden Running Octave from Within Emacs
address@hidden Inferior Octave Mode
+
+Octave mode provides commands for running an inferior
+Octave process in a special Emacs buffer.  Use
address@hidden
+M-x run-octave
address@hidden lisp
address@hidden
+to directly start an inferior Octave process.
+
address@hidden inferior-octave-buffer
+This will start Octave in a special buffer the name of which is
+specified by the variable @code{inferior-octave-buffer} and defaults
+to @file{*Inferior Octave*}.  From within this buffer, you can
+interact with the inferior Octave process `as usual', i.e., by
+entering Octave commands at the prompt.  The buffer is in Inferior
+Octave mode, which is derived from the standard Comint mode, a major
+mode for interacting with an inferior interpreter.  See the
+documentation for @code{comint-mode} for more details, and use
address@hidden b} to find out about available special keybindings.
+
+You can also communicate with an inferior Octave process from within
+files with Octave code (i.e., buffers in Octave mode), using the
+following commands.
+
address@hidden @kbd
address@hidden C-c C-i l
address@hidden C-c C-i l
address@hidden octave-send-line
address@hidden octave-send-line-auto-forward
+Send the current line to the inferior Octave process
+(@code{octave-send-line}).  With positive prefix argument @var{n},
+send that many lines.  If @code{octave-send-line-auto-forward} is
address@hidden, go to the next unsent code line.
+
address@hidden C-c C-i b
address@hidden C-c C-i b
address@hidden octave-send-block
+Send the current block to the inferior Octave process
+(@code{octave-send-block}).
+
address@hidden C-c C-i f
address@hidden C-c C-i f
address@hidden octave-send-defun
+Send the current function to the inferior Octave process
+(@code{octave-send-defun}).
+
address@hidden C-c C-i r
address@hidden C-c C-i r
address@hidden octave-send-region
+Send the region to the inferior Octave process
+(@code{octave-send-region}).
+
address@hidden C-c C-i a
address@hidden C-c C-i a
address@hidden octave-send-buffer
+Send the entire buffer to the inferior Octave process
+(@code{octave-send-buffer}).  If the buffer is associated with a file
+then sourcing the buffer by using @kbd{C-c C-l}
+(@code{octave-source-file}) should be preferred.
+
address@hidden C-c C-i s
address@hidden C-c C-i s
address@hidden octave-show-process-buffer
+Make sure that `inferior-octave-buffer' is displayed
+(@code{octave-show-process-buffer}).
+
address@hidden C-c C-i q
address@hidden C-c C-i q
address@hidden octave-hide-process-buffer
+Delete all windows that display the inferior Octave buffer
+(@code{octave-hide-process-buffer}).
+
address@hidden C-c C-i k
address@hidden C-c C-i k
address@hidden octave-kill-process
+Kill the inferior Octave process and its buffer
+(@code{octave-kill-process}).
+
address@hidden C-c C-l
address@hidden C-c C-l
address@hidden octave-source-file
+Parse and execute the current file in the inferior Octave buffer
+(@code{octave-source-file}).  This is done using Octave's
address@hidden function.
+
address@hidden M-.
address@hidden M-.
address@hidden octave-find-definition
address@hidden octave-source-directories
+Find the definition of a function or variable.  Functions implemented
+in C++ can be found if variable @code{octave-source-directories} is
+set correctly (@code{octave-find-definition}).
+
address@hidden C-h d
address@hidden C-h d
address@hidden octave-help
address@hidden octave-help-buffer
+Display the documentation for function (@code{octave-help}).  The
+buffer name can be changed by customizing @code{octave-help-buffer}.
+
address@hidden C-h a
address@hidden C-h a
address@hidden octave-lookfor
+Search for a given string in all the first sentence of function help
+strings (@code{octave-lookfor}).  With a @code{universal-argument} the
+entire help string is searched.
+
address@hidden table
+
+The effect of the commands which send code to the Octave process can be
+customized by the following variables.
+
address@hidden @code
address@hidden octave-send-echo-input
address@hidden means echo input sent to the inferior Octave process.
+Default is @code{t}.
+
address@hidden octave-send-show-buffer
address@hidden means display the buffer running the Octave process after
+sending a command (but without selecting it).
+Default is @code{t}.
address@hidden vtable
+
+If you send code and there is no inferior Octave process yet, it will
+be started automatically.
+
address@hidden inferior-octave-startup-args
+The startup of the inferior Octave process is highly customizable.
+The variable @code{inferior-octave-startup-args} can be used for
+specifying command lines arguments to be passed to Octave on startup
+as a list of strings.  For example, to suppress the startup message
+and use `traditional' mode, set this to @code{("-q" "--traditional")}.
+You can also specify a startup file of Octave commands to be loaded on
+startup; note that these commands will not produce any visible output
+in the process buffer.  Which file to use is controlled by the
+variable @code{inferior-octave-startup-file}.  The default is
address@hidden/.emacs-octave} or if this file is not found
address@hidden/.emacs.d/init_octave.m}.
+
address@hidden inferior-octave-prompt-read-only
+By customizing @code{inferior-octave-prompt-read-only} the prompt can
+be changed to be read only.  The default value is the same as
address@hidden
+
address@hidden inferior-octave-mode-hook
+And finally, @code{inferior-octave-mode-hook} is run after starting
+the process and putting its buffer into Inferior Octave mode.  Hence,
+if you like the up and down arrow keys to behave in the interaction
+buffer as in the shell, and you want this buffer to use nice colors,
+add
address@hidden
+(add-hook 'inferior-octave-mode-hook
+          (lambda ()
+            (define-key inferior-octave-mode-map [up]
+              'comint-previous-input)
+            (define-key inferior-octave-mode-map [down]
+              'comint-next-input)))
address@hidden lisp
address@hidden
+to your @file{.emacs} or @file{init.el} file.  You could also swap the
+roles of @kbd{C-a} (@code{beginning-of-line}) and @code{C-c C-a}
+(@code{comint-bol}) using this hook.
+
address@hidden inferior-octave-prompt
address@hidden
address@hidden that if you set your Octave prompts to something different
+from the defaults, make sure that @code{inferior-octave-prompt} matches
+them.  Otherwise, @emph{nothing} will work, because Emacs will not know
+when Octave is waiting for input, or done sending output.
address@hidden quotation
+
address@hidden GNU Free Documentation License
address@hidden GNU Free Documentation License
address@hidden doclicense.texi
+
address@hidden Key Index
address@hidden Key Index
+
address@hidden ky
+
address@hidden Variable Index
address@hidden Variable Index
+
address@hidden vr
+
address@hidden Lisp Function Index
address@hidden Function Index
+
address@hidden fn
+
address@hidden Concept Index
address@hidden Concept Index
+
address@hidden cp
+
+
address@hidden
+
address@hidden TODO Update
+
address@hidden @node Using the Emacs Info Reader for Octave
address@hidden @chapter Using the Emacs Info Reader for Octave
+
address@hidden You may also use the Emacs Info reader with Octave's @code{doc} 
function.
+
address@hidden If @file{gnuserv} is installed, add the lines
address@hidden @lisp
address@hidden (autoload 'octave-help "octave-hlp" nil t)
address@hidden (require 'gnuserv)
address@hidden (gnuserv-start)
address@hidden @end lisp
address@hidden @noindent
address@hidden to your @file{.emacs} file.
+
address@hidden You can use either `plain' Emacs Info or the function 
@code{octave-help}
address@hidden as your Octave info reader (for @samp{help -i}).  In the former 
case,
address@hidden use @code{info_program ("info-emacs-info")}.
address@hidden The latter is perhaps more attractive because it allows to look 
up keys
address@hidden in the indices of @emph{several} info files related to Octave 
(provided
address@hidden that the Emacs variable @code{octave-help-files} is set 
correctly).  In
address@hidden this case, use @code{info_program ("info-emacs-octave-help")}.
+
address@hidden If you use Octave from within Emacs, it is best to add these 
settings to
address@hidden your @file{~/.emacs-octave} startup file (or the file pointed to 
by the
address@hidden Emacs variable @code{inferior-octave-startup-file}).

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-12-11 01:11:24 +0000
+++ b/lisp/ChangeLog    2013-12-11 13:50:46 +0000
@@ -1,3 +1,8 @@
+2013-12-11  Rüdiger Sonderfeld  <address@hidden>
+
+       * progmodes/octave.el (octave-mode, inferior-octave-mode): Link to
+       info manual and show keybindings and set `:group' keyword.
+
 2013-12-11  Juri Linkov  <address@hidden>
 
        * delsel.el (delete-active-region): Let-bind `this-command'

=== modified file 'lisp/progmodes/octave.el'
--- a/lisp/progmodes/octave.el  2013-12-06 04:26:17 +0000
+++ b/lisp/progmodes/octave.el  2013-12-11 13:50:46 +0000
@@ -528,8 +528,14 @@
 Octave is a high-level language, primarily intended for numerical
 computations.  It provides a convenient command line interface
 for solving linear and nonlinear problems numerically.  Function
-definitions can also be stored in files and used in batch mode."
+definitions can also be stored in files and used in batch mode.
+
+See Info node `(octave-mode) Using Octave Mode' for more details.
+
+Key bindings:
+\\{octave-mode-map}"
   :abbrev-table octave-abbrev-table
+  :group 'octave
 
   (smie-setup octave-smie-grammar #'octave-smie-rules
               :forward-token  #'octave-smie-forward-token
@@ -705,8 +711,16 @@
   (process-live-p inferior-octave-process))
 
 (define-derived-mode inferior-octave-mode comint-mode "Inferior Octave"
-  "Major mode for interacting with an inferior Octave process."
+  "Major mode for interacting with an inferior Octave process.
+
+See Info node `(octave-mode) Running Octave from Within Emacs' for more
+details.
+
+Key bindings:
+\\{inferior-octave-mode-map}"
   :abbrev-table octave-abbrev-table
+  :group 'octave
+
   (setq comint-prompt-regexp inferior-octave-prompt)
 
   (setq-local comment-use-syntax t)


reply via email to

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