diff options
Diffstat (limited to '.vim/pack/editing/start/vimacs/doc/vimacs.txt')
-rw-r--r-- | .vim/pack/editing/start/vimacs/doc/vimacs.txt | 1366 |
1 files changed, 1366 insertions, 0 deletions
diff --git a/.vim/pack/editing/start/vimacs/doc/vimacs.txt b/.vim/pack/editing/start/vimacs/doc/vimacs.txt new file mode 100644 index 0000000..969e456 --- /dev/null +++ b/.vim/pack/editing/start/vimacs/doc/vimacs.txt @@ -0,0 +1,1366 @@ +*vimacs.txt* Vimacs: Emacs mappings (emulation) for Vim + +|Vimacs.01| Introduction +|Vimacs.02| Installing Vimacs +|Vimacs.03| Vimacs Options +|Vimacs.04| Changes for Emacs users +|Vimacs.05| Changes for Vim users +|Vimacs.06| Key Map +|Vimacs.07| Design Comments +|Vimacs.08| Known Problems +|Vimacs.09| Revision History (ChangeLog) +|Vimacs.10| In the Future ... (TODO list) +|Vimacs.11| Contact, Help, Credits + + +============================================================================== +*Vimacs.01* Introduction + + *vimacs* + + *vimacs-introduction* + +Vimacs (Vim-Improved eMACS) brings Emacs' extensive key bindings and modeless +editing features to the Vim world, while completely retaining Vim's +powerful moded editing style. + +Vimacs is based on the keymaps of GNU Emacs 21 and XEmacs, so if you are +familiar with them, you'll feel right at home in Vimacs. For Emacs users, +most (if not all) of the common key maps in Emacs are present in Vimacs, such +as <C-Space>, <C-w> and <C-y> to mark, kill and yank regions, <C-x><C-f> to +find a file, and <C-x>2 to vertically split a window. However, you can now +take advantage of the incredible power of Vim's Normal and Command modes with +a touch of the <Esc> key. + +Why use Vimacs instead of Emacs? Vim's configuration and option tweaking is +arguably much easier than doing the same task in the Emacs world; its +scripting language is simpler and more conventional than LISP, and still very +powerful. Python, Perl, and |libcall()| (C library interface) support allow +for incredibly powerful scripting if you need something which is the equal of +ELISP. Vim is heavily optimised for speed and text editing; you may find Vim +to be much quicker in many tasks. While Emacs and Vim may run on equally as +many platforms, Vim often has superior support for non-Unix operating systems +in comparison to Emacs; e.g. Vim for Win32 can natively function as a DDE +server and can integrate into Microsoft Visual Studio. + +If you're a long-time Vim user, you retain vi's powerful moded editing +paradigm while gaining all the benefits of Emacs' modeless editing. After a +while, the <C-a> and <C-e> keys will become second nature to you, just as +you're used to the |h|, |j|, |k|, and |l| keys for movement. Some of the keys +familiar to you in Insert mode have been changed, but you won't take long to +get used to Emacs' keys: just like Vim, Emacs' key layout has been designed so +that commonly used keys are quick to access. Emacs' initially strange key +layout will reward you later on for its efficiency, just like Vim does. Emacs +experts are just as fast as Vim experts in manipulating text, and as a bonus, +you start becoming familiar with Emacs keybindings, which are gradually +becoming more pervasive in Unix applications. (Even MacOS X supports some +Emacs keys in its dialog boxes!) + + *vimacs-terminology* + +Vim and Emacs use different (and sometimes conflicting) terminology. Since +Vimacs runs within the Vim environment, we will use the Vim terminology rather +than Emacs terminology. + + Emacs Terminology Vim Terminology + + (key)binding map + point cursor + kill yank + yank paste + register mark + rectangle block + kill-ring registers + +It is Vim standard that key bindings are written in |<>| notation; thankfully +this is essentially the same as Emacs' key binding notation. In Emacs, the +key combination Control-x followed by Control-f is written as "C-x C-f"; in +Vim, this is written as "<C-x><C-f>". Meta-f in Emacs is written as "M-f"; in +Vim, this is written as "<M-f>" or "<A-f>". (The 'A' stands for Alt; in Vim, +there is no distinction between the Meta and Alt keys.) Vim helpfiles also +use a |CTRL-X_CTRL-F|-style notation; Vimacs-specific keys will use a +|vimacs:CTRL-X_CTRL-F| notation. + +For the gory details of Vim notation, see |notation|. + + *vimacs-help-navigation* + +Emacs users: If you are not in insert mode (if you do not see a line at the +bottom of the screen saying "-- INSERT MODE --"), use <C-]> to follow a link, +and <C-t> to go back a link. If you are using Vimacs keybindings and are in +Insert mode, you can follow a help link such as |vimacs-introduction| by +moving your cursor over it and pressing <M-.>. This is the same as Emacs' +typical <M-.> keybinding, which is the |vimacs:find-tags| command. Jump back +to your previous position using the <M-*> key. + +Vim users: Pressing <M-.> in Insert mode performs the same function as +|CTRL-]| in Normal mode. <M-*> is equivalent to |CTRL-T|. + + +============================================================================== +*Vimacs.02* Installing Vimacs + + *vimacs-quickstart* + +The following quick start guides are for Win32 and Unix systems. Detailed +installation instructions follow afterward. + + *vimacs-win32-quickstart* + +Firstly, you'll need Vim 6 installed. Vimacs won't work on older +versions. + +To install Vimacs, copy the .txt file in the archive to your Vim +documentation directory (typically "C:\Program Files\vim\vimfiles\doc"), +and copy the .vim file to your plugin directory (typically "C:\Program +Files\vim\vimfiles\plugin"). + +See the |vimacs-installation| topic in the main Vimacs help file for full +information. + + *vimacs-unix-quickstart* + +Firstly, you'll need Vim 6 installed. Vimacs won't work on older +versions. So, make sure you're running Vim 6: +> + vim --version | head -1 +< +The reply you get should say "VIM - Vi IMproved 6.0" (or higher). + +To install Vimacs, execute the following commands in your shell: +> + mkdir -p $HOME/.vim/doc + mkdir -p $HOME/.vim/plugin + cp -R doc plugin $HOME/.vim +< +Run the following command in a shell to make Vim rescan your documentation +directory: +> + vim --cmd "helptags $HOME/.vim/doc" --cmd "q" +< +That's it. If you're a Vim user, Emacs key mappings will now be enabled +whenever you're in Vim's Insert mode. If you're an Emacs user and have +never used Vim before, you probably want to always keep Vim in Insert +Mode, and use Select mode rather than Visual mode: +> + echo 'set insertmode' >> $HOME/.vimrc + echo 'set selectmode += cmd' >> $HOME/.vimrc +< +Vimacs is now completely installed. However ... + +If you want to have a more sophisticated setup, where you can type a +different command (such as 'vimacs') to always start in Insert mode, but +typing 'vim' starts Vim in Normal mode, read on. + +Put the shell script located at plugin/vimacs/vim somewhere in your $PATH, +and symlink it to the appropriate files. Change the $myscriptdir variable +below to whatever directory you use for scripts; if you don't currently +have one, you'll need to mkdir the directory and add it to your $PATH. +(Consult your local Unix expert on adding directories to your $PATH if you +don't know how to do this.) +> + myscriptdir=$HOME/bin + mkdir -p $myscriptdir + cp plugin/vimacs/vim $myscriptdir + chmod 755 $myscriptdir/vim + ln -s $myscriptdir/vim $myscriptdir/gvim + ln -s $myscriptdir/vim $myscriptdir/vm + ln -s $myscriptdir/vim $myscriptdir/gvm + ln -s $myscriptdir/vim $myscriptdir/vimacs + ln -s $myscriptdir/vim $myscriptdir/gvimacs + myscriptdir= +< +For more detailed installation instructions, see |vimacs-installation| in +the Vimacs help file. + + *vimacs-installation* + +Vimacs is designed for Vim 6 only; if you are running Vim 5.x, please upgrade +to Vim 6. There is no intention to `port' Vimacs to run on older versions of +Vim. + +Vimacs is a Vim 6 plugin; simply drop it into any Vim plugin directory, such +as "$HOME/.vim/plugin" on a Unix system, or "C:\Program +Files\vim\vimfiles\plugin" on Windows. You may also want to place this +documentation (the "vimacs.txt" file) in a Vim documentation directory; e.g. +"$HOME/.vim/doc", or "C:\Program Files\vim\vimfiles\doc". You should run the +|:helptags| command on the documentation directory after installation; see +|add-local-help| for more information. + +Vimacs does not initially start in Insert mode, to be consistent with what Vim +users normally expect. If you an Emacs user, you may wish to put +> + set insertmode + set selectmode += cmd +< +in your |.vimrc| startup file, so that you use a more Emacs-like selection +mode, as well as being in Insert mode straight away. + +Please read the |vimacs-unix| section if you are running Vimacs on a Unix +systems, and |vimacs-non-unix| if you are installing Vimacs on other operating +systems (e.g. Windows, Macintosh). + + *vimacs-unix* + *vimacs-unix-flow-control* + +Like Emacs, Vimacs uses the <C-s> key to search, and <C-q> to insert the next +character literally ('quoted-insert' in Emacs-speak; normally <C-v> in Vim). + +In many Unix terminals, <C-s> and <C-q> are flow control characters used to +stop and start terminal output, which means that Vim will look like it has +frozen when you press <C-s>. (This problem only affects the Unix console +version of Vim; gvim is not affected.) Emacs modifies your terminal's +settings, so it doesn't normally have this problem. Vim, however, does not +modify terminal settings, and thus you need to explicitly turn off flow +control. + +To solve the <C-s>/<C-q> flow control problem, you need to turn off XON/XOFF +flow control processing for your tty. The stty(1) command will do this: +> + $ stty -ixon -ixoff +< +You may wish to make a shell script somewhere in your path to do this +automatically, e.g. +> + $ cat << END > $HOME/bin/vim + #!/bin/sh + + # turn off flow control if we're a terminal + [ -t 0 ] && stty -ixon -ixoff + + exec /usr/bin/vim "$@" + END +< +For a more in-depth example of using a wrapper shell script to initialise Vim +(and Vimacs) to your choosing, see |vimacs-unix-progname| + + *vimacs-unix-meta-sends-esc* + +This applies to the console version of Vim only (i.e. not gvim). On many Unix +terminals, the Meta key typically generates an <Esc> followed by the +combination key; for example, pressing <M-x> generates the key sequences +<Esc>x. However, you may have a terminal emulator that sends <M-x> as an 'x' +with the 8th bit set, rather than as <Esc>x. Most Unix terminal emulators, +(including xterm) have an option to do this, but do not enable it by default. +If your terminal sends <M-x> as x with the 8th bit set, set the +|'g:VM_UnixConsoleRemapEsc'| option to 1. + +NOTE: This is not a Vimacs-specific problem; Vim also has to work around this +issue, with options like 'esckeys', 'timeout' and 'ttimeout'. + + *vimacs-unix-progname* + +Via the magic of shell scripts (and symlinks), it's possible to change the +default behaviour of Vimacs, depending on what you typed to run it. For +example: + + Command name Load Vimacs? Start in/use Insert mode? + + (g)vim yes no/no + (g)vimacs yes yes/yes + (g)vm[1] yes yes/yes + + 1. `vm' is an abbreviation for `ViMacs' + +To do the above, firstly, make a directory to store programs and scripts in, +and add that directory to your $PATH: +> + $ mkdir $HOME/bin + $ export PATH="$HOME/bin:$PATH" +< +Save the following shell script in the above directory as "vim". For +convenience, this script is also available in the plugin/vimacs directory; +simply copy it to $HOME/bin/vim. +> + #!/bin/sh + + # real path to vim + VIM_CMD=${VIM_CMD:-/usr/bin/vim} + GVIM_CMD=${GVIM_CMD:-/usr/bin/gvim} + + # what program name was i run as? + argv0=`basename $0` + + # turn off software flow control so <C-s> and <C-q> will work. you can add + # extra stty settings by setting $VIM_STTY (i use 'erase ^?' here) + [ -t 0 ] && stty -ixon -ixoff $VIM_STTY + + case "$argv0" in + g*) + VIM_CMD="$GVIM_CMD" + ;; + esac + + case "$argv0" in + *diff) + VIM_CMD="${VIM_CMD}diff" + ;; + esac + + case "$argv0" in + # This case has to come before *vim*, since *vim* will match *vimacs* + *vm*|*vimacs*) + exec $VIM_CMD --cmd "let g:VM_Enabled = 1" \ + --cmd "set insertmode" \ + "$@" + ;; + *vim*) + exec $VIM_CMD --cmd "let g:VM_Enabled = 1" \ + "$@" + ;; + esac + +< +Now, make your vim command executable: +> + chmod a+x $HOME/bin/vim +< +Finally, make symlinks from the `vim' shell script to the other commands +you'll be running it as: +> + ln -s $HOME/bin/vim $HOME/bin/gvim + ln -s $HOME/bin/vim $HOME/bin/vm + ln -s $HOME/bin/vim $HOME/bin/gvm + ln -s $HOME/bin/vim $HOME/bin/vimacs + ln -s $HOME/bin/vim $HOME/bin/gvimacs + ln -s $HOME/bin/vim $HOME/bin/vimdiff + ln -s $HOME/bin/vim $HOME/bin/gvimdiff + ln -s $HOME/bin/vim $HOME/bin/vmdiff + ln -s $HOME/bin/vim $HOME/bin/gvmdiff + ln -s $HOME/bin/vim $HOME/bin/vimacsdiff + ln -s $HOME/bin/vim $HOME/bin/gvimacsdiff +< +Now, after all that hard work, you can give Vim different personalities +just by running a different command name! + + *vimacs-non-unix* + +There are no special notes for running Vimacs on non-Unix operating systems. + + +============================================================================== +*Vimacs.03* Vimacs Options + + *vimacs-options* + +Vimacs can change its behaviour to your liking by setting variables in your +Vim startup file ("$HOME/.vimrc" in Unix; "C:\Program Files\vim\_vimrc" in +Windows; see |.vimrc| for more information). You can set variables using +|:let| command, e.g. + +> + let g:VM_CmdHeightAdj = 0 + let g:VM_NormalMetaXRemap = 1 +< + + *vimacs-option-list* + + *'g:VM_CmdHeightAdj'* + +'g:VM_CmdHeightAdj' number (default 1) + + Adjust the current 'cmdheight' setting. Vimacs will normally increase + the 'cmdheight' option to 2 if it's less than 2 and the 'showmode' + option is set, because the mode message will often obscure the most + recent message. + + *'g:VM_Dev'* + +'g:VM_Dev' number (default 0) + + Turn on "developer mode"; forces overwriting of commands, functions + and maps which already exist when Vimacs is loaded. Vimacs will not + typically load its own commands, functions or mappings if one + currently exist. + + *'g:VM_Enabled'* + +'g:VM_Enabled' number (default 1) + + Don't load Vimacs at all. May be useful in your startup script, e.g. + for Unix people who use the "less" Vim script: +> + if v:progname == "less" + source /usr/share/doc/vim/macros/less.vim + let g:VM_Enabled = 0 + endif +< + *'g:VM_F10Menu'* + +'g:VM_F10Menu' number (default 1) + + Enable the <F10> key to pull down the menus which are normally only + available in the GUI version of Vim. (GNU Emacs uses F10 for this + purpose.) + + *'g:VM_NormalMetaXRemap'* + +'g:VM_NormalMetaXRemap' number (default 1) + + In Normal mode, map the <M-x> key to go to Command mode (i.e. it has + the same effect as typing |:|). + + NOTE: <M-x> is always enabled in Insert mode; this option affects + <M-x> in Normal mode only. + + *'g:VM_SearchRepeatHighlight'* + +'g:VM_SearchRepeatHighlight' number (default 0) + + Highlight all occurances of your current search on the screen when you + repeat a search with <C-s> or <C-r>. This effectively turns on the + 'hls' option while you're searching. + + *'g:VM_SingleEscToNormal'* + +'g:VM_SingleEscToNormal' number (default 1) + + Only need to press the <Esc> once in Insert mode to return to Normal + mode. If this option is off, you need to press <Esc><Esc> to return + to Normal mode; see |vimacs-unix-esc-key| for rationale. + + *'g:VM_UnixConsoleMetaSendsEsc'* + +'g:VM_UnixConsoleMetaSendsEsc' number (default 1) + + Remap <Esc>x to become <M-x> (where x is any keypress); this is needed + for Unix terminals which send a Meta key as an Escape sequence, rather + than sending the keypress with the 8th bit on. Most Unix terminals + seem to do that these days. + + *vimacs-vim-options* + +Vimacs's operation is heavily influenced by a few of Vim's options. You can +set them in the usual manner (with the |:set| command). + + *'vimacs-backspace'* +'backspace' 'bs' string (default "") + global + {not in Vi} + + Vimacs will automatically set this option, since pressing <BS> in + Emacs typically backspaces over anything and everything :). + + *'vimacs-cedit'* +'cedit' string (Vi default: "", Vim default: CTRL-F) + global + {not in Vi} + {not available when compiled without the |+vertsplit| + feature} + + Currently, Vimacs relies on the 'cedit' option to be CTRL-F. This is + regarded as a bug, and will hopefully be fixed in the future. + + *'vimacs-esckeys'* +'esckeys' 'ek' boolean (Vim default: on, Vi default: off) + global + {not in Vi} + + Vimacs automatically sets this option. (Note that strictly speaking, + this may not be necessary ... please send me a patch if you can't live + with this behaviour). + + *'vimacs-hidden'* +'hidden' 'hid' boolean (default off) + global + {not in Vi} + + Vimacs will automatically set this option; Emacs always "hidden + buffers". + + *'vimacs-incsearch'* +'incsearch' 'is' boolean (default off) + global + {not in Vi} + {not available when compiled without the + |+extra_search| feature} + + CTRL-S (incremental search forward) and CTRL-R (incremental search + backward) will override Vim's 'incsearch' option; they will always do + an incremental search. + + *'vimacs-insertmode'* + +'insertmode' 'im' boolean (default off) + global + {not in Vi} + + Setting the 'insertmode' option makes Insert mode the default mode, + and effectively makes Vim modeless. This is important for Vimacs + since it allows for a much more complete emulation of Emacs. (See + Vim's 'insertmode' help entry for more detail.) + + When 'insertmode' is set and Vimacs is active, the CTRL-O and CTRL-L + keys change to the Emacs behaviour, and <Esc> still escapes back to + normal mode. + + See also: the |'g:VM_SingleEscToNormal'| option and + |vimacs-unix-esc-key|. + + *'vimacs-keymodel'* +'keymodel' 'km' string (default "") + global + {not in Vi} + + Vimacs will automatically manipulate this option to ensure that + marking blocks using <C-Space> (and the <Shift> key, if the "key" word + is included in 'selectmode') works as intended. + + *'vimacs-selection'* +'selection' 'sel' string (default "inclusive") + global + {not in Vi} + + Vimacs will change the default value of this option to "exclusive", + since it's very much more Emacs-like in its behaviour. + + *'vimacs-selectmode'* +'selectmode' 'slm' string (default "") + global + {not in Vi} + + If the "cmd" word is in the 'selectmode' option, Vimacs will use + Select mode when marking a block using <C-Space>. + + *'vimacs-timeout'* +'timeout' 'to' boolean (default on) + global + *'vimacs-ttimeout'* +'ttimeout' boolean (default off) + global + {not in Vi} + + Vimacs will automatically set these options for optimal behaviour, + depending on whether the 'insertmode' and |'g:VM_SingleEscToNormal'| + options are set, and whether you're running in a UNIX console or not. + + This is done for safety reasons; it's quite easy to screw up Vim if + use <Meta> key mappings extensively and you're running in a UNIX + console. + + *'vimacs-whichwrap'* +'whichwrap' 'ww' string (Vim default: "b,s", Vi default: "") + global + {not in Vi} + + Vimacs will automatically manipulate this option to obtain Emacs-like + behaviour. (If you're that pedantic about this option, why on earth + are you using Vimacs in the first place? Send me a patch, send me + a patch ...) + + *'vimacs-wildcharm'* +'wildcharm' 'wcm' number (default: none (0)) + global + {not in Vi} + + Vimacs automatically manipulates this option. If you don't like that, + send me a patch! + + *'vimacs-winaltkeys'* +'winaltkeys' 'wak' string (default "menu") + global + {not in Vi} + {only used in Win32, Motif, GTK and Photon GUI} + + Vimacs will automatically unset this option, since it interferes with + remapping the <Alt>/<Meta> keys. + + +============================================================================== +*Vimacs.04* Changes for Emacs users + +Nothing written yet. Send patches or hate mail to the |vimacs-author| :). + + +============================================================================== +*Vimacs.05* Changes for Vim users + +Nothing written yet. Send patches or hate mail to the |vimacs-author| :). + + +============================================================================== +*Vimacs.06* Key Map + +Emacs has many keys, and this section of the documentation is currently +incomplete. If you want to help complete this section, please send me +patches! + +Other than looking at the vimacs.vim script file itself, a suggested way of +learning the Emacs key set is from Emacs itself (and Emacs clones such as jed +and jmacs). Press <C-h>b in GNU Emacs or XEmacs to get a list of key +bindings. + +Files and Buffers + *vimacs:CTRL-X_CTRL-F* + +CTRL-X CTRL-F Loads a new file into the current window; see |:edit|. + + *vimacs:CTRL-X_CTRL-S* + +CTRL-X CTRL-S Saves the current buffer to disk, but only if's been + modified. See |:update|. + + *vimacs:CTRL-X_s* + +CTRL-X s Saves all changes buffers to disk; see |:wa|. + + *vimacs:CTRL-X_i* + +CTRL-X i Inserts a file into the current buffer. See |:read|. + + *vimacs:CTRL-X_CTRL-W* + +CTRL-X CTRL-W Saves the current buffer to disk as a different filename. + See |:write_f|. + + +Error Recovery + *vimacs:CTRL-_* + *vimacs:CTRL-X_CTRL_U* + +CTRL-_ +CTRL-X CTRL-U Undo your last action. + + +============================================================================== +*Vimacs.07* Design Comments + +This is a collection of anecdotes, design issues and ramblings that I came +across with when writing Vimacs. Vi was certainly never designed to be used +in a modeless way, and Vimacs pushes Vim's modeless functionality to its +limits, so I expected to encounter some bugs^H^H^H^Hundocumented features in +writing Vimacs. Somewhat surprisingly, there seems to be only a few small +problems in Vim which limit Vimacs' Emacs emulation capabilities, and these +tend to be philosophical or conceptual differences between the two editors +rather than being actual bugs. (Quite amazing, considering that the two +editors, at first glance, seem so completely different.) + + *vim-emacs-similarity* + +Many Emacs features actually have a direct 1:1 mapping to Vim commands; for +example, Emacs' |vimacs:META-A| command is exactly the same as Vim's Command +mode |(| command. Thus, many of the Vimacs commands were very simple to +imlpement. + + *cursor-at-eol* + +One of the bigger complications that arose in Vimacs is that the cursor +position is conceptually different between Vim's various modes. In Insert +mode, Vim's cursor is treated as being _between_ two characters, not "on" a +character. + +In Normal mode, the cursor is treated as being "on" a character, and not +between the characters. (If you use gvim, you can see that the cursor is a +normal block shape in Command mode, but the shape changes to a thin vertical +line in Insert Mode.) This means that switching from Insert mode to Normal +mode can cause problems if you're at the end of a line. The cursor seems to +'jump back' a character, because the cursor is _after_ the last character in +Insert mode, and when you revert to Normal mode, the cursor cannot be past the +end of the line, so it goes to the last character on the line. Going back to +Insert Mode from there therefore puts your cursor one character back from the +end of the line, rather than being at the end of the line. + +You can use the |a| command instead of the |i| to solve this problem, but then +you lose precision at the beginning of the line, rather than at the end. It's +not a particularly easy problem to solve; I hope that Bram Moolenar provides +an option to change this behaviour in the future. + + *remapping-CTRL_O* + +In Emacs, the <C-o> key is mapped to `open-line'; in Vim, <C-o> executes one +command in Normal mode, and then returns to Insert mode (see |i_CTRL-O|). +This poses a problem: internally, Vim uses <C-o> for many commands, and +remapping it to `open-line' causes problems. Commands such as |:amenu| use +<C-o> to return to Normal mode from Insert mode, and thus remapping <C-o> can +lead to interesting problems. + +There will be an option in the future to prevent <C-o> from being remapped at +all; of course, this means that you can't remap the <C-o> to a function at +all, which isn't ideal. + +The `proper' way to fix this would be for Vim to limit the <C-o> mapping to +Insert mode only, and fix the other commands (such as |:amenu|) so that they +always use the unmapped version of <C-o>. + + *vimacs-quotes* + +Conrad Parker: "Dude, I gotta get you doing some serious hacking +projects" + +Erik de Castro Lopo: "Oh, so you're the insane guy that K was talking +about" + +Wichert Akkerman: "Gross. Horror. Vim abuse. Mind if I include this as +an example in the Debian vim packages? :)" + +(add yours here if you like :) + + +============================================================================== +*Vimacs.08* Known Problems + + *vimacs-and-lazyredraw* + +Vim seems to be a bit buggy and occasionally doesn't redraw the screen +properly when it should, if you have the 'lazyredraw' option set. Please turn +it off if you notice redraw glitches. + +This is a problem in Vim, not Vimacs, but Vimacs seems to exarcerbate the +problem. + + *vimacs-meta-d-at-eol* + +Pressing <M-d> at the end of the line (EOL) doesn't delete the word. + + *vimacs-unix-esc-key* + +On Unix console systems (i.e. not gvim), you may get a warning when you press +<Esc> twice telling you to use the <F1> or <C-z> keys to return to Normal +mode. i.e. You can't do a simple <Esc> press to return to Normal mode, as you +normally do in Vi(m). In a nutshell, this is because of Vim's 'insertmode' +option. + +When 'insertmode' is turned on, Vim normally remaps the <Esc> key so that +novice users don't find themselves in Vim's Normal mode if they accidently hit +<Esc>. Remember that 'insertmode' is originally designed for |evim|, which is +a point-and-click editor in the style of Windows Notepad. You don't want +users winding up in Normal mode if they want something as simple as Notepad! + +Due to the way that Unix terminals were originally designed, if: + + 1. you are running Vimacs in a Unix console, + 2. have |g:VM_UseInsertMode| (and the 'insertmode' option) set + 3. have |g:VM_UnixConsoleRemapEsc| set + 4. have |g:VM_SingleEscToNormal| set + +when Vim receives an <Esc> key, it is completely impossible to determine +whether it is part of a Meta key mapping (such as <M-f>) or the single <Esc> +key press that you did to get out of Insert mode. The simple solution to this +is: either get used to the <F1> or <C-z> keys to get back to Insert mode, or +change one of the above g:VM_ settings. There's no way around it, sorry; this +is a limitation in the way that Vim and Unix consoles were designed. + +Another way to solve the problem is to always make the user press <Esc> twice +to get back to Normal mode. Vim will interpret an <Esc><Esc> in an +unambigious way, and therefore you will never have this problem. To do this, +turn off the |'g:VM_SingleEscToNormal'| option. The obvious problem with this +solution is that you need to change your habits, so that you must press +<Esc><Esc> to return to Normal mode, rather than a simple <Esc>. + +Deep Vim and Unix hackers may be interested to hear why this happens. Vim can +normally tell whether the <Esc> key is part of a Meta key sequence (such as +<Esc>f), by using its multitude of |:timeout|-related options. However, if +|:insertmode| is set (which it is if |g:VM_UseInsertMode| is set), Vim changes +the <Esc> key so that it no longer brings you out of Insert mode. To get +around this, we remap the <Esc> ourselves so that it does bring you out of +Insert mode. We can do this in an environment which has a completely +unambigious <Esc> key; i.e. an <Esc> is always an <Esc>. However, in the Unix +console, since many (most?) terminals send a <M-x> combo as <Esc>x, we must +change Vim's terminal settings to interpret a <Esc>x as <M-x>. However, now +there's no way for Vim to tell whether the first <Esc> is a single <Esc> by +itself, or part of a larger sequence like <Esc>x, because we have both the +<Esc> key remapped to <C-l> and the <Esc> key being part of a larger key +sequence. This unfortunate design flaw is therefore a limitation of both Vim +(because it changes the normal behaviour of <Esc>) and the Unix console +(because whoever designed the original terminals decided to put the real <Esc> +key on the keyboard, which should never have happened). Any suggestions to +fix this annoying situation would save me a lot of pain :). + + *vimacs-'cedit'* + +See the |'vimacs-cedit'| topic in the option summary for details. + + + +============================================================================== +*Vimacs.09* Revision History (ChangeLog) + + *vimacs-changelog* + + *vimacs-0.93* + +Made the thankyou (credits) list look a bit nicer :). + + *vimacs-0.92* + +<M-n> and <M-p> now cycle through the QuickFix list rather than perform the +next/previous search + +<M-d> at EOL now deletes the word at the start of the next line, +instead of the last character at the end of the current line + +<M-BS> on command line now deletes the word before the cursor + +<M-w> on command line copies the selection (to register) + +<C-y> on command line pastes the selection + +Indenting on <Tab> key moved to a tab-indent.vim + + *vimacs-0.91* + +Moved vi check to be much earlier in the script + +Rewrote <C-k>: it's (much) simpler now + +Updated Unix installation notes + +<C-Space> at EOL will now include the last character on the line + +Use Vim's 'keymodel' option instead of own g:VM_VisualMode variable + +Use Vim's 'selectmode' option instead of own g:VM_ShiftSel variable + + *vimacs-0.9* + +Added Piet Delport to THANKS section + +Wrote a function to initialise a variable to a default value, with Piet's help + +Added Barrie Stott to THANKS section + +Added navigation keys such as <M-f> to Operator Pending mode (actually done in +0.2, but I forgot to add it to the ChangeLog. Oops.) + +Automatically pop up list of buffers for <C-x>b + +Added <S-PageUp>, <S-PageDown>, <S-Home>, <S-End> to select region (for +g:VM_ShiftSel) + +Added commandline abbreviations for query_replace + +Added <M-x> to normal mode (yeah, I kept hitting <M-x> instead of just typing +a colon (':'); sad, innit? + +<C-M-s> is now remapped in Insert mode instead of Normal mode + +<M-%> (query-replace) and <C-M-%> (query-replace-regexp) now escape / +characters, so the s/// doesn't get messed up + +Remapped <Esc><Space> to <M-Space> (for UNIX terminals) + +<M-q> (fill-paragraph) now leaves cursor at fill point, thanks to the +very useful Mark() function stolen from foo.vim by Benji Fisher. + +Added <M-0> ... <M-9> bindings for quick escape into Normal mode + +Added <M-`> (that's Meta and a backtick) to return to Normal mode + +Added <F10> to pulldown the menus (in the GUI system), ala GNU Emacs + +Added VM_Enabled variable to allow users to not load Vimacs + +Properly fixed mapping of <Esc>x keys to <M-x> keys, using the :set +command rather than :map + +Added <C-x>r when in Visual mode to switch to Visual Block mode; this is +meant to (poorly) emulate Emacs' rectangle support. It'll almost +definitely be changed at a later date, because this isn't similar to how +Emacs works at all + +Changed <Silent> mappings to <silent> (see :help <silent>; it doesn't +mention that it's case-sensitive!) + +Made <C-s> and <C-r> search forward/backward from within a search prompt + +Added Hari Krishna Dara & Arun Easi to THANKS section + +Made <C-Space> be more Emacs-like by making Vim go into Select mode rather +than Visual mode. (This is now the default; set g:VM_VisualMode to 1 to +change it back to the old behaviour where <C-Space> triggers Visual mode.) + +Added g:VM_SearchRepeatHighlight option, which highlights the current item +you're searching for if you press <C-s> or <C-r> to search again + +Default for g:VM_AlwaysRemapEsc changed from 0 to 1, to maintain interface +consistency throughout all of vim's console/GUI versions + +Initial formal documentation (vimacs.txt: check it out!) + +Fixed <C-x><C-o> to leave one line + +Added <C-x><C-q> (toggle-readonly) + +Added <C-x><C-r> (find-file-read-only) + +Added <C-x><C-u> (upcase-region) + +<C-z> in Insert mode now jumps back to Command mode; to suspend Vimacs +from Insert mode, press <C-z> twice. Note that you'll be in Normal mode +when you resume + +Fixed <M-Space> highlighting one less character than the current word + +Changed all functions to have be internal to the script (i.e. use <SID> +mappings) + +Implemented primitive yank-pop (<M-y>) support, but hey, it does work ... + +Added Charles E. Campbell to THANKS section + +<C-l> now actually redraws as well as recentering cursor + +<C-Up> and <C-Down> move by paragraphs + +<C-M-v> scrolls other window down. + +Integration with Jeff Lanzarotta's BufExplorer plugin for <C-x>b. Vimacs will +launch BufExplorer when you press <C-x>b if you have it. BufExplorer will use +a default sort order of MRU, since this how it works in Emacs. You will need +BufExplorer 6.0.16 for this to work properly, otherwise ':insertmode' will +screw things up ... + +Added <C-M-/>, <C-M-x> and <C-]>: All map to Vim's |insert_expand| command + +Added <C-k> to |Cmdline-mode| + +<C-^> inserts the character above the cursor (|i_CTRL-Y|) + + +============================================================================== +*Vimacs.10* In the Future ... (TODO list) + + *vimacs-todo* + +Replace "set <M-x>=^[x" with a loop; ASCII range 7 to 127 + +Implement haskell-mode and <C-c><C-l> with vimsh for Manuel :) + +BufExplorer used for bdelete etc. commands? + +Don't overwrite maps. Err. Will be hard ... + +GotoLine should accept a range or argument + +Autoconfiscate ... is that overkill?! + +Make <C-x>b silent (for :BufExplorer?) + +C-x n p + +Emacs-like status line? + +"Mark stack" ala <C-Space> in Emacs, and <C-u><C-Space> to jump to last +marks + +Add Mac notes to documentation. + +Jed keys: <C-j> = newline but no indent, <C-x><C-l> = ?, <C-x><C-o> = +leave one line, <C-x><C-v> = find-alternate-file, + +Emacs folding keys + +Fix <C-M-s> and <C-s> to turn on regexps + +Bind <S-Del>, <C-Ins> and <S-Ins>? + +Follow mode (http://www.csd.uu.se/~andersl/follow.shtml). Maybe as a +separate script; e.g. vimacs-follow.vim + +Argument (M-1/M-2/etc) and universal argument keys. Ahahaha, good +luck to me ... (hmm, v:count1 looks promising!) + +mapcheck() everything -- oooh boy + +Port the rest of XEmacs' 419830213 bindings + +Zippy, Doctor, kitchen sink + + +============================================================================== +*Vimacs.11* Contact, Help, Credits + + *vimacs-author* + +The author of Vimacs is Andre Pang <ozone@vimacs.cx>. + + *vimacs-webpage* + +The official Vimacs webpage is at http://www.vimacs.cx/. It is also regularly +uplaoded to the Vim Online website, at http://vim.sourceforge.net/. + + *vimacs-thanks* + +Many people have inspired me to work on Vimacs. (This is actually a good +thing. Really ...) The following are a brief list of people who have been +particularly helpful: + + Manuel Chakravarty ~ + For introducing me to Emacs, otherwise I'd never be writing an + alternative for it ;) + + Piet Delport ~ + Vim scripting help + + Benji Fisher ~ + Vim scripting help, and the wonderful foo.vim script + + Barrie Stott ~ + Testing and feedback on early releases + + Hari Krishna Dara, Arun Easi ~ + Inspiration on how to map <C-s> and <C-r> to repeat your current search + + Charles E. Campbell ~ + Writing a document on how to write Vim plugins, convincing me use <SID>s + and <Plug>s for Vimacs's internal functions, Vim scripting help + + The Vim, GNU Emacs, and XEmacs teams ~ + For absolutely amazing text editors! + + *vimacs-suggestions* + +Please, please ask for key mappings which you consider to be fundamental +in Emacs! This is a serious project, it's not another Vigor :). I'm not +a veteran Emacs user by any means, so there are potentially scores of +keys which many consider to be fundamental which I am missing. Send me +a request (or even better, a patch!) if you feel like a favourite key +binding is missing, or if behaviour is incorrect. + + *vimacs-gpl2* + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + + +============================================================================== + vim:tw=78:sts=0:ts=8:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl: + |