diff options
author | Jason Downs <downsj@cvs.openbsd.org> | 1996-09-21 06:23:56 +0000 |
---|---|---|
committer | Jason Downs <downsj@cvs.openbsd.org> | 1996-09-21 06:23:56 +0000 |
commit | e8e01073071369d33ab4cf61be05bebe5a65566e (patch) | |
tree | 2c29b23bfb933e0fa40619f7d1fae430ff2c247e /usr.bin/vim/doc | |
parent | 584e4bbf452da2934dbaf4b9dc09bd131a1d4cd7 (diff) |
update to vim 4.4beta
Diffstat (limited to 'usr.bin/vim/doc')
-rw-r--r-- | usr.bin/vim/doc/doctags.c | 13 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_40.txt | 6 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_ami.txt | 2 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_arch.txt | 2 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_diff.txt | 4 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_digr.txt | 2 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_dos.txt | 254 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_gui.txt | 29 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_help.txt | 15 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_idx.txt | 5 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_kcc.txt | 48 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_menu.txt | 3 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_mint.txt | 2 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_os2.txt | 90 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_ref.txt | 564 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_rlh.txt | 2 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_tags | 66 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_tips.txt | 22 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_unix.txt | 2 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_w32.txt | 216 | ||||
-rw-r--r-- | usr.bin/vim/doc/vim_win.txt | 11 |
21 files changed, 957 insertions, 401 deletions
diff --git a/usr.bin/vim/doc/doctags.c b/usr.bin/vim/doc/doctags.c index 64d436f0f15..c71d1cc5a7e 100644 --- a/usr.bin/vim/doc/doctags.c +++ b/usr.bin/vim/doc/doctags.c @@ -1,4 +1,4 @@ -/* $OpenBSD: doctags.c,v 1.1 1996/09/07 21:40:30 downsj Exp $ */ +/* $OpenBSD: doctags.c,v 1.2 1996/09/21 06:23:31 downsj Exp $ */ /* vim:set ts=4 sw=4: * this program makes a tags file for vim_ref.txt * @@ -54,7 +54,16 @@ main(argc, argv) characters */ { *p2 = '\0'; - printf("%s\t%s\t/\\*%s\\*\n", p1 + 1, argv[0], p1 + 1); + ++p1; + printf("%s\t%s\t/\\*", p1, argv[0]); + while (*p1) + { + if (*p1 == '\\') /* insert backslash */ + putchar('\\'); + putchar(*p1); + ++p1; + } + printf("\\*\n"); p2 = strchr(p2 + 1, '*'); } } diff --git a/usr.bin/vim/doc/vim_40.txt b/usr.bin/vim/doc/vim_40.txt index 720430400f1..6d4e1ba7a4c 100644 --- a/usr.bin/vim/doc/vim_40.txt +++ b/usr.bin/vim/doc/vim_40.txt @@ -1,4 +1,4 @@ -*vim_40.txt* For Vim version 4.2. Last modification: 1996 June 16 +*vim_40.txt* For Vim version 4.4. Last modification: 1996 Sep 1 Welcome to Vim Version 4.0! @@ -1406,6 +1406,10 @@ Added list of options that are enabled/disabled at compile time to ":version" command (+GUI -digraphs -eindent, etc.). For Unix, add a line to the ":version" command to show how it was compiled. |:version| +Added ":if" and ":endif" commands. Everything in between them is ignored. +This is just for being able to add future commands to vimrc files in a +backwards compatible way. |:if| + Made CTRL-N and CTRL-P for command-line completion line cyclic. |c_CTRL-N| "<cword>" in the command line where a file name is expected is expanded to diff --git a/usr.bin/vim/doc/vim_ami.txt b/usr.bin/vim/doc/vim_ami.txt index 6366564c2a5..2ba3374d7ca 100644 --- a/usr.bin/vim/doc/vim_ami.txt +++ b/usr.bin/vim/doc/vim_ami.txt @@ -1,4 +1,4 @@ -*vim_ami.txt* For Vim version 4.2. Last modification: 1996 Apr 19 +*vim_ami.txt* For Vim version 4.4. Last modification: 1996 Apr 19 This file contains the particularities for the Amiga version of Vim. diff --git a/usr.bin/vim/doc/vim_arch.txt b/usr.bin/vim/doc/vim_arch.txt index b5d40396146..a7fb9fb3b6f 100644 --- a/usr.bin/vim/doc/vim_arch.txt +++ b/usr.bin/vim/doc/vim_arch.txt @@ -1,4 +1,4 @@ -*vim_arch.txt* For Vim version 4.2. Last modification: 1996 Mar 6 +*vim_arch.txt* For Vim version 4.4. Last modification: 1996 Mar 6 This file contains the particularities for the Archimedes version of Vim. diff --git a/usr.bin/vim/doc/vim_diff.txt b/usr.bin/vim/doc/vim_diff.txt index 0b3ac232ed3..f9f0553718d 100644 --- a/usr.bin/vim/doc/vim_diff.txt +++ b/usr.bin/vim/doc/vim_diff.txt @@ -1,4 +1,4 @@ -*vim_diff.txt* For Vim version 4.2. Last modification: 1996 June 16 +*vim_diff.txt* For Vim version 4.4. Last modification: 1996 July 18 This is a summary of the differences between VIM and vi. It is not complete. see also |vim_ref.txt|, look for comments in {}, like "{not in Vi}". @@ -700,7 +700,7 @@ the "-n" option. Use the 'directory' option for placing the .swp file somewhere else. The 'shortname' (sn) option, when set, tells Vim that ".bak" and ".swp" -filenames are to be MS-DOS-like: 8 characters plus 3 for extention. This +filenames are to be MS-DOS-like: 8 characters plus 3 for extension. This should be used on messydos or crossdos filesystems on the Amiga. If this option is off, Vim tries to guess if MS-DOS filename restrictions are effective. diff --git a/usr.bin/vim/doc/vim_digr.txt b/usr.bin/vim/doc/vim_digr.txt index 5635e49dbe2..a58d7723559 100644 --- a/usr.bin/vim/doc/vim_digr.txt +++ b/usr.bin/vim/doc/vim_digr.txt @@ -1,4 +1,4 @@ -*vim_digr.txt* For Vim version 4.2. Last modification: 1996 June 8 +*vim_digr.txt* For Vim version 4.4. Last modification: 1996 June 8 These are the default digraph characters for Vim. diff --git a/usr.bin/vim/doc/vim_dos.txt b/usr.bin/vim/doc/vim_dos.txt index 6e1ba5b8bcd..5a0860839ba 100644 --- a/usr.bin/vim/doc/vim_dos.txt +++ b/usr.bin/vim/doc/vim_dos.txt @@ -1,15 +1,21 @@ -*vim_dos.txt* For Vim version 4.2. Last modification: 1996 June 13 +*vim_dos.txt* For Vim version 4.4. Last modification: 1996 Aug 17 This file contains the particularities for the MS-DOS version of Vim. + +THREE VERSIONS FOR MS-DOS + There are Three versions of Vim that can be used with MS-DOS machines: 16-bit version Can be used on any MS-DOS system, only uses up to 640 Kbyte of memory. Also runs on OS/2, Windows 95, and NT. + Recommended for use on pre-386 machines. 32-bit version Requires 386 processor and a DPMI driver, uses all available memory. Supports long file names where available. + Recommended for MS-DOS, Windows 3.1 and Windows 95. Win32 version Requires Windows 95 or Windows NT, uses all available - memory, supports long file names, etc. See |vim_w32.txt| + memory, supports long file names, etc. Has some problems on + Windows 95. Recommended for Windows NT. See |vim_w32.txt| It is recommended to use the 32-bit or Win32 version. Although the 16-bit version is able to edit very big files, it quickly runs out of memory when @@ -23,7 +29,12 @@ run already. If you get the message "No DPMI", you need to install a DPMI driver. Such a driver is included with the executable. The latest version of "CWSDPMI.ZIP" can be obtained from: "ftp.neosoft.com:pub/users/s/sandmann". -Known problems: +If the 32-bit DOS version is run on Windows 95 or Windows NT, it can use long +filenames, as can the Win32 version. + + +KNOWN PROBLEMS + - When using smartdrive (MS-DOS 6.x) with write-behind caching, it is possible that Vim will try to create a swap file on a read-only file system (e.g. write protected floppy). You will then be given the message @@ -35,8 +46,45 @@ Known problems: - The 16 bits MS-DOS version can only have about 10 files open (in a window or hidden) at one time. With more files you will get error messages when trying to read or write a file, and for filter commands. -- The 32 bits MS-DOS version runs out of file descriptors when using a command - like ":r!ls"; Vim crashes after about five to twelve tries. +- The 32 bit version can work with long filenames. When doing filename + completion, matches for the short filename will also be found. But this + will result in the corresponding long filename. For example, if you have + the long file name "this_is_a_test" with the short filename "this_i~1", the + command ":e *1" will start editing "this_is_a_test". +- When using the 32 bit version and you run into problems with DPMI support, + check if there is a program in your config.sys that eats resources. One + program known to cause this problem is "netx", which says "NetWare v. 3.26 + Workstation shell". Replace it with version 3.32 to fix the problem. + + +LOCATION OF DOCUMENTATION and VIMRC FILE + +You should set the environment variable "VIM" to the directory where the Vim +documentation files are. If "VIM" is used but not defined, "HOME" is tried +too. + +If the HOME environment variable is not set, the value "C:/" is used as a +default. + +The default help filename is "$VIM\vim_help.txt". If the environment variable +$VIM is not defined or the file is not found, the DOS search path is used to +search for the file "vim_help.txt". If you do not want to put "vim_help.txt" +in your search path, use the command ":set helpfile=pathname" to tell Vim +where the help file is. |'helpfile'| + +Vim will look for initializations in eight places. The first that is found +is used and the others are ignored. The order is: + - The environment variable VIMINIT + - The file "$VIM/_vimrc" + - The file "$HOME/_vimrc" + - The file "$VIM/.vimrc" + - The file "$HOME/.vimrc" + - The environment variable EXINIT + - The file "$VIM/_exrc" + - The file "$HOME/_exrc" + + +USING BACKSLASHES Using backslashes in file names can be a problem. Vi halves the number of backslashes for some commands. Vim is a bit more tolerant and backslashes @@ -46,13 +94,15 @@ etc.), it is removed. Use slashes to avoid problems: ":e c:/foo/bar" works fine. Vim will replace the slashes with backslashes internally, to avoid problems with some MS-DOS programs. + +SCREEN OUTPUT AND COLORS + The default output method for the screen is to use bios calls. This will work right away on most systems. You do not need ansi.sys. You can use ":mode" to set the current screen mode. See vim_ref.txt, section 20.3 |:mode|. You can set the color used in five modes with nine termcap options. Which of -the five modes is used for which action depends on the 'highlight' ('hl') -option. See vim_ref.txt |'highlight'|. +the five modes is used for which action depends on the |'highlight'| option. ":set t_mr=^V^[\|xxm" start of invert mode ":set t_md=^V^[\|xxm" start of bold mode @@ -69,33 +119,60 @@ option. See vim_ref.txt |'highlight'|. ^V is CTRL-V ^[ is <Esc> -xx must be replaced with a decimal code: The foreground color number and - background color number added together: +xx must be replaced with a decimal code, which is the foreground color number + and background color number added together: COLOR FOREGROUND BACKGROUND -black 0 0 -blue 1 16 -green 2 32 -cyan 3 48 -red 4 64 -magenta 5 80 -brown 6 96 -lighgray 7 112 -darkgray 8 -lightblue 9 -lightgreen 10 -lighcyan 11 -lightred 12 -lighmagenta 13 -yellow 14 -white 15 -blink 128 - -When you use 0, the color is reset to the one used when you started Vim. This -is the default for t_me. The default for t_mr is black on grey, 0 + 112 = 112. -The default for t_md is white on cyan, 15 + 48 = 63. The default for t_so is -white on blue, 15 + 16 = 31. These colors were chosen, because they also look -good when using an inverted display. But you can change them as you like. + black 0 0 + blue 1 16 + green 2 32 + cyan 3 48 + red 4 64 + magenta 5 80 + brown 6 96 + lighgray 7 112 + darkgray 8 128 * + lightblue 9 144 * + lightgreen 10 160 * + lighcyan 11 176 * + lightred 12 192 * + lightmagenta 13 208 * + yellow 14 224 * + white 15 240 * + +* Depending on the display mode, the color codes above 128 may not be + available, and code 128 will make the text blink. + +When you use 0, the color is reset to the one used when you started Vim. +This is the default for t_me. + +The defaults for the various highlight modes are: + t_mr 112 reverse mode: black text (0) on lightgray (112) + t_md 63 bold mode: white text (15) on cyan (48) + t_me 0 normal mode (revert to default) + + t_so 31 standout mode: white (15) text on blue (16) + t_se 0 standout mode end (revert to default) + + t_czh 225 italic mode: blue text (1) on yellow (224) + t_czr 0 italic mode end (revert to default) + + t_us 67 underline mode: cyan text (3) on red (64) + t_ue 0 underline mode end (revert to default) + +These colors were chosen because they also look good when using an inverted +display, but you can change them to your liking. + +Example: +:set t_mr=^V^[\|97m " start of invert mode: blue (1) on brown (96) +:set t_md=^V^[\|67m " start of bold mode: cyan (3) on red (64) +:set t_me=^V^[\|112m " back to normal mode: black (0) on light gray (112) + +:set t_so=^V^[\|37m " start of standout mode: magenta (5) on green (32) +:set t_se=^V^[\|112m " back to normal mode: black (0) on light gray (112) + + +SPECIAL TERMCAP CODES and NOT USING VIM ON THE PC CONSOLE The termcap codes that are translated into bios calls are: t_cl <Esc>|J clear screen @@ -123,17 +200,19 @@ If you want to use Vim on a terminal connected to a COM: port, reset the 'bioskey' option. Otherwise the commands will be read from the PC keyboard. CTRL-C and CTRL-P may not work correctly with 'bioskey' reset. + +TEXTMODE or NON-MS-DOS FILES + If the "tx" (textmode) option is set (which is the default), Vim will accept a single <NL> or a <CR><NL> pair for end-of-line. When writing a file, Vim will use <CR><NL>. Thus, if you edit a file and write it, <NL> is replaced -with <CR><NL>. If the "tx" option is not set, the single <NL> will be used +with <CR><NL>. If the "tx" option is not set, a single <NL> will be used for end-of-line. A <CR> will be shown as ^M. You can use Vim to replace <NL> with <CR><NL> by reading in any mode and writing in text mode (":se tx"). You can use Vim to replace <CR><NL> with <NL> by reading in text mode and writing in non-text mode (":se notx"). 'textmode' is set automatically when 'textauto' is on (which is the default), so you don't really have to -worry about what you are doing. - |'textmode'| |'textauto'| +worry about what you are doing. |'textmode'| |'textauto'| If you want to edit a script file or a binary file, you should reset the 'textmode' and 'textauto' options before loading the file. Script files and @@ -141,47 +220,47 @@ binary files may contain single <NL> characters which would be replaced with <CR><NL>. You can reset 'textmode' and 'textauto' automatically by starting Vim with the "-b" (binary) option. -You should set the environment variable "VIM" to the directory where the Vim -documentation files are. If "VIM" is used but not defined, "HOME" is tried -too. -If the HOME environment variable is not set, the value "C:/" is used as a -default. - -The default help filename is "$VIM\vim_help.txt". If the environment variable -$VIM is not defined or the file is not found, the DOS search path is used to -search for the file "vim_help.txt". If you do not want to put "vim_help.txt" -in your search path, use the command ":set helpfile=pathname" to tell Vim -where the help file is. |'helpfile'| - -Vim will look for initializations in eight places. The first that is found -is used and the others are ignored. The order is - - The environment variable VIMINIT - - The file "$VIM/_vimrc" - - The file "$HOME/_vimrc" - - The file "$VIM/.vimrc" - - The file "$HOME/.vimrc" - - The environment variable EXINIT - - The file "$VIM/_exrc" - - The file "$HOME/_exrc" +:CD COMMAND The ":cd" command recognizes the drive specifier and changes the current drive. Use ":cd c:" to make drive C the active drive. Use ":cd d:\dos" to go to the directory "dos" in the root of drive D. |:cd| + +INTERRUPTING + Use CTRL-break instead of CTRL-C to interrupt searches. The CTRL-C is not detected until a key is read. + +SHIFTED ARROW KEYS + Use CTRL-arrow-left and CTRL-arrow-right instead of SHIFT-arrow-left and SHIFT-arrow-right. The arrow-up and arrow-down cannot be used with SHIFT or CTRL. -Temporary files (for filtering) are put in the current directory. + +TEMP FILES + +Temporary files (for filtering) are put in the first directory in the next +list that exists and where a file can be created: + $TMP + $TEMP + C:\TMP + C:\TEMP + current directory + + +SHELL OPTION DEFAULT The default for the sh (shell) option is "command". If COMSPEC is defined it -is used instead. External commands are started with "command /c -<command_name>". Typing CTRL-Z starts a new command shell. Return to Vim with -"exit". +is used instead. External commands are started with +"command /c <command_name>". Typing CTRL-Z starts a new command shell. +Return to Vim with "exit". + + +FILENAME EXTENSIONS MS-DOS allows for only one filename extension. Therefore, when appending an extension, the '.' in the original filename is replaced with a '_', the name @@ -192,8 +271,8 @@ becomes "thisisat.bak". To reduce these problems, the default for then becomes "thisisat.es~". The 'shortname' option is not available, because it would always be set. -If the 32-bit DOS version is run on Windows 95 or Windows NT, it can use long -filenames, as can the Win32 version. + +COMPILING The MS-DOS binary was compiled with Borland-C++ version 4.0, using makefile.bcc. Other compilers should also work. Use makefile.dos for @@ -204,21 +283,19 @@ be done with the addcr program: "make addcr". This will compile addcr.c to addcr.exe and then execute the addcr.bat file. Sometimes this fails. In that case, execute the addcr.bat file from the DOS prompt. - The "spawno" library by Ralf Brown was used in order to free memory when Vim starts a shell or other external command. Only about 200 bytes are taken from conventional memory. When recompiling get the spawno library from Simtel, directory "msdos/c". It is called something like "spwno413.zip". Or remove the library from the makefile. + +MEMORY USAGE and LIMITATIONS + A swap file is used to store most of the text. You should be able to edit very large files. However, memory is used for undo and other things. If you delete a lot of text, you can still run out of memory in the 16-bit version. -In the 16-bit version the line length is limited to about 32000 characters. -When reading a file the lines are automatically split. But editing a line -in such a way that it becomes too long may give unexpected results. - If Vim gives an "Out of memory" warning, you should stop editing. The result of further editing actions is unpredictable. Setting 'undolevels' to 0 saves some memory. Running the maze macros on a big maze is guaranteed to run out @@ -227,7 +304,13 @@ of memory, because each change is remembered for undo. In this case set In the 32-bit version, extended memory is used to avoid these problems. -About using Vim to edit a symbolically linked file on a Unix NFS file server: +In the 16-bit version the line length is limited to about 32000 characters. +When reading a file the lines are automatically split. But editing a line +in such a way that it becomes too long may give unexpected results. + + +USING VIM TO EDIT A SYMBOLICALLY LINKED FILE ON A UNIX NFS FILE SERVER + When writing the file, Vim does not "write through" the symlink. Instead, it deletes the symbolic link and creates a new file in its place. On Unix, Vim is prepared for links (symbolic or hard). A backup copy of @@ -238,3 +321,36 @@ bits are set like the original file. However, this doesn't work properly when working on an NFS-mounted file system where links and other things exist. The only way to fix this in the current version is not making a backup file, by ":set nobackup nowritebackup" |'writebackup'| + + +HOW TO COPY/PASTE TEXT FROM/TO VIM IN A DOS BOX + +(posted to comp.editors by John Velman <velman@igate1.hac.com>) + +1) to get VIM to run in a window, instead of full screen, press alt+enter + (I've always used alt+shift+enter, but either one seems to work). This + toggles back and forth between full screen and a dos window. + +2) To paste something *into* vim, put vim in insert mode. + +3) put the text you want to paste on the windows clipboard. + +4) Click the control box in the upper left of the vim window. (This looks + like a big minus sign). If you don't want to use the mouse, you can get + this with alt+spacebar. +5) on the resulting dropdown menu choose 'Edit' +6) on the child dropdown menu choose 'Paste' + +To copy something from the vim window to the clipboard, + +1) select the control box to get the control drop down menu. +2) select 'Edit.' +3) select 'Mark' +4) using either the the keys or the mouse, select the part of the vim window + that you want to copy. To use the keys, use the arrow keys, and hold down + shift to extend the selection. +5) when you've completed your selection, press 'enter.' The selection + is now in the windows clipboard. By the way, this can be any + rectangular selection, for example columns 4-25 in rows 7-10. It can + include anything in the VIM window: the output of a :!dir, for + example. diff --git a/usr.bin/vim/doc/vim_gui.txt b/usr.bin/vim/doc/vim_gui.txt index 755240937a7..017f6f49e09 100644 --- a/usr.bin/vim/doc/vim_gui.txt +++ b/usr.bin/vim/doc/vim_gui.txt @@ -1,4 +1,4 @@ -*vim_gui.txt* For Vim version 4.2. Last modification: 1996 June 11 +*vim_gui.txt* For Vim version 4.4. Last modification: 1996 Sep 12 Vim's Graphical User Interface @@ -31,10 +31,23 @@ that waits for gvim to exit), start gvim with "gvim -f", "vim -gf" or use color. If you want the GUI to run in the foreground always, include the 'f' flag in 'guioptions'. |-f|. -When the GUI starts up, the file ~/.gvimrc is sourced if it exists, and then -the file ./.gvimrc. This file may contain commands to set up your own -customised menus (see |:menu|) and initialise other things that you may want -to set up differently from the terminal version. + *gui_init* +When the GUI starts up initializations are carried out, in this order: +- If the system gvimrc exists, it is sourced. The name if this file is + something like "/usr/local/share/vim/gvimrc". You can check this with + ":version". +- If the GVIMINIT environment variable exists and is not empty, it is + executed as an Ex command. Otherwise, if the user gvimrc file exists, it + is sourced. The name of this file is something like "$HOME/.gvimrc". You + can check this with ":version". +- If the 'exrc' option is set (which is NOT the default) the file ./.gvimrc + is sourced, if it exist and isn't the same file as the system or user + gvimrc file. If this file is not owned by you, some security restrictions + apply. + +You can use the gvimrc files to set up your own customised menus (see |:menu|) +and initialise other things that you may want to set up differently from the +terminal version. There are a number of options which only have meaning in the GUI version of Vim. These are 'guifont', 'guipty' and 'guioptions'. They are documented @@ -461,7 +474,7 @@ scrollbars will remain the same, because Vim has its own, which are already - Window should be redrawn when resizing at the hit-return prompt. - - Use different cursor and mouse shapes/colours for different modes. + - Use different cursor and mouse shapes/colors for different modes. - Scrollbars with Motif 1.1 are ordered upside down! Do we care? @@ -474,8 +487,8 @@ scrollbars will remain the same, because Vim has its own, which are already current Vim window. - Add a new command :highlight for specifying how various things should - be highlighted, allowing colours to be given. Currently it's all hard - coded, the text colour, bg colour etc. + be highlighted, allowing colors to be given. Currently it's all hard + coded, the text color, bg color etc. - We need a nice little picture to go on the icon :-) But how do we do that? diff --git a/usr.bin/vim/doc/vim_help.txt b/usr.bin/vim/doc/vim_help.txt index e6183370efa..70989e96d14 100644 --- a/usr.bin/vim/doc/vim_help.txt +++ b/usr.bin/vim/doc/vim_help.txt @@ -1,4 +1,4 @@ -*vim_help.txt* For Vim version 4.2. Last modification: 1996 June 16 +*vim_help.txt* For Vim version 4.4. Last modification: 1996 Aug 3 VIM help file @@ -704,7 +704,9 @@ Short explanation of each option: *option_list* |'sections'| |'sect'| nroff macros that separate sections |'secure'| secure mode for reading .vimrc in current dir |'shell'| |'sh'| name of shell to use for external commands +|'shellcmdflag'| |'shcf'| flag to shell to execute one command |'shellpipe'| |'sp'| string to put output of ":make" in error file +|'shellquote'| |'shq'| quote character(s) for around shell command |'shellredir'| |'srr'| string to put output of filter in a temp file |'shelltype'| |'st'| Amiga: influences how to use a shell |'shiftround'| |'sr'| round indent to multiple of shiftwidth @@ -956,6 +958,7 @@ Short explanation of each option: *option_list* |:xit| :x[it][!] [file] Like ":wq" but write only when changes have been made |ZZ| ZZ Same as ":x". +|ZQ| ZQ Same as ":q!". |:xall| :xall[!] or :wqall[!] Write all changed buffers and exit @@ -1089,7 +1092,11 @@ Now that you've jumped here with CTRL-], g<LeftMouse>, or <C-LeftMouse>, you can use CTRL-T, g<RightMouse>, or <C-RightMouse> to go back to where you were. ------------------------------------------------------------------------------ -For the most recent information about Vim: *www* *faq* *FAQ* + *www* *faq* *FAQ* *ftp* *distribution* *download* +The Vim pages contain the most recent information about Vim. They also +contains links to the most recent version of Vim. The FAQ is a list of +Frequently Asked Questions, read this if you have problems. + VIM home page: <URL:http://www.math.fu-berlin.de/~guckes/vim/> VIM FAQ: <URL:http://www.grafnetix.com/~laurent/vim/> @@ -1124,7 +1131,7 @@ There are three mailing lists for Vim: NOTE: You can only send messages to these lists if you have subscribed! Also: you need to send the messages from the same location as the one you subscribed -from (yes, Majordomo is not flexible). +from (yes, Majordomo is inflexible). If you want to join, send a message to <majordomo@prz.tu-berlin.de> @@ -1151,7 +1158,7 @@ suggestions and discussing what is good and bad in Vim. Tony Andrews Stevie Gert van Antwerpen changes for DJGPP on MS-DOS Berkeley DB(3) ideas for swapfile - Keith Bostic nvi + Keith Bostic Nvi Ralf Brown SPAWNO library for MS-DOS Robert Colon many useful remarks Kayhan Demirel sent me news in Uganda diff --git a/usr.bin/vim/doc/vim_idx.txt b/usr.bin/vim/doc/vim_idx.txt index 7b15ce40236..83c82b06b3e 100644 --- a/usr.bin/vim/doc/vim_idx.txt +++ b/usr.bin/vim/doc/vim_idx.txt @@ -1,4 +1,4 @@ -*vim_idx.txt* For Vim version 4.2. Last modification: 1996 June 16 +*vim_idx.txt* For Vim version 4.4. Last modification: 1996 Aug 4 This file contains a list of all commands for each mode, with a tag and a short description. The list is sorted on ASCII value. @@ -38,7 +38,7 @@ tag char action line |i_CTRL-E| CTRL-E insert the character which is below the cursor CTRL-F not used - CTRL-G not used + CTRL-G reserved for future expansion |i_<BS>| <BS> delete character before the cursor |i_digraph| {char1}<BS>{char2} enter digraph (only when 'digraph' option set) @@ -292,6 +292,7 @@ tag char note action in Normal mode |Y| ["x]Y yank N lines [into buffer x]; synonym for "yy" |ZZ| ZZ store current file if modified, and exit +|ZQ| ZQ exit current file always |[| [{char} square bracket command (see below) \ not used |]| ]{char} square bracket command (see below) diff --git a/usr.bin/vim/doc/vim_kcc.txt b/usr.bin/vim/doc/vim_kcc.txt index 57884877629..4a0d35ca414 100644 --- a/usr.bin/vim/doc/vim_kcc.txt +++ b/usr.bin/vim/doc/vim_kcc.txt @@ -1,22 +1,26 @@ *vim_kcc.txt* *uganda* *copying* -Vim is Charityware. There are no restrictions on using or copying Vim, but I -encourage you to make a donation to charity, see below. If you include Vim on -a CD-ROM you should send me a copy. +Vim is Charityware. You can use and copy it as much as you like, but you are +encouraged to make a donation to orphans in Uganda. See below. + +If you include Vim on a CD-ROM, I would like to receive a copy. Just so I +know which Vim distributions exists in the world (and to show off to my +friends :-)). + +If you distribute a modified version of Vim, you must send me a copy, +including the source code. Or make it available to me through ftp; let me +know where I can find it. If the number of changes is small (e.g., a modified +Makefile) e-mailing me the diffs will do. I preserve the right to include +any changes in the official version of Vim. It is not allowed to distribute +a modified version of Vim without making the source code available to me. +It is not allowed to remove these restrictions from the distribution of the +Vim sources. + If you are happy with Vim, please express that by reading the rest of this file. -Summer 1993 I spent my holidays in Uganda, working for Kibaale Children's -Centre (KCC) with a Dutch team. I was very impressed with what I experienced -there. Of course I knew Africa from books and television, but actually being -there and talking and working with the people is very different. January 1994 -I spent another month there, which made me realize that I could be of help to -these people. Summer 1994 to summer 1995 I spent a whole year at the centre, -working as a volunteer. I have helped to expand the centre and worked in the -area of water and sanitation. - KCC is located in Kibaale, a small town in the south of Uganda, near Tanzania. The area is known as Rakai District. The population is mostly farmers. Although people are poor, there is enough food. But this district is @@ -63,9 +67,11 @@ to travel hours by bicycle, if they have one. There is no ambulance in the area and they don't have money to hire a taxi (if there is one). For most people KCC is the only help they can get. -Now that I'm back in Holland, I would like to continue supporting KCC. To do -this I'm raising funds and organizing the sponsorship program. Please -consider one of these options: +Summer 1994 to summer 1995 I spent a whole year at the centre, working as a +volunteer. I have helped to expand the centre and worked in the area of water +and sanitation. Now that I'm back in Holland, I would like to continue +supporting KCC. To do this I'm raising funds and organizing the sponsorship +program. Please consider one of these options: 1. Sponsor a child: $15 a month. (Holland: fl 25) 2. Sponsor a child and the improvement of its environment: $25 a month @@ -77,13 +83,13 @@ Compared with other organizations that do child sponsorship the amounts are very low. This is because the money goes directly to the centre. Less than 5% is used for administration. This is possible because this is a small organization that works with volunteers. If you would like to sponsor a -child, you should have the intention to do this for at least a year. +child, you should have the intention to do this for at least one year. -How do you know that the money will be spent right? First of all you have my -personal guarantee as the author of Vim. Further the centre is co-sponsored -and inspected by World Vision, Save the Children Fund and International Child -Care Fund. I have worked with the centre as a volunteer from September 1994 -to August 1995. I trust the people that are working there. +How do you know that the money will be spent right? First of all you have my +personal guarantee as the author of Vim. I trust the people that are working +at the centre, I know them personally. Further more the centre is +co-sponsored and inspected by World Vision, Save the Children Fund and +International Child Care Fund. If you have any further questions, send me e-mail: mool@oce.nl. diff --git a/usr.bin/vim/doc/vim_menu.txt b/usr.bin/vim/doc/vim_menu.txt index 24801b33942..5057e79c5e6 100644 --- a/usr.bin/vim/doc/vim_menu.txt +++ b/usr.bin/vim/doc/vim_menu.txt @@ -1,4 +1,5 @@ -" *vim_menu.txt* +" *vim_menu.txt* For Vim version 4.4. Last modification: 1996 May 29 +" " These menu commands should recreate the default Vim menus. " You can use this as a start for your own set of menus. " The colons at the start of each line are just to indicate these are colon diff --git a/usr.bin/vim/doc/vim_mint.txt b/usr.bin/vim/doc/vim_mint.txt index 6ae58bb2be0..5ac9d567653 100644 --- a/usr.bin/vim/doc/vim_mint.txt +++ b/usr.bin/vim/doc/vim_mint.txt @@ -1,4 +1,4 @@ -*vim_mint.txt* For Vim version 4.2. Last modification 1996 June 11 +*vim_mint.txt* For Vim version 4.4. Last modification 1996 June 11 This file contains the particularities for the Atari MiNT version of Vim. diff --git a/usr.bin/vim/doc/vim_os2.txt b/usr.bin/vim/doc/vim_os2.txt index 988a785a598..6a6c11226b9 100644 --- a/usr.bin/vim/doc/vim_os2.txt +++ b/usr.bin/vim/doc/vim_os2.txt @@ -1,46 +1,49 @@ -*vim_os2.txt* For Vim version 4.2. Last modification: 1996 June 13 +*vim_os2.txt* For Vim version 4.4. Last modification: 1996 July 20 This file contains the particularities for the OS/2 version of Vim. -Note: This OS/2 port works well for me and a couple of other OS/2 users; - however, since I haven't had much feedback, that either means no - (OS/2-specific) bugs exist (besides the one mentioned below), or no one - has yet created a situation in which any bugs are apparent. Report any - problems or other comments to paul@wau.mis.ah.nl (email valid up to at - least September 1996, after that try paul@wurtel.hobby.nl, - paul@murphy.nl, or paulS@toecompst.nl). Textmode/notextmode, binary - mode, and FAT handling all seem to work well, which would seem to be the - most likely places for trouble. +NOTE - A known problem is that files opened by Vim are inherited by other - programs that are started via a shell escape from within Vim. - This specifically means that Vim won't be able to remove the swap - file(s) associated with buffers open at the time the other program was - started, until the other program is stopped. At that time, the swap file - may be removed, but if Vim could not do that the first time, it won't be - removed at all. You'll get warnings that some other Vim session may be - editing the file when you start Vim up again on that file. This can be - reproduced with ":!start epm". Now quit Vim, and start Vim again with - the file that was in the buffer at the time epm was started. I'm - working on this! +This OS/2 port works well for me and a couple of other OS/2 users; however, +since I haven't had much feedback, that either means no (OS/2-specific) bugs +exist (besides the one mentioned below), or no one has yet created a situation +in which any bugs are apparent. Report any problems or other comments to +paul@wau.mis.ah.nl (email valid up to at least September 1996, after that try +paul@wurtel.hobby.nl, paul@murphy.nl, or paulS@toecompst.nl). +Textmode/notextmode, binary mode, and FAT handling all seem to work well, +which would seem to be the most likely places for trouble. +A known problem is that files opened by Vim are inherited by other programs +that are started via a shell escape from within Vim. This specifically means +that Vim won't be able to remove the swap file(s) associated with buffers open +at the time the other program was started, until the other program is stopped. +At that time, the swap file may be removed, but if Vim could not do that the +first time, it won't be removed at all. You'll get warnings that some other +Vim session may be editing the file when you start Vim up again on that file. +This can be reproduced with ":!start epm". Now quit Vim, and start Vim again +with the file that was in the buffer at the time epm was started. I'm working +on this! -Prerequisites: -- To run Vim, you need the emx runtime environment (at least rev. 0.9b). This - is generally available as (ask Archie about it): +PREREQUISITES + +To run Vim, you need the emx runtime environment (at least rev. 0.9b). This +is generally available as (ask Archie about it): emxrt.zip emx runtime package - I've included a copy of emx.dll, which should be copied to one of the - directories listed in your LIBPATH. Emx is GPL'ed, but the emx.dll library - is not (read COPYING.EMX to find out what that means to you). +I've included a copy of emx.dll, which should be copied to one of the +directories listed in your LIBPATH. Emx is GPL'ed, but the emx.dll library is +not (read COPYING.EMX to find out what that means to you). + +This emx.dll is from the emxfix04.zip package, which unfortunately has a bug +in select(). Versions of Vim before 3.27 will appear to hang when starting +(actually, while processing vimrc). Hit return a couple of times until Vim +starts working if this happens. Next, get an up to date version of Vim! - This emx.dll is from the emxfix04.zip package, which unfortunately has a bug - in select(). Versions of Vim before 3.27 will appear to hang when starting - (actually, while processing vimrc). Hit return a couple of times until Vim - starts working if this happens. Next, get an up to date version of Vim! + +HELP AND VIMRC FILE The VIM environment variable is used to find the location of the help files and the system .vimrc. Place an entry such as this in CONFIG.SYS: @@ -59,19 +62,44 @@ network drive (including .vimrc; this is then called the "system" vimrc file), and then use a personal copy of .vimrc (the "user" vimrc file). This should be located in a directory indicated by the HOME environment variable. + +ENVIRONMENT VARIABLES IN FILE NAMES + This HOME environment variable is also used when using ~ in file names, so ":e ~/textfile" will edit the file "textfile" in the directory referred to by HOME. Additionally you can use other environment variables in file names, as as ":n $SRC/*.c". +The HOME environment variable is also used to locate the .viminfo file +(see |viminfo_file|). There is no support yet for .viminfo on FAT file +systems yet, sorry. You could try the -i startup flag (as in "vim -i +$HOME/_viminfo") however. + If the HOME environment variable is not set, the value "C:/" is used as a default. + +BACKSLASHES + Using slashes ('/') and backslashes ('\') can be a bit of a problem (see vim_dos.txt for more explanation), but in almost all cases Vim does "The Right Thing". Vim itself uses backslashes in file names, but will happily accept forward slashes if they are entered (in fact, often that works better!). + +TEMP FILES + +Temporary files (for filtering) are put in the first directory in the next +list that exists and where a file can be created: + $TMP + $TEMP + C:\TMP + C:\TEMP + current directory + + +TERMINAL SETTING + Use "os2ansi" as the TERM environment variable (or don't set it at all, as the default is the correct value). You can set term to os2ansi in the .vimrc, in case you need TERM to be a different value for other applications. The diff --git a/usr.bin/vim/doc/vim_ref.txt b/usr.bin/vim/doc/vim_ref.txt index e9358ebe02d..ad163ba4c79 100644 --- a/usr.bin/vim/doc/vim_ref.txt +++ b/usr.bin/vim/doc/vim_ref.txt @@ -1,4 +1,4 @@ -*vim_ref.txt* For Vim version 4.2. Last modification: 1996 June 17 +*vim_ref.txt* For Vim version 4.4. Last modification: 1996 Sep 12 VIM REFERENCE MANUAL @@ -130,7 +130,9 @@ to the name of the help file, so you can put it in any place you like. CTRL-{char} {char} typed as a control character; that is, typing {char} while holding the CTRL key down. The case of {char} does not - matter; thus CTRL-A and CTRL-a are equivalent. + matter; thus CTRL-A and CTRL-a are equivalent. But on some + terminals, using the SHIFT key will produce another code, + don't use it then. 'option' An option, or parameter, that can be set to a value, is enclosed in single quotes. See chapter 19, |options|. @@ -169,6 +171,10 @@ notation meaning equivalent decimal value(s) <End> end *end* <PageUp> page-up *page_up* *page-up* <PageDown> page-down *page_down* *page-down* +<kHome> keypad home (upper left) *keypad_home* +<kEnd> keypad end (lower left) *keypad_end* +<kPageUp> keypad page-up (upper right) *keypad_page_up* +<kPageDown> keypad page-down (lower right) *keypad_page_down* <S-...> shift-key *shift* <C-...> control-key *control* *ctrl* <M-...> alt-key or meta-key *meta* *alt* @@ -180,10 +186,17 @@ available on a few terminals. On the Amiga, shifted function key 10 produces a code (CSI) that is also used by key sequences. It will be recognized only after typing another key. -Note: There are two codes for the delete key. 127 is the ASCII value for the -delete key, which is always recognized. Some delete keys send another value, -in which case this value is obtained from the termcap entry "kD". Both values -have the same effect. Also see |:fixdel|. +Note: There are two codes for the delete key. 127 is the decimal ASCII value +for the delete key, which is always recognized. Some delete keys send another +value, in which case this value is obtained from the termcap entry "kD". Both +values have the same effect. Also see |:fixdel|. + +Note: The keypad keys are used in the same way as the corresponding "normal" +keys. For example, <kHome> has the same effect as <Home>. If a keypad key +sends the same raw key code as it non-keypad equivalent, it will be recognized +as the non-keypad code. For example, when <kHome> sends the same code as +<Home>, when pressing <kHome> Vim will think <Home> was pressed. Mapping +<kHome> will not work then. *<>* Some of the examples are given in the <> notation. The rules are: @@ -201,9 +214,14 @@ Some of the examples are given in the <> notation. The rules are: <M-A> Meta- A ('A' with bit 8 set) <t_kd> "kd" termcap entry (cursor down key) -If you want to use this notation in Vim, you have to remove the 'B' flag from -'cpoptions' and make sure the '<' flag is excluded (it already is by default). +If you want to use the full <> notation in Vim, you have to remove the 'B' +flag from 'cpoptions' and make sure the '<' flag is excluded (it already is by +default). :set cpo=ceFs +If you have the 'B' flag in 'cpoptions', then <> notation mostly still works, +but you can't escape the special meaning of key names in <> with a backslash. +To distinguish using <> with and without the 'B' flag, it's called full <> +notation if the 'B' flag is excluded. For mapping, abbreviation and menu commands you can then copy-paste the examples and use them directly. Or type them literally, including the '<' and '>' characters. This does NOT work for other commands, like ":set" and @@ -717,6 +735,16 @@ can be used to load this information. You could even have different viminfos for different types of files (e.g., C code) and load them based on the file name, using the ":autocmd" command (see |:autocmd|). + *viminfo_errors* +When Vim detects an error while reading a viminfo file, it will not overwrite +that file. If there are more than 10 errors, Vim stops reading the viminfo +file. This was done to avoid accidently destroying a file when the filename +of the viminfo file is wrong. This could happen when accidently typing "vim +-i file" when you wanted "vim -v file" (yes, somebody accidently did that!). +If you want to overwrite a viminfo file with an error in it, you will either +have to fix the error, or delete the file (while Vim is running, so most of +the information will be restored). + *:rv* *:rviminfo* :rv[iminfo][!] [file] Read from viminfo file [file] (default: see above). If [!] is given, then any information that is @@ -1186,7 +1214,7 @@ Completing keywords in current file *compl_current* The keys CTRL-N and CTRL-P can be used to complete the keyword that is in front of the cursor. This is useful if you are writing a program that has complicated variable names, and you want to copy a name from the text before -of after the cursor. +or after the cursor. If there is a keyword in front of the cursor (a name made out of alphabetic characters and characters in 'iskeyword'), it is used as the search pattern, @@ -1351,12 +1379,12 @@ move around in the command line with the left and right cursor keys. With the Note that if your keyboard does not have working cursor keys or any of the other special keys, you can use ":cnoremap" to define another key for them. For example, to define tcsh style editing keys: *tcsh-style* - :cnoremap ^A <Home> - :cnoremap ^F <Right> - :cnoremap ^B <Left> - :cnoremap ^[b <S-Left> - :cnoremap ^[f <S-Right> -(All ^x characters entered with CTRL-V CTRL-x, <xx> typed literally). + :cnoremap <C-A> <Home> + :cnoremap <C-F> <Right> + :cnoremap <C-B> <Left> + :cnoremap <Esc>b <S-Left> + :cnoremap <Esc>f <S-Right> +(<> notation |<>|; type all this literally) *cmdline_history* The command lines that you enter are remembered in a history table. You can @@ -1590,10 +1618,12 @@ line. The commands ":global", "vglobal", ":!", ":r !", ":w !", ":help" and ":autocmd" see the '|' as their argument, and can therefore not be followed by another command. If you want '|' to be included in one of the other commands, precede it with '\'. Note that this is confusing (inherited from Vi). With -":g" the '|' is included in the command, with ":s" it is not. There is one -execption: When the 'b' flag is present in 'cpoptions', with the ":map" and -":abbr" commands and friends CTRL-V needs to be used instead of '\'. See also -|map_bar|. +":g" the '|' is included in the command, with ":s" it is not. + +There is one exception: When the 'b' flag is present in 'cpoptions', with the +":map" and ":abbr" commands and friends CTRL-V needs to be used instead of +'\'. You can also use "<Bar>" instead. See also |map_bar|. + Examples: :!ls | wc view the output of two commands :r !ls | wc insert the same output in the text @@ -1743,7 +1773,10 @@ order): :h Head of the file name (the last component and any separators removed). Cannot be used with :e, :r or :t. Can be repeated to remove several components at the end. - When there is no head the result is empty. + When the file name is an absolute path (starts with "/" for + Unix; "x:\" for MS-DOS, WIN32, OS/2; "drive:" for Amiga), + that part is not removed. When there is no head (path is + relative to current directory) the result is empty. :t Tail of the file name (last component of the name). Must precede any :r or :e. :r Root of the file name (the last extension removed). When @@ -2042,6 +2075,49 @@ Abbreviations are disabled if the 'paste' option is on. :cabc[lear] Remove all abbreviations for Command-line mode. {not in Vi} + *using_CTRL-V* +It is possible to use special characters in the rhs of an abbreviation. +CTRL-V has to be used to avoid the special meaning of most non printable +characters. How many CTRL-Vs need to be typed depends on how you enter the +abbreviation. This also applies to mappings. Let's use an example here. + +Suppose you want to abbreviate "esc" to enter an <Esc> character. When you +type the ":ab" command in Vim, you have to enter this: (here ^V is a CTRL-V +and ^[ is <Esc>) + +You type: ab esc ^V^V^V^V^V^[ + + All keyboard input is subjected to ^V quote interpretation, so + the first, third, and fifth ^V characters simply allow the second, + and fourth ^Vs, and the ^[, to be entered into the command line. + +You see: ab esc ^V^V^[ + + The command line contains two actual ^Vs before the ^[. This is + how it should appear in your .exrc file, if you choose to go that + route. The first ^V is there to quote the second ^V; the :ab + command uses ^V as its own quote character, so you can include quoted + whitespace or the | character in the abbreviation. The :ab command + doesn't do anything special with the ^[ character, so it doesn't need + to be quoted. (Although quoting isn't harmful; that's why typing 7 + [but not 8!] ^Vs works.) + +Stored as: esc ^V^[ + + After parsing, the abbreviation's short form ("esc") and long form + (the two characters "^V^[") are stored in the abbreviation table. + If you give the :ab command with no arguments, this is how the + abbreviation will be displayed. + + Later, when the abbreviation is expanded because the user typed in + the word "esc", the long form is subjected to the same type of + ^V interpretation as keyboard input. So the ^V protects the ^[ + character from being interpreted as the "exit input-mode" character. + Instead, the ^[ is inserted into the text. + +Expands to: ^[ + +[example given by Steve Kirkendall] 4.7 Digraphs *digraphs* @@ -2831,6 +2907,11 @@ ZZ Write current file, if modified, and exit (same as current file, the file is written if it was modified and the window is closed). + *ZQ* +ZQ Quit current file and exit (same as ":q!"). (Note: If + there are several windows for the current file, only + the window is closed). + *timestamp* Vim remembers the timestamp of the file when you start editing it. When you write a file the timestamp is checked. If the file has been changed since you @@ -2932,30 +3013,39 @@ match the error messages from your compiler (see below). The following commands can be used if you are in QuickFix mode: *:cc* -:cc [nr] Display error [nr]. If [nr] is omitted, the same - error is displayed again. {not in Vi} +:cc[!] [nr] Display error [nr]. If [nr] is omitted, the same + error is displayed again. Without [!] this doesn't + work when jumping to another buffer, the current buffer + has been changed, there is the only window for the + buffer and both 'hidden' and 'autowrite' are off. + When jumping to another buffer with [!] any changes to + the current buffer are lost, unless 'hidden' is set or + there is another window for this buffer. {not in Vi} *:cn* *:cnext* -:[count]cn[ext] Display the [count] next error in the list that +:[count]cn[ext][!] Display the [count] next error in the list that includes a file name. If there are no file names at - all, go the the [count] next error. {not in Vi} + all, go the the [count] next error. See |:cc| for + [!]. {not in Vi} -:[count]cN[ext] *:cp* *:cprevious* *:cN* *:cNext* -:[count]cp[revious] Display the [count] previous error in the list that +:[count]cN[ext][!] *:cp* *:cprevious* *:cN* *:cNext* +:[count]cp[revious][!] Display the [count] previous error in the list that includes a file name. If there are no file names at - all, go the the [count] previous error. {not in Vi} + all, go the the [count] previous error. See |:cc| for + [!]. {not in Vi} *:cq* *:cquit* :cq[uit] Quit Vim with an error code, so that the compiler will not compile the same file again. {not in Vi} *:cf* *:cfile* -:cf[ile] [errorfile] Read the error file and jump to the first error. +:cf[ile][!] [errorfile] Read the error file and jump to the first error. This is done automatically when Vim is started with the -e option. You can use this command when you keep Vim running while compiling. If you give the name of the errorfile, the 'errorfile' option will - be set to [errorfile] {not in Vi} + be set to [errorfile]. See |:cc| for [!]. {not in + Vi} *:cl* *:clist* :cl[ist] List all errors that inlcude a file name. {not in Vi} @@ -3176,7 +3266,7 @@ considered part of the command. Show the auto-commands associated with {event} and {pat}. -:au[tocmd] * {pat} Show the auto-commands associated with pat} for all +:au[tocmd] * {pat} Show the auto-commands associated with {pat} for all events. :au[tocmd] {event} Show all auto-commands for {event}. @@ -3206,6 +3296,7 @@ considered part of the command. match the right pattern, after changing settings, or to execute autocommands for a certain event. + *autocommand-events* These events are recognized. Case is ignored, for example "BUFread" and "bufread" can be used instead of "BufRead". @@ -3216,13 +3307,13 @@ BufNewFile When starting to edit a file that doesn't *BufReadPre* BufReadPre When starting to edit a new buffer, before reading the file into the buffer. Not used - when starting to edit a new file. + when the file doesn't exist. *BufRead* *BufReadPost* BufRead or BufReadPost When starting to edit a new buffer, after reading the file into the buffer, before executing the modelines. This does NOT work - for ":r file". Not used when starting to edit - a new file. + for ":r file". Not used when the file doesn't + exist. *FileReadPre* FileReadPre Before reading a file with a ":read" command. *FileReadPost* @@ -3298,11 +3389,16 @@ BufReadPre BufReadPost starting to edit an existing file FilterReadPre FilterReadPost read the temp file with filter output FileReadPre FileReadPost any other file read +Note that the autocommands for the *ReadPre and *Filter* events are not +allowed to change the current buffer. You will get an error message if this +happens anyway. This is to prevent the file to be read into the wrong buffer. + Before the *ReadPre event the '[ mark is set to the line just above where the new lines will be inserted. Before the *ReadPost event the '[ mark is set to the first line that was just read, the '] mark to the last line. Careful: '[ and '] will change when using commands that change the buffer. + "<afile>" can be used for the file name that is being read, in commands where a file name is expected (where you can also use "%" for the current file name) |:<afile>|. @@ -3326,9 +3422,18 @@ Note that the *WritePost commands should undo any changes to the buffer that were caused by the *WritePre commands, otherwise writing the file will have the side effect of changing the buffer. -Before the *WritePre event the '[ mark is set to the first line that will be -written, the '] mark to the last line. +Before executing the autocommands, the buffer from where the lines are to be +written is temporarily made the current buffer. Unless the autocommands +change the current buffer, or delete the previously current buffer, the +previously current buffer is made the current buffer again. + +The *WritePre and *AppendPre autocommands must not delete the buffer from +where the lines are to be written. + +Before executing the *WritePre and *AppendPre autocommands the '[ mark is set +to the first line that will be written, the '] mark to the last line. Careful: '[ and '] will change when using commands that change the buffer. + "<afile>" can be used for the file name that is being written, in commands where a file name is expected (where you can also use "%" for the current file name) |:<afile>|. @@ -3369,12 +3474,19 @@ There is currently no way to disable the autocommands. If you want to write a file without executing the autocommands for that type of file, write it under another name and rename it with a shell command. -Note: When doing a ":read file" command and the last line in the file does not -have an end-of-line character, this is remembered. When executing the -FileReadPost autocommands and the same line is written again as the last line -in a file, no end-of-line character is written if 'binary' is set. This makes -a filter command on the just read lines write the same file as was read. +Note: When reading a file (with ":read file" or with a filter command) and the +last line in the file does not have an end-of-line character, this is +remembered. At the next write (with ":write file" or with a filter command), +if the same line is written again as the last line in a file AND 'binary' is +set, no end-of-line character is written. This makes a filter command on the +just read lines write the same file as was read, and makes a write command on +just filtered lines write the same file as was read from the filter. For +example, another way to write a compressed file: + :autocmd FileWritePre *.gz set bin|'[,']!gzip + :autocmd FileWritePost *.gz undo|set nobin + + *autocommand-pattern* Multiple patterns may be given separated by commas. Here are some examples: :autocmd BufRead * set tw=79 nocin ic infercase fo=2croq @@ -3437,6 +3549,9 @@ against the full file name. For example: :autocmd BufRead */vim/src/* set wrap +Note that using ~ in a file name (for home directory) doesn't work. Use a +pattern that matches the full path name, for example "*home/user/.cshrc". + 6. Cursor motions *cursor_motions* ================= @@ -3693,12 +3808,14 @@ ge Backward to the end of word [count] (inclusive). *gE* gE Backward to the end of WORD [count] (inclusive). - *word* *WORD* -These commands move over words or WORDS. A word consists of a sequence of -letters, digits and underscores, or a sequence of other non-blank -characters, separated with white space (spaces, tabs, end of line). A WORD -consists of a sequence of non-blank characters, separated with white space. -An empty line is also considered to be a word and a WORD. +These commands move over words or WORDS. + *word* +A word consists of a sequence of letters, digits and underscores, or a +sequence of other non-blank characters, separated with white space (spaces, +tabs, end of line). This can be changed with the 'iskeyword' option. + *WORD* +A WORD consists of a sequence of non-blank characters, separated with white +space. An empty line is also considered to be a word and a WORD. Special case: "cw" and "cW" are treated like "ce" and "cE" if the cursor is on a non-blank. This is because "cw" is interpreted as change-word, and a @@ -3767,9 +3884,9 @@ first column). A section boundary is also a paragraph boundary. Note that this does not include a '{' or '}' in the first column. *section* -A section begins after a form-feed in the first column and at each of a set -of section macros, specified by the pairs of characters in the 'sections' -option. The default is "SHNHH HUnhsh". +A section begins after a form-feed (<C-L>) in the first column and at each of +a set of section macros, specified by the pairs of characters in the +'sections' option. The default is "SHNHH HUnhsh". The "]" and "[" commands stop at the '{' or <}" in the first column. This is useful to find the start or end of a function in a C program. Note that the @@ -3887,11 +4004,16 @@ N Repeat the latest "/" or "?" [count] times in *star* * Search forward for the [count]'th occurrence of the - keyword after or under the cursor (exclusive). Only - whole keywords are search for, like with the command - "/\<keyword\>". If there is no keyword after or - under the cursor, any non-blank word is used to - search for. {not in Vi} + word nearest to the cursor. The word used for the + search is the first of: + 1. the keyword under the cursor |'iskeyword'| + 2. the first keyword after the cursor, in the + current line + 3. the non-blank word under the cursor + 4. the first non-blank word after the cursor, + in the current line + Only whole keywords are searched for, like with the + command "/\<keyword\>". (exclusive) {not in Vi} *#* # Same as "*", but search backward. The English pound @@ -3907,13 +4029,6 @@ g# Like "#", but don't put "\<" and "\>" around the word. This makes the search also find matches that are not a whole word. {not in Vi} - HINT: If you want to search for something else than a - whole word, you could use these mappings, to search - for Visually highlighted text: - :vmap / y/<C-R>"<CR> - :vmap ? y?<C-R>"<CR> - (<> notation, see |<>|). - *gd* gd Goto local Declaration. When the cursor is on a local variable, this command will jump to its declaration. @@ -3939,7 +4054,9 @@ gD Goto global Declaration. When the cursor is on a CTRL-C Interrupt current (search) command. While typing the search pattern the current match will be shown if the -'incsearch' option is on. +'incsearch' option is on. Remember that you still have to finish the search +command with <CR> to actually position the cursor at the displayed match. Or +use <Esc> to abandon the search. These commands search for the specified pattern. With "/" and "?" an additional offset may be given. There are two types of offsets: line offsets @@ -4013,15 +4130,17 @@ TOP" is given when searching backwards or forwards respectively. This can be switched off by setting the 's' flag in the 'shortmess' option. The highlight method 'w' is used for this message (default: standout). -The "*" and "#" commands search for the keyword currently under the cursor. -If there is no keyword under the cursor, the first one to the right is used. -This keyword may only contain letters and characters in 'iskeyword'. Note -that if you type with ten fingers, the characters are easy to remember: the -"#" is under your left hand middle finger (search to the left and up) and -the "*" is under your right hand middle finger (search to the right and -down). If there is no keyword under or after the cursor, a search is done -for any word under or after the cursor. Blanks (<Tab>s and/or <Space>s) are -then recognized as delimiters for the word. +The "*", "#", "g*" and "g#" commands look for a word near the cursor in this +order, the first one that is found is used: +- The keyword currently under the cursor. +- The first keyword to the right of the cursor, in the same line. +- The WORD currently under the cursor. +- The first WORD to the right of the cursor, in the same line. +The keyword may only contain letters and characters in 'iskeyword'. +The WORD may contain any non-blanks (<Tab>s and/or <Space>s). +Note that if you type with ten fingers, the characters are easy to remember: +the "#" is under your left hand middle finger (search to the left and up) and +the "*" is under your right hand middle finger (search to the right and down). The definition of a pattern: *search_pattern* @@ -4029,76 +4148,75 @@ The definition of a pattern: *search_pattern* Patterns may contain special characters, depending on the setting of the 'magic' option. + */bar* */\bar* 1. A pattern is one or more branches, separated by "\|". It matches anything - that matches one of the branches. Example: "foo\|bar" matches "foo" and - "bar". + that matches one of the branches. Example: "foo\|beep" matches "foo" and + "beep". 2. A branch is one or more pieces, concatenated. It matches a match for the - first, followed by a match for the second, etc. Example: "foo[0-9]bar", - first match "foo", then a digit and then "bar". + first, followed by a match for the second, etc. Example: "foo[0-9]beep", + first match "foo", then a digit and then "beep". 3. A piece is an atom, possibly followed by: - 'magic' 'nomagic' - option option - * \* matches 0 or more of the preceding atom - \+ \+ matches 1 or more of the preceding atom {not - in Vi} - \= \= matches 0 or 1 of the preceding atom {not in - Vi} + magic nomagic + */star* */\star* + * \* matches 0 or more of the preceding atom + */\+* + \+ \+ matches 1 or more of the preceding atom {not in Vi} + */\=* + \= \= matches 0 or 1 of the preceding atom {not in Vi} + Examples: - .* .\* matches anything, also empty string - ^.\+$ ^.\+$ matches any non-empty line - foo\= foo\= matches "fo" and "foo" + .* .\* matches anything, also empty string + ^.\+$ ^.\+$ matches any non-empty line + foo\= foo\= matches "fo" and "foo" 4. An atom can be: - One of these five: - magic nomagic - ^ ^ at beginning of pattern, matches start of - line - $ $ at end of pattern or in front of "\|", - matches end of line - . \. matches any single character - \< \< matches the beginning of a word - \> \> matches the end of a word - \i \i matches any identifier character (see - 'isident' option) {not in Vi} - \I \I like "\i", but excluding digits {not in Vi} - \k \k matches any keyword character (see - 'iskeyword' option) {not in Vi} - \K \K like "\k", but excluding digits {not in Vi} - \f \f matches any file name character (see - 'isfname' option) {not in Vi} - \F \F like "\f", but excluding digits {not in Vi} - \p \p matches any printable character (see - 'isprint' option) {not in Vi} - \P \P like "\p", but excluding digits {not in Vi} - \e \e <Esc> - \t \t <Tab> - \r \r <CR> - \b \b <BS> - ~ \~ matches the last given substitute pattern - \(\) \(\) A pattern enclosed by escaped parentheses - (e.g., "\(^a\)") matches that pattern - x x A single character, with no special meaning, - matches itself - \x \x A backslash followed by a single character, - with no special meaning, matches the single - character - [] \[] A range. This is a sequence of characters - enclosed in "[]" or "\[]". It matches any - single character from the sequence. If the - sequence begins with "^", it matches any - single character NOT in the sequence. If two - characters in the sequence are separated by - '-', this is shorthand for the full list of - ASCII characters between them. E.g., "[0-9]" - matches any decimal digit. To include a - literal "]" in the sequence, make it the - first character (following a possible "^"). - E.g., "[]xyz]" or "[^]xyz]". To include a - literal '-', make it the first or last - character. + magic nomagic + ^ ^ at beginning of pattern, matches start of line */^* + $ $ at end of pattern or in front of "\|", */$* + matches end of line + . \. matches any single character */.* */\.* + \< \< matches the beginning of a word */\<* + \> \> matches the end of a word */\>* + \i \i matches any identifier character (see */\i* + 'isident' option) {not in Vi} + \I \I like "\i", but excluding digits {not in Vi} */\I* + \k \k matches any keyword character (see */\k* + 'iskeyword' option) {not in Vi} + \K \K like "\k", but excluding digits {not in Vi} */\K* + \f \f matches any file name character (see */\f* + 'isfname' option) {not in Vi} + \F \F like "\f", but excluding digits {not in Vi} */\F* + \p \p matches any printable character (see */\p* + 'isprint' option) {not in Vi} + \P \P like "\p", but excluding digits {not in Vi} */\P* + \e \e <Esc> */\e* + \t \t <Tab> */\t* + \r \r <CR> */\r* + \b \b <BS> */\b* + ~ \~ matches the last given substitute string */~* */\~* + \(\) \(\) A pattern enclosed by escaped parentheses */\(\)* + (e.g., "\(^a\)") matches that pattern + x x A single character, with no special meaning, + matches itself + \x \x A backslash followed by a single character, */\* + with no special meaning, matches the single + character + [] \[] A range. This is a sequence of characters */[]* + enclosed in "[]" or "\[]". It matches any */\[]* + single character from the sequence. If the + sequence begins with "^", it matches any + single character NOT in the sequence. If two + characters in the sequence are separated by '-', this + is shorthand for the full list of ASCII characters + between them. E.g., "[0-9]" matches any decimal + digit. To include a literal "]" in the sequence, make + it the first character (following a possible "^"). + E.g., "[]xyz]" or "[^]xyz]". To include a literal + '-', make it the first or last character. If the 'ignorecase' option is on, the case of letters is ignored. @@ -5501,7 +5619,7 @@ magic nomagic action \U following characters made uppercase \l next character made lowercase \L following characters made lowercase - \e end of /u, /U, /l and /L + \e end of /u, /U, /l and /L (NOTE: not <Esc>!) \E end of /u, /U, /l and /L <CR> split line in two at this point \r idem @@ -6097,6 +6215,11 @@ be replaced with spaces to make this happen. However, if the width of the block is not a multiple of a <Tab> width and the text after the inserted block contains <Tab>s, that text may be misaligned. +Rationale: In Vi the "y" command followed by a backwards motion would + sometimes not move the cursor to the first yanked character, + because redisplaying was skipped. In Vim it always moves to + the first character, like specified by Posix. + There are five types of registers: *registers* - The unnamed register "" *quote_quote* *quotequote* - 10 numbered registers "0 to "9 *quote_number* *quote0* @@ -6265,7 +6388,7 @@ linewise Visual Visual blockwise Visual Normal For moving the end of the block many commands can be used, but you cannot use Ex commands, commands that make changes or abandon the file. Commands -(starting with) ".pPiIaAO&", CTRL-^, "ZZ", CTRL-], CTRL-T, CTRL-R, CTRL-I +(starting with) ".pPiIaAO&", CTRL-^, "Z", CTRL-], CTRL-T, CTRL-R, CTRL-I and CTRL-O cause a beep and Visual mode continues. If Visual mode is not active and the "v", "V" or CTRL-V is preceded with a @@ -6462,6 +6585,17 @@ ga Print the ascii value of the character under the is higher than the current Vim version this will result in an error message. {not in Vi} +:if *:if* *:endif* +:endif Every Ex command in between the ":if" and ":endif" is + ignored. These two commands are just to allow for + future expansions in a backwards compatible way. + Nesting is allowed. In Vim version 5 you are expected + to be able to do something like + :if version >= "5.0" + : version-5-specific-command + :endif + {not in Vi} + *K* K Run a program to lookup the keyword under the cursor. The name of the program is given with the @@ -6817,7 +6951,9 @@ with a space. *map_backslash* Note that only CTRL-V is mentioned here as a special character for mappings and abbreviations. When 'cpoptions' does not contain 'B', a backslash can -also be used like CTRL-V. The <> notation can be fully used then |<>|. +also be used like CTRL-V. The <> notation can be fully used then |<>|. But +you cannot use "<C-V>" like CTRL-V to escape the special meaning of what +follows. *map_space_in_lhs* To include a space in {lhs} precede it with a CTRL-V (type two CTRL-Vs for @@ -6827,24 +6963,36 @@ If you want a {rhs} that starts with a space, precede {rhs} with a single CTRL-V (you have to type CTRL-V two times). *map_empty_rhs* You can create an empty {rhs} by typing nothing after a single CTRL-V (you -have to type CTRL-V two times). +have to type CTRL-V two times). Unfortunately, you cannot do this in a vimrc +file. - *map_bar* It is not possible to put a comment after this command, because the '"' -character is considered to be part of the {rhs}. To put a '|' in {rhs} -escape it with a backslash or a CTRL-V (to get one CTRL-V you have to type -it twice). When 'b' is present in 'cpoptions', only CTRL-V can be used, "\|" -will be recognized as a mapping ending in a '\' and then another command. This -is vi compatible, but unlogical. Summary: - :map _l :!ls \| more^M works in Vim when 'b' is not in 'cpo' - :map _l :!ls ^V| more^M works always, in Vim and vi +character is considered to be part of the {rhs}. + + *map_bar* +Since the '|' character is used to separate a map command from the next +command, you will have to do something special to include a '|' in {rhs}. +There are three methods: + use works when example + <Bar> '<' is not in 'cpoptions' :map _l :!ls <Bar> more^M + \| 'b' is not in 'cpoptions' :map _l :!ls \| more^M + ^V| always, in Vim and Vi :map _l :!ls ^V| more^M + +(here ^V stands for CTRL-V; to get one CTRL-V you have to type it twice; you +cannot use the <> notation "<C-V>" here). + +All three work when you use the default setting for 'cpoptions'. + +When 'b' is present in 'cpoptions', "\|" will be recognized as a mapping +ending in a '\' and then another command. This is Vi compatible, but +unlogical when compared to other commands. To avoid mapping of the characters you type in insert or Command-line mode, type a CTRL-V first. The mapping in Insert mode is disabled if the 'paste' option is on. Note that when an error is enountered (that causes an error message) the rest -of the mapping is not executed. This is vi-compatible. +of the mapping is not executed. This is Vi-compatible. Note that the second character (argument) of the commands @zZtTfF[]rm'`"v and CTRL-X is not mapped. This was done to be able to use all the named @@ -6875,10 +7023,11 @@ included in {rhs} is encountered it will be replaced with {rhs}, and so on. This makes it possible to repeat a command an infinite number of times. The only problem is that the only way to stop this is by causing an error. The macros to solve a maze uses this, look there for an example. There is one -exception: If the {rhs} starts with {lhs}, that part is not mapped again. +exception: If the {rhs} starts with {lhs}, the first character is not mapped +again (this is Vi compatible). For example: - :map a ab -will execute the "a" command and insert a 'b' in the text. The 'a' in the + :map ab abcd +will execute the "a" command and insert "bcd" in the text. The "ab" in the {rhs} will not be mapped again. If you want to exchange the meaning of two keys you should use the :noremap @@ -7464,9 +7613,11 @@ backupdir (bdir) string (default for Amiga: ".,t:", where this is possible. - Empty means that no backup file will be created ('patchmode' is impossible!). - - A directory '.' means to put the backup file in the same directory - as the edited file. Characters after the "." are ignored, "./temp" - is handled in the same way as ".". + - A directory "." means to put the backup file in the same directory + as the edited file. + - A directory starting with "./" (or ".\" for MS-DOS et.al.) means to + put the backup file relative to where the edited file is. The + leading "." is replaced with the path name of the edited file. - Spaces after the comma are ignored, other spaces are considered part of the directory name. To have a space at the start of a directory name, precede it with a backslash. @@ -7716,7 +7867,7 @@ cpoptions (cpo) string (default "BceFs", unless compiled with set when the buffer is created. S Set buffer options always when entering a buffer (except 'readonly' and 'textmode'). This is the - (most) vi compatible setting. + (most) Vi compatible setting. The options are set to the values in the current buffer. When you change an option and go to another buffer, the value is copied. Effectively makes the @@ -7725,8 +7876,7 @@ cpoptions (cpo) string (default "BceFs", unless compiled with 's' 'S' copy buffer options no no when buffer created yes no when buffer first entered (default) - no yes each time when buffer entered (vi comp.) - yes yes when buffer created or first entered + X yes each time when buffer entered (vi comp.) t Search pattern for the tag command is remembered for "n" command. Otherwise Vim only puts the pattern in @@ -7752,7 +7902,7 @@ cpoptions (cpo) string (default "BceFs", unless compiled with match the last one. When this flag is not included, parens inside single and double quotes are treated specially. When matching a paren outside of quotes, - everyting inside quotes is ignored. When matching a + everything inside quotes is ignored. When matching a paren inside quotes, it will find the matching one (if there is one). This works very well for C programs. @@ -7797,9 +7947,11 @@ directory (dir) string (default for Amiga: ".,t:", possible. - Empty means that no swap file will be used (recovery is impossible!). - - A directory '.' means to put the swap file in the same directory as - the edited file. Everything after the "." is ignored, "./temp" is - handled in the same way as ".". + - A directory "." means to put the swap file in the same directory as + the edited file. + - A directory starting with "./" (or ".\" for MS-DOS et.al.) means to + put the swap file relative to where the edited file is. The leading + "." is replaced with the path name of the edited file. - Spaces after the comma are ignored, other spaces are considered part of the directory name. To have a space at the start of a directory name, precede it with a backslash. @@ -7909,10 +8061,11 @@ expandtab (et) toggle (default off) exrc toggle (default off) global {not in Vi} - Enables the reading of .vimrc and .exrc in the current directory. If - you switch this option on you should also consider setting the - 'secure' option (see 3.4 |initialization|). Using a local .exrc or - .vimrc is a potential security leak, use with care! + Enables the reading of .vimrc, .exrc and .gvimrc in the current + directory. If you switch this option on you should also consider + setting the 'secure' option (see 3.4 |initialization|). Using a local + .exrc, .vimrc or .gvimrc is a potential security leak, use with care! + also see |.vimrc| and |gui_init|. *'formatoptions'* *'fo'* formatoptions (fo) string (default "tcq", "vt" when compiled with @@ -8134,7 +8287,10 @@ incsearch (is) toggle (default off) While typing a search pattern, show immediately where the so far typed pattern matches. The matched string is highlighted. If the pattern is invalid or not found, nothing is shown. The screen will - be updated often, this is only useful on fast terminals. + be updated often, this is only useful on fast terminals. Note that + the match will be shown, but the cursor is not actually positioned + there. You still need to finish the search command with <CR> to move + the cursor. *'infercase'* *'inf'* *'noinfercase'* *'noinf'* infercase (inf) toggle (default off) @@ -8216,11 +8372,11 @@ iskeyword (isk) string (default for MS-DOS and Win32: local to buffer {not in Vi} Keywords are used in searching and recognizing with many commands: - "*", "[i", etc. See 'isfname' for a description of the format of this - option. For C programs you could use "a-z,A-Z,48-57,_,.,-,>". For a - help file it is set to all non-blank printable characters except '*', - '"' and '|'. When the 'lisp' option is on the '-' character is always - included. + "w", "*", "[i", etc. See 'isfname' for a description of the format of + this option. For C programs you could use "a-z,A-Z,48-57,_,.,-,>". + For a help file it is set to all non-blank printable characters except + '*', '"' and '|'. When the 'lisp' option is on the '-' character is + always included. *'isprint'* *'isp'* isprint (isp) string (default for MS-DOS and Win32: "@,~-255" @@ -8677,6 +8833,18 @@ shell (sh) string (default $SHELL or "sh", "csh -f". See |option_backslash| about including spaces and backslashes. Environment variables are expanded |:set_env|. + *'shellcmdflag'* *'shcf'* +shellcmdflag (shcf) string (default: "-c", MS-DOS and Win32, when 'shell' + does not contain "sh" somewhere: "/c") + global + {not in Vi} + Flag passed to the shell to execute "!" and ":!" commands; e.g., + "bash.exe -c ls" or "command.com /c dir". For the MS-DOS-like + systems, the default is set according to the value of 'shell', to + reduce the need to set this option by the user. It's not used for + OS/2 (EMX figures this out itself). See |option_backslash| about + including spaces and backslashes. See |win32_shell| for Win32. + *'shellpipe'* *'sp'* shellpipe (sp) string (default ">", "| tee", "|& tee" or "2>&1| tee") global @@ -8698,6 +8866,18 @@ shellpipe (sp) string (default ">", "| tee", "|& tee" or "2>&1| tee") In the future pipes may be used for filtering and this option will become obsolete (at least for Unix). + *'shellquote'* *'shq'* +shellquote (shq) string (default: ""; MS-DOS and Win32, when 'shell' + contains "sh" somewhere: "\"") + global + {not in Vi} + Quoting character(s) passed to the shell to execute "!" and ":!" + commands. This is an empty string by default. Only known to be + useful for third-party shells on MS-DOS-like systems, such as the MKS + Korn Shell or bash, where it should be "\"". The default is adjusted + according the value of 'shell', to reduce the need to set this option + by the user. See |win32_shell| for Win32. + *'shellredir'* *'srr'* shellredir (srr) string (default ">", ">&" or ">%s 2>&1") global @@ -8730,8 +8910,8 @@ shelltype (st) number (default 0) 4 and 5: use shell only for ':sh' command When not using the shell, the command is executed directly. - 0 and 2: use 'shell -c cmd' to start external commands - 1 and 3: use 'shell cmd' to start external commands + 0 and 2: use "shell 'shellcmdflag' cmd" to start external commands + 1 and 3: use "shell cmd" to start external commands *'shiftround'* *'sr'* *'noshiftround'* *'nosr'* shiftround (sr) toggle (default off) @@ -8785,12 +8965,12 @@ shortmess (shm) string (default "") shortname (sn) toggle (default off) local to buffer {not in Vi} - Filenames can be 8 characters plus one extension of 3 characters. - Multiple dots in file names are not allowed. When this option is on, - dots in filenames are replaced with underscores when adding an - extension (".~" or ".swp"). This option is not available for - MS-DOS and Win32, because then it would always be on. This option is - useful when editing files on an MS-DOS compatible filesystem, e.g., + Filenames are assumed to be 8 characters plus one extension of 3 + characters. Multiple dots in file names are not allowed. When this + option is on, dots in filenames are replaced with underscores when + adding an extension (".~" or ".swp"). This option is not available + for MS-DOS and Win32, because then it would always be on. This option + is useful when editing files on an MS-DOS compatible filesystem, e.g., messydos or crossdos. *'showbreak'* *'sbr'* @@ -9063,7 +9243,7 @@ ttimeoutlen (ttm) number (default -1) {not in Vi} The time in milliseconds that is waited for a key code or mapped key sequence to complete. Normally only 'timeoutlen' is used and - 'ttimeoutline' is -1. When a different timeout value for key codes is + 'ttimeoutlen' is -1. When a different timeout value for key codes is desired set 'ttimeoutlen' to a non-negative number. ttimeoutlen mapping delay key code delay @@ -9072,7 +9252,7 @@ ttimeoutlen (ttm) number (default -1) The timeout only happens when the 'timeout' and 'ttimeout' options tell so. A useful setting would be - :set timeout timeoutlen=3000 ttimeloutlen=100 + :set timeout timeoutlen=3000 ttimeoutlen=100 (time out on mapping after three seconds, time out on key codes after a tenth of a second). @@ -9097,6 +9277,19 @@ title toggle (default off, on when title can be restored) title of the window should change back to what it should be after exiting Vim (rather than using the "Thanks..." message). + *'titlelen'* +titlelen number (default 85) + global + {not in Vi} + Gives the percentage of 'columns' to use for the length of the window + title. When the title is longer, only the end of the path name is + shown. A '>' character is used to indicate this. Using a percentage + makes this adapt to the width of the window. But it won't work + perfectly, because the actual number of characters available also + depends on the font used and other things in the title bar. When + 'titlelen' is zero the full path is used. Otherwise, values from 1 to + 30000 can be used. + *'ttybuiltin'* *'tbi'* *'nottybuiltin'* *'notbi'* ttybuiltin (tbi) toggle (default on) global @@ -9215,8 +9408,8 @@ visualbell (vb) toggle (default off) {not in Vi} Use visual bell instead of beeping. The terminal code to display the visual bell is given with 't_vb'. When no beep of flash is wanted, - Does not work on the Amiga, you always get a screen flash. use ":set - vb t_vb=". Also see 'errorbells'. + use ":set vb t_vb=". Does not work on the Amiga, you always get a + screen flash. Also see 'errorbells'. *'warn'* *'nowarn'* warn toggle (default on) @@ -9447,6 +9640,15 @@ The default termcap entry for xterm on sun and other platforms does not contain the entry for scroll regions. Add ":cs=\E[%i%d;%dr:" to the xterm entry in /etc/termcap and everything should work. + *xterm_end_home_keys* +On some systems (at least on FreeBSD with X386 3.1.2) the codes that the <End> +and <Home> keys send contain a <Nul> character. To make these keys send the +proper key code, add these lines to your ~/.Xdefaults file: + +*VT100.Translations: #override \n\ + <Key>Home: string("0x1b") string("[7~") \n\ + <Key>End: string("0x1b") string("[8~") + 20.2 Terminal options *terminal_options* @@ -9548,6 +9750,10 @@ Note: Use the <> form if possible t_@7 <End> end key *t_@7* *'t_@7'* t_kP <PageUp> page-up key *t_kP* *'t_kP'* t_kN <PageDown> page-down key *t_kN* *'t_kN'* + t_K1 <kHome> keypad home key *t_K1* *'t_K1'* + t_K4 <kEnd> keypad end key *t_K4* *'t_K4'* + t_K3 <kPageUp> keypad page-up key *t_K3* *'t_K3'* + t_K5 <kPageDown> keypad page-down key *t_K5* *'t_K5'* Note about t_so and t_mr: When the termcap entry "so" is not present the entry for "mr" is used. And vice versa. The same is done for "se" and "me". diff --git a/usr.bin/vim/doc/vim_rlh.txt b/usr.bin/vim/doc/vim_rlh.txt index fd667d043aa..9f8dcbfbbe8 100644 --- a/usr.bin/vim/doc/vim_rlh.txt +++ b/usr.bin/vim/doc/vim_rlh.txt @@ -1,4 +1,4 @@ -*vim_rlh.txt* For Vim version 4.2. Last modification: 1996 June 11 +*vim_rlh.txt* For Vim version 4.4. Last modification: 1996 June 11 Right to Left and Hebrew Mapping for Vim *hebrew* ======================================== diff --git a/usr.bin/vim/doc/vim_tags b/usr.bin/vim/doc/vim_tags index acd78b65659..a58adfe8025 100644 --- a/usr.bin/vim/doc/vim_tags +++ b/usr.bin/vim/doc/vim_tags @@ -324,8 +324,11 @@ $ vim_ref.txt /\*$\* 'sections' vim_ref.txt /\*'sections'\* 'secure' vim_ref.txt /\*'secure'\* 'sh' vim_ref.txt /\*'sh'\* +'shcf' vim_ref.txt /\*'shcf'\* 'shell' vim_ref.txt /\*'shell'\* +'shellcmdflag' vim_ref.txt /\*'shellcmdflag'\* 'shellpipe' vim_ref.txt /\*'shellpipe'\* +'shellquote' vim_ref.txt /\*'shellquote'\* 'shellredir' vim_ref.txt /\*'shellredir'\* 'shelltype' vim_ref.txt /\*'shelltype'\* 'shiftround' vim_ref.txt /\*'shiftround'\* @@ -337,6 +340,7 @@ $ vim_ref.txt /\*$\* 'showcmd' vim_ref.txt /\*'showcmd'\* 'showmatch' vim_ref.txt /\*'showmatch'\* 'showmode' vim_ref.txt /\*'showmode'\* +'shq' vim_ref.txt /\*'shq'\* 'si' vim_ref.txt /\*'si'\* 'sidescroll' vim_ref.txt /\*'sidescroll'\* 'sj' vim_ref.txt /\*'sj'\* @@ -374,6 +378,10 @@ $ vim_ref.txt /\*$\* 't_DL' vim_ref.txt /\*'t_DL'\* 't_F1' vim_ref.txt /\*'t_F1'\* 't_F2' vim_ref.txt /\*'t_F2'\* +'t_K1' vim_ref.txt /\*'t_K1'\* +'t_K3' vim_ref.txt /\*'t_K3'\* +'t_K4' vim_ref.txt /\*'t_K4'\* +'t_K5' vim_ref.txt /\*'t_K5'\* 't_RI' vim_ref.txt /\*'t_RI'\* 't_ZH' vim_ref.txt /\*'t_ZH'\* 't_ZR' vim_ref.txt /\*'t_ZR'\* @@ -442,6 +450,7 @@ $ vim_ref.txt /\*$\* 'timeout' vim_ref.txt /\*'timeout'\* 'timeoutlen' vim_ref.txt /\*'timeoutlen'\* 'title' vim_ref.txt /\*'title'\* +'titlelen' vim_ref.txt /\*'titlelen'\* 'tl' vim_ref.txt /\*'tl'\* 'tm' vim_ref.txt /\*'tm'\* 'to' vim_ref.txt /\*'to'\* @@ -568,9 +577,39 @@ $ vim_ref.txt /\*$\* .exrc vim_ref.txt /\*.exrc\* .vimrc vim_ref.txt /\*.vimrc\* / vim_ref.txt /\*/\* +/$ vim_ref.txt /\*/$\* +/. vim_ref.txt /\*/.\* //; vim_ref.txt /\*//;\* /<CR> vim_ref.txt /\*/<CR>\* +/[] vim_ref.txt /\*/[]\* +/\ vim_ref.txt /\*/\\\* +/\(\) vim_ref.txt /\*/\\(\\)\* +/\+ vim_ref.txt /\*/\\+\* +/\. vim_ref.txt /\*/\\.\* +/\< vim_ref.txt /\*/\\<\* +/\= vim_ref.txt /\*/\\=\* +/\> vim_ref.txt /\*/\\>\* +/\F vim_ref.txt /\*/\\F\* +/\I vim_ref.txt /\*/\\I\* +/\K vim_ref.txt /\*/\\K\* +/\P vim_ref.txt /\*/\\P\* +/\[] vim_ref.txt /\*/\\[]\* +/\b vim_ref.txt /\*/\\b\* +/\bar vim_ref.txt /\*/\\bar\* +/\e vim_ref.txt /\*/\\e\* +/\f vim_ref.txt /\*/\\f\* +/\i vim_ref.txt /\*/\\i\* +/\k vim_ref.txt /\*/\\k\* +/\p vim_ref.txt /\*/\\p\* +/\r vim_ref.txt /\*/\\r\* +/\star vim_ref.txt /\*/\\star\* +/\t vim_ref.txt /\*/\\t\* +/\~ vim_ref.txt /\*/\\~\* +/^ vim_ref.txt /\*/^\* +/bar vim_ref.txt /\*/bar\* +/star vim_ref.txt /\*/star\* /vim/src/ vim_ref.txt /\*/vim/src/\* +/~ vim_ref.txt /\*/~\* 0 vim_ref.txt /\*0\* : vim_ref.txt /\*:\* :! vim_ref.txt /\*:!\* @@ -712,6 +751,7 @@ $ vim_ref.txt /\*$\* :edit! vim_ref.txt /\*:edit!\* :edit!_f vim_ref.txt /\*:edit!_f\* :edit_f vim_ref.txt /\*:edit_f\* +:endif vim_ref.txt /\*:endif\* :ex vim_ref.txt /\*:ex\* :exi vim_ref.txt /\*:exi\* :exit vim_ref.txt /\*:exit\* @@ -735,6 +775,7 @@ $ vim_ref.txt /\*$\* :iabbrev vim_ref.txt /\*:iabbrev\* :iabc vim_ref.txt /\*:iabc\* :iabclear vim_ref.txt /\*:iabclear\* +:if vim_ref.txt /\*:if\* :ij vim_ref.txt /\*:ij\* :ijump vim_ref.txt /\*:ijump\* :il vim_ref.txt /\*:il\* @@ -1140,6 +1181,7 @@ FileReadPost vim_ref.txt /\*FileReadPost\* FileReadPre vim_ref.txt /\*FileReadPre\* FileWritePost vim_ref.txt /\*FileWritePost\* FileWritePre vim_ref.txt /\*FileWritePre\* +Filter vim_ref.txt /\*Filter\* FilterReadPost vim_ref.txt /\*FilterReadPost\* FilterReadPre vim_ref.txt /\*FilterReadPre\* FilterWritePost vim_ref.txt /\*FilterWritePost\* @@ -1214,6 +1256,7 @@ X_vm vim_help.txt /\*X_vm\* X_wi vim_help.txt /\*X_wi\* X_wq vim_help.txt /\*X_wq\* Y vim_ref.txt /\*Y\* +ZQ vim_ref.txt /\*ZQ\* ZZ vim_ref.txt /\*ZZ\* [ vim_idx.txt /\*[\* [# vim_ref.txt /\*[#\* @@ -1276,7 +1319,10 @@ argument_list vim_ref.txt /\*argument_list\* author vim_help.txt /\*author\* auto_setting vim_ref.txt /\*auto_setting\* auto_shortname vim_ref.txt /\*auto_shortname\* +autocmd-<> vim_tips.txt /\*autocmd-<>\* autocommand vim_ref.txt /\*autocommand\* +autocommand-events vim_ref.txt /\*autocommand-events\* +autocommand-pattern vim_ref.txt /\*autocommand-pattern\* b vim_ref.txt /\*b\* backspace vim_ref.txt /\*backspace\* backspace_delete vim_40.txt /\*backspace_delete\* @@ -1287,6 +1333,7 @@ backup_table vim_ref.txt /\*backup_table\* bar vim_ref.txt /\*bar\* bars vim_help.txt /\*bars\* beep vim_ref.txt /\*beep\* +buffer-menu vim_tips.txt /\*buffer-menu\* bug_fixes vim_40.txt /\*bug_fixes\* bugs vim_help.txt /\*bugs\* builtin_terms vim_ref.txt /\*builtin_terms\* @@ -1379,8 +1426,10 @@ deleting vim_ref.txt /\*deleting\* dh vim_ref.txt /\*dh\* digraph_table vim_digr.txt /\*digraph_table\* digraphs vim_ref.txt /\*digraphs\* +distribution vim_help.txt /\*distribution\* dl vim_ref.txt /\*dl\* doc_files vim_ref.txt /\*doc_files\* +download vim_help.txt /\*download\* dp vim_ref.txt /\*dp\* drag_status_line vim_ref.txt /\*drag_status_line\* ds vim_ref.txt /\*ds\* @@ -1407,6 +1456,7 @@ fork vim_unix.txt /\*fork\* format_bullet_list vim_tips.txt /\*format_bullet_list\* format_comments vim_ref.txt /\*format_comments\* formatting vim_ref.txt /\*formatting\* +ftp vim_help.txt /\*ftp\* function-key vim_ref.txt /\*function-key\* function_key vim_ref.txt /\*function_key\* g vim_idx.txt /\*g\* @@ -1445,6 +1495,7 @@ gui_delete_menus vim_gui.txt /\*gui_delete_menus\* gui_extras vim_gui.txt /\*gui_extras\* gui_fork vim_gui.txt /\*gui_fork\* gui_horiz_scroll vim_gui.txt /\*gui_horiz_scroll\* +gui_init vim_gui.txt /\*gui_init\* gui_intro vim_gui.txt /\*gui_intro\* gui_menus vim_gui.txt /\*gui_menus\* gui_mouse vim_gui.txt /\*gui_mouse\* @@ -1560,6 +1611,7 @@ insert vim_ref.txt /\*insert\* insert_expand vim_ref.txt /\*insert_expand\* insert_index vim_idx.txt /\*insert_index\* inserting vim_ref.txt /\*inserting\* +into vim_dos.txt /\*into\* intro vim_ref.txt /\*intro\* j vim_ref.txt /\*j\* jumplist vim_ref.txt /\*jumplist\* @@ -1567,6 +1619,10 @@ k vim_ref.txt /\*k\* key_codes_changed vim_40.txt /\*key_codes_changed\* key_mapping vim_ref.txt /\*key_mapping\* key_notation vim_ref.txt /\*key_notation\* +keypad_end vim_ref.txt /\*keypad_end\* +keypad_home vim_ref.txt /\*keypad_home\* +keypad_page_down vim_ref.txt /\*keypad_page_down\* +keypad_page_up vim_ref.txt /\*keypad_page_up\* l vim_ref.txt /\*l\* left_right_motions vim_ref.txt /\*left_right_motions\* limits vim_ref.txt /\*limits\* @@ -1705,6 +1761,10 @@ t_CS vim_ref.txt /\*t_CS\* t_DL vim_ref.txt /\*t_DL\* t_F1 vim_ref.txt /\*t_F1\* t_F2 vim_ref.txt /\*t_F2\* +t_K1 vim_ref.txt /\*t_K1\* +t_K3 vim_ref.txt /\*t_K3\* +t_K4 vim_ref.txt /\*t_K4\* +t_K5 vim_ref.txt /\*t_K5\* t_RI vim_ref.txt /\*t_RI\* t_ZH vim_ref.txt /\*t_ZH\* t_ZR vim_ref.txt /\*t_ZR\* @@ -1822,6 +1882,7 @@ up_down_motions vim_ref.txt /\*up_down_motions\* use_visual_cmds vim_40.txt /\*use_visual_cmds\* useful-mappings vim_tips.txt /\*useful-mappings\* usenet vim_help.txt /\*usenet\* +using_CTRL-V vim_ref.txt /\*using_CTRL-V\* v vim_ref.txt /\*v\* v_! vim_ref.txt /\*v_!\* v_: vim_ref.txt /\*v_:\* @@ -1888,6 +1949,7 @@ vim_unix.txt vim_unix.txt /\*vim_unix.txt\* vim_w32.txt vim_w32.txt /\*vim_w32.txt\* vim_win.txt vim_win.txt /\*vim_win.txt\* vimdev vim_help.txt /\*vimdev\* +viminfo_errors vim_ref.txt /\*viminfo_errors\* viminfo_file vim_ref.txt /\*viminfo_file\* viminfo_file_marks vim_ref.txt /\*viminfo_file_marks\* vimrc vim_ref.txt /\*vimrc\* @@ -1895,6 +1957,9 @@ visual_block vim_ref.txt /\*visual_block\* visual_index vim_idx.txt /\*visual_index\* vt100_cursor_keys vim_ref.txt /\*vt100_cursor_keys\* w vim_ref.txt /\*w\* +win32_faq vim_w32.txt /\*win32_faq\* +win32_shell vim_w32.txt /\*win32_shell\* +win32_term vim_w32.txt /\*win32_term\* window_contents vim_ref.txt /\*window_contents\* window_size vim_ref.txt /\*window_size\* word vim_ref.txt /\*word\* @@ -1908,6 +1973,7 @@ x vim_ref.txt /\*x\* xterm-screens vim_tips.txt /\*xterm-screens\* xterm_copy_paste vim_ref.txt /\*xterm_copy_paste\* xterm_cursor_keys vim_ref.txt /\*xterm_cursor_keys\* +xterm_end_home_keys vim_ref.txt /\*xterm_end_home_keys\* y vim_ref.txt /\*y\* ye_option_gone vim_40.txt /\*ye_option_gone\* yy vim_ref.txt /\*yy\* diff --git a/usr.bin/vim/doc/vim_tips.txt b/usr.bin/vim/doc/vim_tips.txt index 28ac34e8610..95c44523a76 100644 --- a/usr.bin/vim/doc/vim_tips.txt +++ b/usr.bin/vim/doc/vim_tips.txt @@ -1,4 +1,4 @@ -*vim_tips.txt* For Vim version 4.2. Last modification: 1996 June 16 +*vim_tips.txt* For Vim version 4.4. Last modification: 1996 Aug 30 Contents: @@ -15,6 +15,7 @@ Useful mappings |useful-mappings| Compressing the help files |gzip-helpfile| Executing shell commands in a window |shell_window| Pseudo-Ex mode |pseudo-Q| +Using <> notation in autocommands |autocmd-<>| Editing C programs *C-editing* @@ -304,4 +305,23 @@ cabbrev visual cunmap <C-V><CR><NL> In a following version of Vim the "Q" command will be made Vi compatible. Use "gq" for formatting text. + +Using <> notation in autocommands *autocmd-<>* +================================= + +The <> notation is not recognized in the argument for :autocmd. To avoid +having to use special characters, you could use a mapping to get the <> +notation and then call the mapping from the autocmd. Example: + + *buffer-menu* +" +" This is for automatically adding the name of the file to the menu list +" first we use the normal mode to convert the 'dots' in the filename to +" \., store that in register '"' and then add that name to the Buffers menu +" list. WARNING: this does have some side effects, like overwriting the +" current register contents. +" +nmap _xaddbufmenu O<C-R>%<Esc>:.g/\./s/\./\\./g<CR>0"9y$u:menu Buffers.<C-R>9 :buffer <C-R>%<C-V><C-M><C-M> +autocmd BufNewFile,BufReadPre * normal _xaddbufmenu + vim:ts=8:sw=8:js:tw=78: diff --git a/usr.bin/vim/doc/vim_unix.txt b/usr.bin/vim/doc/vim_unix.txt index 48631b983b7..1761d41698a 100644 --- a/usr.bin/vim/doc/vim_unix.txt +++ b/usr.bin/vim/doc/vim_unix.txt @@ -1,4 +1,4 @@ -*vim_unix.txt* For Vim version 4.2. Last modification: 1996 Apr 23 +*vim_unix.txt* For Vim version 4.4. Last modification: 1996 Apr 23 This file contains the particularities for the Unix version of Vim. diff --git a/usr.bin/vim/doc/vim_w32.txt b/usr.bin/vim/doc/vim_w32.txt index b6cd5e2f1eb..1abe28ae949 100644 --- a/usr.bin/vim/doc/vim_w32.txt +++ b/usr.bin/vim/doc/vim_w32.txt @@ -1,4 +1,4 @@ -*vim_w32.txt* For Vim version 4.2. Last modification: 1996 June 13 +*vim_w32.txt* For Vim version 4.4. Last modification: 1996 Aug 12 This file documents the idiosyncrasies of the Win32 version of Vim. @@ -11,13 +11,66 @@ box"). It is not a full-fledged Windows GUI application, although it may become one some day. It will not run in the Win32s subsystem in Windows 3.1; use the 32-bit DOS version of Vim instead. See |vim_dos.txt|. -Vim for Win32 compiles with the Microsoft Visual C++ 2.0 compiler and later, -and with the Borland C++ 4.5 32-bit compiler and later. It compiles on -Windows 95 and all four NT platforms: i386, Alpha, MIPS, and PowerPC. The -NT/i386 and the Windows 95 binaries are identical. Use Makefile.w32 to -compile with Visual C++ and Makefile.b32 to compile with Borland C++. -You can set the colour used in five modes with nine termcap options. Which of +KNOWN PROBLEMS + +There are a few known problems with running the Win32 Vim on Windows 95. +Comments from somebody working at Microsoft: "Win95 console support has always +been and will always be flaky". +- Dead key support doesn't work. +- Resizing the window with ":set columns=nn rows=n" works, but executing + external commands may cause the system to crash. + +If this bothers you, use the 32 bit MS-DOS version. + +- When doing filename completion, matches for the short filename will also be + found. But this will result in the corresponding long filename. For + example, if you have the long file name "this_is_a_test" with the short + filename "this_i~1", the command ":e *1" will start editing + "this_is_a_test". + + +LOCATION OF DOCUMENTATION and VIMRC FILE + +You should set the environment variable "VIM" to the directory where the Vim +documentation files are. If "VIM" is used but not defined, "HOME" is tried +too. + +If the HOME environment variable is not set, the value "C:/" is used as a +default. + +The default help filename is "$VIM\vim_help.txt". If the environment variable +$VIM is not defined or the file is not found, the Win32 search path is used to +search for the file "vim_help.txt". If you do not want to put "vim_help.txt" +in your search path, use the command ":set helpfile=pathname" to tell Vim +where the help file is. |'helpfile'| + +Vim will look for initializations in eight places. The first that is found +is used and the others are ignored. The order is: + - The environment variable VIMINIT + - The file "$VIM/_vimrc" + - The file "$HOME/_vimrc" + - The file "$VIM/.vimrc" + - The file "$HOME/.vimrc" + - The environment variable EXINIT + - The file "$VIM/_exrc" + - The file "$HOME/_exrc" + + +USING BACKSLASHES + +Using backslashes in file names can be a problem. Vi halves the number of +backslashes for some commands. Vim is a bit more tolerant and backslashes +are not removed from a file name, so ":e c:\foo\bar" works as expected. But +when a backslash is used before a special character (space, comma, backslash, +etc.), it is removed. Use slashes to avoid problems: ":e c:/foo/bar" works +fine. Vim will replace the slashes with backslashes internally, to avoid +problems with some MS-DOS programs and Win32 programs. + + +USING COLORS + +You can set the color used in five modes with nine termcap options. Which of the five modes is used for which action depends on the |'highlight'| option. ":set t_mr=^V^[\|xxm" start of invert mode @@ -34,11 +87,11 @@ the five modes is used for which action depends on the |'highlight'| option. ":set t_ZR=^V^[\|xxm" back to normal text ^V is CTRL-V -^[ is ESC -xx must be replaced by a decimal code, which is the foreground colour number - and background colour number added together: +^[ is <Esc> +xx must be replaced with a decimal code, which is the foreground color number + and background color number added together: -COLOUR FOREGROUND BACKGROUND +COLOR FOREGROUND BACKGROUND black 0 0 blue 1 16 green 2 32 @@ -56,35 +109,38 @@ COLOUR FOREGROUND BACKGROUND yellow 14 224 white 15 240 -When you use 0, the colour is reset to the one used when you started Vim +When you use 0, the color is reset to the one used when you started Vim (usually 7, lightgray on black, but you can override this in NT. If you have -overridden the default colours in a command prompt, you may need to adjust -some of the highlight colours in your vimrc---see below). +overridden the default colors in a command prompt, you may need to adjust +some of the highlight colors in your vimrc---see below). The defaults for the various highlight modes are: - t_mr 112 reverse mode: black text on lightgray - t_md 63 bold mode: white text on cyan - t_me 0 normal mode (revert to default) + t_mr 112 reverse mode: black text (0) on lightgray (112) + t_md 63 bold mode: white text (15) on cyan (48) + t_me 0 normal mode (revert to default) - t_so 31 standout mode: white text on blue - t_se 0 standout mode end (revert to default) + t_so 31 standout mode: white (15) text on blue (16) + t_se 0 standout mode end (revert to default) - t_czh 225 italic mode: blue text on yellow - t_czr 0 italic mode end (revert to default) + t_czh 225 italic mode: blue text (1) on yellow (224) + t_czr 0 italic mode end (revert to default) - t_us 67 underline mode: cyan text on red - t_ue 0 underline mode end (revert to default) + t_us 67 underline mode: cyan text (3) on red (64) + t_ue 0 underline mode end (revert to default) -These colours were chosen because they also look good when using an inverted +These colors were chosen because they also look good when using an inverted display, but you can change them to your liking. Example: -:set t_mr=^V^[\|97m " start of invert mode: blue on brown -:set t_md=^V^[\|67m " start of bold mode: cyan on red -:set t_me=^V^[\|112m " back to normal mode: black on light gray +:set t_mr=^V^[\|97m " start of invert mode: blue (1) on brown (96) +:set t_md=^V^[\|67m " start of bold mode: cyan (3) on red (64) +:set t_me=^V^[\|112m " back to normal mode: black (0) on light gray (112) -:set t_so=^V^[\|37m " start of standout mode: magenta on green -:set t_se=^V^[\|112m " back to normal mode: black on light gray +:set t_so=^V^[\|37m " start of standout mode: magenta (5) on green (32) +:set t_se=^V^[\|112m " back to normal mode: black (0) on light gray (112) + + +TEXTMODE or NON-MS-DOS FILES If the "tx" (textmode) option is set (which is the default), Vim will accept a single <NL> or a <CR><NL> pair for end-of-line. When writing a file, Vim @@ -97,71 +153,81 @@ and writing in non-text mode (":se notx"). 'textmode' is set automatically when 'textauto' is on (which is the default), so you don't really have to worry about what you are doing. |'textmode'| |'textauto'| -When 'restorescreen' is set (which is the default), Vim will restore the -original contents of the console when exiting or when executing external -commands. If you don't want this, use ":set nors". |'restorescreen'| - -Using backslashes in file names can be a problem. Vi halves the number of -backslashes for some commands. Vim is a bit more tolerant and backslashes -are not removed from a file name, so ":e c:\foo\bar" works as expected. But -when a backslash is used before a special character (space, comma, backslash, -etc.), it is removed. Use slashes to avoid problems: ":e c:/foo/bar" works -fine. Vim will replace the slashes with backslashes internally, to avoid -problems with some MS-DOS programs and Win32 programs. - If you want to edit a script file or a binary file, you should reset the 'textmode' and 'textauto' options before loading the file. Script files and binary files may contain single <NL> characters which would be replaced with <CR><NL>. You can reset 'textmode' and 'textauto' automatically by starting Vim with the "-b" (binary) option. -You should set the environment variable "VIM" to the directory where the Vim -documentation files are. If "VIM" is used but not defined, "HOME" is tried -too. - -If the HOME environment variable is not set, the value "C:/" is used as a -default. - -The default help filename is "$VIM\vim_help.txt". If the environment variable -$VIM is not defined or the file is not found, the Win32 search path is used to -search for the file "vim_help.txt". If you do not want to put "vim_help.txt" -in your search path, use the command ":set helpfile=pathname" to tell Vim -where the help file is. |'helpfile'| - -Vim will look for initializations in eight places. The first that is found -is used and the others are ignored. The order is: - - The environment variable VIMINIT - - The file "$VIM/_vimrc" - - The file "$HOME/_vimrc" - - The file "$VIM/.vimrc" - - The file "$HOME/.vimrc" - - The environment variable EXINIT - - The file "$VIM/_exrc" - - The file "$HOME/_exrc" -The only kind of terminal type that the Win32 version of Vim understands is -"win32", which is built-in. If you set the TERM environment variable to -anything else, you will probably get very strange behaviour from Vim. This is -most likely to happen when running a non-standard shell such as Cygnus's -GNU-Win32 bash (http://www.cygnus.com/misc/gnu-win32) or the one in the MKS -toolkit. Use "unset TERM" before starting Vim! +:CD COMMAND The ":cd" command recognizes the drive specifier and changes the current drive. Use ":cd c:" to make drive C the active drive. Use ":cd d:\foo" to go to the directory "foo" in the root of drive D. UNC names are also recognized; e.g., ":cd \\server\share\dir". |:cd| + +INTERRUPTING + Use CTRL-BREAK instead of CTRL-C to interrupt searches. The CTRL-C is not detected until a key is read. -Temporary files (for filtering) are put in the current directory. +TEMP FILES + +Temporary files (for filtering) are put in the first directory in the next +list that exists and where a file can be created: + $TMP + $TEMP + C:\TMP + C:\TEMP + current directory + + +SHELL OPTION DEFAULT + *win32_shell* The default for the 'sh' ('shell') option is "command.com" on Windows 95 and "cmd.exe" on Windows NT. If SHELL is defined, it is used instead, and if SHELL is not defined but COMSPEC is, COMPSPEC is used. External commands are -started with "command /c <command_name>". Typing CTRL-Z starts a new +started with "<shell> /c <command_name>". Typing CTRL-Z starts a new command subshell. Return to Vim with "exit". |'shell'| |CTRL-Z| +If you are running a third-party shell, you may need to set the +|'shellcmdflag'| ('shcf') and |'shellquote'| ('shq') options. For example, +with the MKS Korn shell or with bash, the values of the options should be: + 'shellcmdflag' -c + 'shellquote' " +This will start the shell as + <shell> -c "<command name>" +"-c" is needed in place of "/c" and double quotes are needed around the +command passed to the shell. Vim will check for the presence of "sh" anywhere +in the 'shell' option. If it is present, the 'shellcmdflag' and 'shellquote' +option will be set to "-c" and "\"". + +TERM OPTION DEFAULT + *win32_term* +The only kind of terminal type that the Win32 version of Vim understands is +"win32", which is built-in. If you set 'term' to anything else, you will +probably get very strange behaviour from Vim. Therefore the default value of +'term' is not obtained from the environment variable "TERM". + + +RESTORE SCREEN CONTENTS + +When 'restorescreen' is set (which is the default), Vim will restore the +original contents of the console when exiting or when executing external +commands. If you don't want this, use ":set nors". |'restorescreen'| + + +COMPILING + +Vim for Win32 compiles with the Microsoft Visual C++ 2.0 compiler and later, +and with the Borland C++ 4.5 32-bit compiler and later. It compiles on +Windows 95 and all four NT platforms: i386, Alpha, MIPS, and PowerPC. The +NT/i386 and the Windows 95 binaries are identical. Use Makefile.w32 to +compile with Visual C++ and Makefile.b32 to compile with Borland C++. + The Win32 binary was compiled with Visual C++ version 4.0, using Makefile.w32. Other compilers should also work. If you get all kinds of strange error messages when compiling (you shouldn't with the Microsoft or Borland 32-bit @@ -170,10 +236,16 @@ done with the addcr program: "nmake -f makefile.w32 addcr". This will compile addcr.c to addcr.exe and then execute the addcr.bat file. Sometimes this fails. In that case, execute the addcr.bat file from the DOS prompt. + +USING THE MOUSE + The Win32 version of Vim supports using the mouse. If you have a two-button mouse, the middle button can be emulated by pressing both left and right buttons simultaneously. |mouse_using| + +WIN32 FAQ *win32_faq* + Q. Why does the Win32 version of Vim update the screen so slowly on Windows 95? A. The support for Win32 console mode applications is very buggy in Win95. For some unknown reason, the screen updates very slowly when Vim is run at diff --git a/usr.bin/vim/doc/vim_win.txt b/usr.bin/vim/doc/vim_win.txt index 1a3b5d7a388..1e62bc8b439 100644 --- a/usr.bin/vim/doc/vim_win.txt +++ b/usr.bin/vim/doc/vim_win.txt @@ -1,4 +1,4 @@ -*vim_win.txt* For Vim version 4.2. Last modification: 1996 June 16 +*vim_win.txt* For Vim version 4.4. Last modification: 1996 Aug 6 Editing with multiple windows and buffers. @@ -51,6 +51,9 @@ be editing empty buffers. If there are many filenames, the windows will become very small. You might want to set the 'winheight' option to create a workable situation. +Buf/Win Enter/Leave autocommands are not executed when opening the new windows +and reading the files, that's only done when they are really entered. + *status_line* A status line will be used to separate windows. The 'laststatus' option tells when the last window also has a status line: @@ -322,6 +325,8 @@ can also get to them with the buffer list commands, like ":bnext". :[N]sal[l] [N] Rearrange the screen to open one window for each argument. All other windows are closed (buffers become hidden). When a count is given, this is the maximum number of windows to open. + Buf/Win Enter/Leave autocommands are not executed for the new + windows here, that's only done when they are really entered. :[N]sa[rgument][!] [N] *:sa* *:sargument* Short for ":split | argument [N]": split window and go to Nth @@ -540,7 +545,9 @@ Be careful: there may be more hidden, modified buffers! :[N]ba[ll] [N] *:ba* *:ball* *:sba* *:sball* :[N]sba[ll] [N] Rearrange the screen to open one window for each buffer in the buffer list. When a count is given, this is the maximum - number of windows to open. + number of windows to open. Buf/Win Enter/Leave autocommands + are not executed for the new windows here, that's only done + when they are really entered. Memory usage limits |