1,072
edits
(15 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[http://www.vim.org/ Vim the editor] is one of the most famous text editors in the hacker programming universe. It has a plenty of extensible (script-based) capabilities and very comfortable shortcuts that makes the programmer the fastest gun of the old west. (I can imagine Vim in front of Emacs on a desert city, Vim's shot is much faster!). In this page you'll learn some tips to better adapt Vim for GNU Octave programming. | [http://www.vim.org/ Vim the editor] is one of the most famous text editors in the hacker programming universe. It has a plenty of extensible (script-based) capabilities and very comfortable shortcuts that makes the programmer the fastest gun of the old west. (I can imagine Vim in front of Emacs on a desert city, Vim's shot is much faster!). In this page you'll learn some tips to better adapt Vim for GNU Octave programming. | ||
If you aren't familiar with Vim script language, you can also use [http://brainacle.com/how-to-write-vim-plugins-with-python.html Python to write Vim plugins]. If you do some for GNU Octave, please let us | If you aren't familiar with Vim script language, you can also use [http://brainacle.com/how-to-write-vim-plugins-with-python.html Python to write Vim plugins]. If you do some for GNU Octave, please let us know. | ||
== Vim as the default editor == | == Vim as the default editor == | ||
To set Vim as the default editor launched by the GNU Octave {{Codeline|edit}} command, add the following line to your {{Path|~/.octaverc}} file: | To set Vim as the default editor launched by the GNU Octave {{Codeline|edit}} command, add one of the following line to your {{Path|~/.octaverc}} file: | ||
EDITOR ("gvim") | |||
EDITOR ("<terminal> -e 'vim'"); | |||
where {{Codeline|<terminal>}} can be [http://directory.fsf.org/wiki/Gnome-terminal gnome-terminal], [http://directory.fsf.org/wiki/Xterm xterm], or any other terminal of your preference. Please note the {{Codeline|-e}} option is common to the mentioned terminals, change it if necessary. | |||
The {{Codeline|edit}} command defaults to asynchronous communication which creates a new process for the launched editor and then runs it in the background. If, for some reason, you have modified this setting then you will also need to add | |||
edit | edit mode async | ||
to the {{Path|~/.octaverc}} file. | |||
To use Vim as default editor without starting a separate window, add the following lines to your {{Path|~/.octaverc}} file: | To use Vim as the default editor without starting a separate window, add the following lines to your {{Path|~/.octaverc}} file: | ||
edit mode sync | edit mode sync | ||
edit home . | edit home . | ||
EDITOR('vim > /dev/tty 2>&1 < /dev/tty %s') | |||
== A better GNU Octave syntax file == | == A better GNU Octave syntax file == | ||
For now, Vim does not have a dedicated, officially distributed filetype for GNU Octave. The community agreed the best solution is to use [https://www.vim.org/scripts/script.php?script_id=3600 syntax.vim] by Rik. All the instructions for installing it can be found on the hyperlink. A companion script for indenting Octave m-files from Rik is available at [https://www.vim.org/scripts/script.php?script_id=6056 indent.vim]. | |||
== Accessing GNU Octave info == | == Accessing GNU Octave info == | ||
GNU Octave info package can be found in almost all Linux distributions. | GNU Octave info package can be found in almost all Linux distributions. To install the package under Ubuntu, you can type: | ||
$ sudo apt-get install octave<version>-info | $ sudo apt-get install octave<version>-info | ||
where {{Codeline|<version>}} must be substituted by the appropriate string. Add the following line to your {{Path|~/.vimrc}} file: | where {{Codeline|<version>}} must be substituted by the appropriate string. | ||
Add the following line to your {{Path|~/.vimrc}} file: | |||
autocmd FileType matlab setlocal keywordprg=info\ octave\ --vi-keys\ --index-search | autocmd FileType matlab setlocal keywordprg=info\ octave\ --vi-keys\ --index-search | ||
Line 36: | Line 40: | ||
Now, when editing a {{Path|*.m}} file, you can type {{Key|K}} in normal mode and the word under the cursor will be searched for in the GNU Octave documentation index. Pressing {{Key|,}} yields the next occurrence. | Now, when editing a {{Path|*.m}} file, you can type {{Key|K}} in normal mode and the word under the cursor will be searched for in the GNU Octave documentation index. Pressing {{Key|,}} yields the next occurrence. | ||
''' | Unfortunately info does not work in dumb terminals. As gVim has only a dumb terminal, a workaround must be done to access info. Two methods are possible. First, one can to use a plugin, like [https://github.com/carlobaldassi/ConqueTerm ConqueTerm], which can turn a gVim buffer into a terminal emulator. | ||
Second, one can use an external terminal emulator, preferably a fast loading one such as xterm, and install it. To installing xterm under Ubuntu, you can type: | |||
$ sudo apt-get install xterm | |||
Add the following line to your {{Path|~/.vimrc}} file: | |||
autocmd FileType octave setlocal keywordprg=xterm\ -e\ info\ octave\ --vi-keys\ --index-search | |||
Now you can type {{Key|K}} in normal mode and a new terminal window will opened and the word under the cursor will be searched for in the GNU Octave documentation index. You can set a larger font and a specific window geometry for xterm with the following line: | |||
autocmd FileType octave setlocal keywordprg=xterm\ -fa\ 'DejaVu\ Sans\ Mono:style=Book'\ -fs\ 12\ -geometry\ 80x50\ -e\ info\ octave\ --vi-keys\ --index-search | |||
'''NOTE:''' If using Rik's [http://www.vim.org/scripts/script.php?script_id=3600 syntax.vim] syntax, replace {{Codeline|matlab}} by {{Codeline|octave}}. | |||
== Jumping between control statements == | == Jumping between control statements == | ||
Line 54: | Line 71: | ||
Any improvements on the {{Codeline|b:match_words}} variable are welcome. | Any improvements on the {{Codeline|b:match_words}} variable are welcome. | ||
[[Category:Editors]] |
edits