Differences between current version and revision by previous author of HowToVimHOWTO.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Monday, October 25, 2004 4:06:00 am | by StuartYeates | |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:07:48 am | by perry | Revert |
@@ -1,3761 +1 @@
-
-
-
-Vim Color Editor HOW-TO (Vi Improved with syntax color highlighting)
-
-
-
-----
-
-!!!Vim Color Editor HOW-TO (Vi Improved with syntax color highlighting)
-
-!!Al Dev (Alavoor Vasudevan)
- alavoor
[[AT
]yahoo.com v17.9, 11 April 2002
-
-
-----
-''This document is a guide to quickly setting up the Vim color editor on Linux or Unix systems. The information
here will improve the productivity of programmers because the
-Vim editor supports syntax color highlighting and bold fonts, improving the
-"readability" of program code. A programmer's productivity improves 2 to 3 times with a color editor like Vim.
-The information in this document applies to all operating sytems where Vim works, such as Linux, Windows 95/NT, Apple Mac, IBM OSes, VMS, BeOS and all flavors of Unix like Solaris, HPUX, AIX, SCO, Sinix, BSD, Ultrix etc.. (it means almost all operating systems on this planet!)''
-----
-
-
-
-
-!!1. Introduction
-
-
-****1.1 Before you Install
-
-****1.2 Install Vim on Redhat Linux
-
-****1.3 Install Vim on Debian GNU/Linux
-
-****1.4 Install Vim on Unixes
-
-****1.5 Install Vim on Microsoft Windows 95/NT
-
-****1.6 Install Vim on VMS
-
-****1.7 Install Vim on OS/2
-
-****1.8 Install Vim on Apple Macintosh
-
-
-
-
-
-!!2. Install Vim on Microsoft Windows 95/NT
-
-
-****2.1 Install bash shell
-
-****2.2 Edit bash_profile
-
-****2.3 Setup Window colors
-
-
-
-
-
-!!3. Setup gvim init files
-
-
-****3.1 Sample gvimrc file
-
-****3.2 Xdefaults parameters
-
-
-
-
-
-!!4. Color Syntax init files
-
-
-****4.1 Auto source-in method
-
-****4.2 Manual method
-
-
-
-
-
-!!5. VIM Usage
-
-
-
-
-!!6. Remote Vi - MS Windows QVWM Manager
-
-
-
-
-!!7. Vi companions
-
-
-****7.1 Ctags for ESQL
-
-****7.2 Ctags for !JavaScript programs, Korn, Bourne shells
-
-****7.3 Debugger gdb
-
-
-
-
-
-!!8. Online VIM help
-
-
-
-
-!!9. Vim Home page and Vim links
-
-
-
-
-!!10. Vim Tutorial
-
-
-****10.1 Vim Hands-on Tutorial
-
-****10.2 Vi Tutorials on Internet
-
-
-
-
-
-!!11. Vi Tutorial
-
-
-****11.1 Cursor Movement Commands
-
-****11.2 Repeat Counts
-
-****11.3 Deleting Text
-
-****11.4 Changing Text
-
-****11.5 Yanking (Copying) Text
-
-****11.6 Filtering text
-
-****11.7 Marking Lines and Characters
-
-****11.8 Naming Buffers
-
-****11.9 Substitutions
-
-****11.10 Miscellaneous "Colon Commands"
-
-****11.11 Setting Options
-
-****11.12 Key Mappings
-
-****11.13 Editing Multiple Files
-
-****11.14 Final Remarks
-
-
-
-
-
-!!12. Vim Reference Card
-
-
-****12.1 Vi states
-
-****12.2 Shell Commands
-
-****12.3 Setting Options
-
-****12.4 Notations used
-
-****12.5 Interrupting, cancelling
-
-****12.6 File Manipulation
-
-****12.7 Movement
-
-****12.8 Line Positioning
-
-****12.9 Character positioning
-
-****12.10 Words, sentences, paragraphs
-
-****12.11 Marking and returning
-
-****12.12 Corrections during insert
-
-****12.13 Adjusting the screen
-
-****12.14 Delete
-
-****12.15 Insert, change
-
-****12.16 Copy and Paste
-
-****12.17 Operators (use double to affect lines)
-
-****12.18 Search and replace
-
-****12.19 General
-
-****12.20 Line Editor Commands
-
-****12.21 Other commands
-
-
-
-
-
-!!13. Related URLs
-
-
-
-
-!!14. Other Formats of this Document
-
-
-****14.1 Acrobat PDF format
-
-****14.2 Convert Linuxdoc to Docbook format
-
-****14.3 Convert to MS !WinHelp format
-
-****14.4 Reading various formats
-
-
-
-
-
-!!15. Copyright Notice
-----
-
-!!1. Introduction
-
-
-__(The latest version of this document is at
-http://www.milkywaygalaxy.freeservers.com. You may
-want to check there for changes).__
-
-
-Vim stands for 'Vi Improved'. Vi is the most popular and powerful
-editors in the Unix world. __Vi__ is an abbreviation for "''__Vi__''sual" editor.
-One of the first editors was a line editor
-called 'ed' (and 'ex'). The ''__Vi__''sual editor
-like Vi was a vast improvement over line editors like 'ed' (or 'ex'). The editors 'ed'
-and 'ex' are still available on Linux: see 'man ed' and 'man ex'.
-
-
-A good editor improves programmer productivity. Vim supports color syntax highlighting of program code and
-also emphasises text using different fonts like normal, bold or italics. A color editor like Vim
-can improve the __productivity__ of programmers by __2 to 3 times__!! Programmers can
-read the code much more rapidly as the code syntax is colored and highlighted.
-
-!! 1.1 Before you Install
-
-
-
-Before you install Vim, please refer to the OS specific release notes and
-information about compiling and usage of Vim at -
-
-
-**** Go to this location and look for files os_*.txt
-http://cvs.vim.org/cgi-bin/cvsweb/vim/runtime/doc
-****
-
-If you do not have the Vim package (RPM, DEB, tar, zip) then download
-the Vim source code by ftp from the official Vim site
-
-
-**** The home page of vim is at
-http://www.vim.org
-****
-
-**** Mirror site in US is at
-http://www.us.vim.org
-****
-
-**** Ftp site
-ftp://ftp.vim.org/pub/vim
-****
-
-**** Or use one of the mirrors
-ftp://ftp.vim.org/pub/vim/MIRRORS
-****
-
-
-!!1.2 Install Vim on Redhat Linux
-
-
-
-To use Vim install the following RPM packages on Redhat Linux -
-----
-
-rpm -i vim*.rpm
-OR do this -
-rpm -i vim-enhanced*.rpm
-rpm -i vim-X11*.rpm
-rpm -i vim-common*.rpm
-rpm -i vim-minimal*.rpm
-
-----
-You can see the list of files the vim rpm installs by -
-----
-
-rpm -qa | grep ^vim | xargs rpm -ql | less
-or
-rpm -qa | grep ^vim | awk '{print "rpm -ql " $1 }' | /bin/sh | less
-
-----
-and browse output using j,k, CTRL+f, CTRL+D, CTRL+B, CTRL+U or using arrow keys, page up/down keys.
-See 'man less'.
-
-
-Note that the RPM packages for Redhat Linux use a Motif interface. If you have installed the
-GTK libraries on your system, consider compiling Vim from the source code for a clean
-GUI interface. For information on compiling Vim from the source code, see "Install Vim on Unixes", below.
-
-
-
-
-!!1.3 Install Vim on Debian GNU/Linux
-
-
-
-To install Vim on Debian Linux (GNU Linux), login as root and when connected to internet
-type -
-----
-
-apt-get install vim vim-rt
-
-----
-It will download the latest version of vim, install it, configure it.
-The first package listed is vim, the standard editor, compiled
-with X11 support, vim-rt is the vim runtime, it holds all the syntax and help files.
-
-
-On Debian 3.0 (woody) and above, use 'apt-get install vim' instead.
-The vim-rt package is part of the main vim package.
-
-!!1.4 Install Vim on Unixes
-
-
-
-For other flavors of unixes like Solaris, HPUX, AIX, Sinix, SCO download the source code file
-( see
-Before you Install
-)
-----
-
-zcat vim.tar.gz | tar -xvf -
-cd vim-5.5/src
-./configure --enable-gui=motif
-make
-make install
-
-----
-
-
-
-
-!!1.5 Install Vim on Microsoft Windows 95/NT
-
-
-
-See
-Install on MS Windows.
-
-!!1.6 Install Vim on VMS
-
-
-
-
-
-!Download files
-
-
-You will need both the Unix and Extra archives to build vim.exe for VMS.
-For using Vim's full power you will need the runtime files as well.
-Get these files
-( see
-Before you Install
-)
-
-
-You can download precompiled executables from:
-http://www.polarfox.com/vim
-
-VMS vim authors are -
-
-
-****
- zoltan.arpadffy@essnet.se
-****
-
-****
- arpadffy@altavista.net
-****
-
-****
- cec@gryphon.gsfc.nasa.gov
-****
-
-****
- BNHunsaker@chq.byu.edu
-****
-
-****
- sandor.kopanyi@altavista.net
-****
-
-
-!Compiling
-
-
-Unpack the Unix and Extra archives together into one directory. In the <.SRC>
-subdirectory you should find the make file OS_VMS.MMS. By editing this file
-you may choose between building the character, GUI and debug version. There
-are also additional options for Perl, Python and Tcl support.
-
-
-You will need either the DECSET mms utility or the freely available clone of
-it called mmk (VMS has no make utility in the standard distribution). You can
-download mmk from http://www.openvms.digital.com/freeware/MMK/
-
-
-If you have MSS on your system, the command
-
-
-> mms /descrip=os_vms.mms
-
-
-will start building your own customised version of Vim.
-The equivalent command for mmk is:
-
-
-> mmk /descrip=os_vms.mms
-
-!Deploy
-
-
-Vim uses a special directory structure to hold the document and runtime files:
-
-
-
-----
-
-vim (or wherever)
-|- tmp
-|- vim55
-|----- doc
-|----- syntax
-|- vim56
-|----- doc
-|----- syntax
-vimrc (system rc files)
-gvimrc
-Use:
-> define/nolog device:[[leading-path-here.vim] vim
-> define/nolog device:[[leading-path-here.vim.vim56] vimruntime
-> define/nolog device:[[leading-path-here.tmp] tmp
-
-----
-
-
-to get vim.exe to find its document, filetype, and syntax files, and to
-specify a directory where temporary files will be located. Copy the "runtime"
-subdirectory of the vim distribution to vimruntime.
-
-
-Note: Logicals $VIMRUNTIME and $TMP are optional. Read more at :help runtime
-
-!Practical usage
-
-
-Usually you want to run just one version of Vim on your system, therefore
-it is enough to dedicate one directory for Vim.
-Copy all Vim runtime directory structure to the deployment position.
-Add the following lines to your LOGIN.COM (in SYS$LOGIN directory).
-Set up logical $VIM as:
-
-
-
-----
-
-> $ define VIM device: <path>
-
-----
-
-
-Set up some symbols:
-
-
-
-----
-
-> $ ! vi starts Vim in chr. mode.
-> $ vi*m :== mcr device:<path>VIM.EXE
-> $ !gvi starts Vim in GUI mode.
-> $ gv*im :== spawn/nowait mcr device:<path>VIM.EXE -g
-
-----
-
-
-Create .vimrc and .gvimrc files in your home directory (SYS$LOGIN).
-
-
-The easiest way is just rename example files. You may leave the menu file
-(MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will
-be default setup for all users, and for users is enough just to have their
-own additions or resetting in home directory in files .vimrc and .gvimrc.
-It should work without problems.
-
-
-Note: Remember, system rc files (default for all users) do not have the leading
-"." So, system rc files are:
-
-
-
-----
-
-> VIM$:vimrc
-> VIM$:gvimrc
-> VIM$:menu.vim
-
-----
-and user's customised rc files are:
-----
-
-> sys$login:.vimrc
-> sys$login:.gvimrc
-
-----
-
-
-You can check that everything is on the right place with the :version command.
-
-
-
-----
-
-Example LOGIN.COM:
-> $ define/nolog VIM RF10:[[UTIL.VIM]
-> $ vi*m :== mcr VIM:VIM.EXE
-> $ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g
-> $ set disp/create/node=192.168.5.223/trans=tcpip
-
-----
-
-
-Note: This set-up should be enough if you are working in a standalone server or
-clustered environment, but if you want to use Vim as an internode editor, it
-should suffice. You just have to define the "whole" path:
-
-
-
-----
-
-> $ define VIM "<server_name>[[""user password""]::device:<path>"
-> $ vi*m :== "mcr VIM:VIM.EXE"
-
-----
-
-
-as for example:
-
-
-
-----
-
-> $ define VIM "PLUTO::RF10:[[UTIL.VIM]"
-> $ define VIM "PLUTO""ZAY mypass""::RF10:[[UTIL.VIM]" ! if passwd required
-
-----
-
-
-You can also use $VIMRUNTIME logical to point to proper version of Vim if you
-have multiple versions installed at the same time. If $VIMRUNTIME is not defined
-Vim will borrow value from $VIM logical. You can find more information about
-$VIMRUNTIME logical by typing :help runtime as a Vim command.
-
-!GUI mode questions
-
-
-VMS is not a native X window environment, so you can not start Vim in GUI mode
-"just like that". But it is not too complicated to get a running Vim.
-
-
-
-----
-
-1) If you are working on the VMS X console:
-Start Vim with the command:
-> $ mc device:<path>VIM.EXE -g
-or type :gui as a command to the Vim command prompt. For more info :help gui
-2) If you are working on other X window environment as Unix or some remote X
-VMS console. Set up display to your host with:
-> $ set disp/create/node=<your IP address>/trans=<transport-name>
-and start Vim as in point 1. You can find more help in VMS documentation or
-type: help set disp in VMS prompt.
-Examples:
-> $ set disp/create/node=192.168.5.159 ! default trans is DECnet
-> $ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network
-> $ set disp/create/node=192.168.5.159/trans=local ! display on the same node
-
-----
-
-
-Note: you should define just one of these.
-For more information type $help set disp in VMS prompt.
-
-!!1.7 Install Vim on OS/2
-
-
-
-Read the release notes for Vim on OS/2, see
-Before you Install
-.
-
-
-At present there is no native PM version of the GUI version of vim: The OS/2
-version is a console application. However, there is now a Win32s-compatible
-GUI version, which should be usable by owners of Warp 4 (which supports
-Win32s) in a Win-OS/2 session. The notes in this file refer to the native
-console version.
-
-
-To run Vim, you need the emx runtime environment (at least rev. .9b). This
-is generally available as (ask Archie about it):
-----
-
-emxrt.zip emx runtime package
-
-----
-
-!!1.8 Install Vim on Apple Macintosh
-
-
-
-Read the release notes for Vim on OS/2, see
-Before you Install
-.
-
-
-The author of Vim on Mac (old version vim 3.) is
-----
-
-Eric Fischer
-5759 N. Guilford Ave
-Indianapolis IN 46220 USA
-
-----
-Email to
- enf@pobox.com
-
-Mac Bug Report
-When reporting any Mac specific bug or feature change, makes sure to include
-the following address in the "To:" or "Copy To:" field.
-
-
-
- dany.stamant@sympatico.ca
-
-Vim compiles out of the box with the supplied !CodeWarrior project when using
-!CodeWarrior 9. If you are using a more recent version (e. g. CW Pro) you have
-to convert the project first.
-When compiling Vim for 68k Macs you have to open the "size" resource in
-!ResEdit and enable the "High level events aware" button to get drag and drop
-working.
-You have to increase the memory partition to at least 1024 kBytes to prevent
-Vim from crashing due to low memory.
-----
-
-vim:ts=8:sw=8:tw=78:
-
-----
-----
-
-!! 2. Install Vim on Microsoft Windows 95/NT
-
-
-For Windows 95/NT, download the Vim zip file. For Windows 95/NT you
-must download __TWO__ zip files -
-
-
-**** Runtime support file __vim*rt.zip__
-****
-
-**** Vim command file __vim*60.zip__. Where Vim version is 5.6.
-****
-
-
-
-Get these two zip files from:
-Goto
-http://www.vim.org and click on
-Download-> download FAQ-> Windows 95/NT or click on these
-ftp://vim.ftp.fu-berlin.de/pc/gvim60.zip and
-ftp://vim.ftp.fu-berlin.de/pc/vim60rt.zip.
-( see also
-Before you Install
-)
-
-
-Unpack the zip files using the Winzip
-http://www.winzip.com.
-Both the zip files (vim*rt.zip and vim*60.zip) must be unpacked
-in the same directory like say __c:\vim__.
-
-
-For Windows 95/98, set the environment variable VIM (all caps no lowercase) in
-autoexec.bat by adding this line -
-----
-
-set VIM=c:\vim\vim60
-
-----
-For Windows NT, add the environment variable VIM (all caps no lowercase) to the
-__Start | Control Panel | System | Environment | System Properties__ dialog.
-For Windows 2000, click on
-__Start | Control Panel | System | Advanced | Environment Variable__ dialog
-and add variable VIM (all caps no lowercase):
-----
-
-VIM=c:\vim\vim60
-
-----
-
-
-The VIM variable should point to wherever you installed the vim60 directory.
-You can also set your PATH to include the gvim.exe's path.
-
-
-You may need to logoff and relogin to set your environment. Bring up a MS-DOS window by
-click on Start->Programs->MSDOS (for Windows 95/98) and Start->Run->cmd (for Windows NT/2000).
-At an MS-DOS prompt type -
-----
-
-c:\> set vim
-c:\> cd vim\vim60
-c:\> install.exe
-
-----
-For 'set vim' command, you should see - VIM=c:\vim\vim60 and start the install program
-which will setup the enviroment.
-
-
-Create a short-cut on to your desktop by click-and-drag
-from c:\vim\vim60\gvim.exe.
-
-
-__Color Syntax Highlighting: __ To enable color syntaxt highlighting and
-other nice features you must copy the gvimrc_example file to
-the $VIM\_gvimrc. In my case it is c:\vim\vim60\_gvimrc.
-----
-
-c:\> copy c:\vim\vim60\gvimrc_example $VIM\_gvimrc
-
-----
-
-
-
-
-
-__Useful Tips : __
-
-
-****Just double click on gvim icon on desktop and
-click !MyComputer->C:drive->Select a file and drag and drop it into the gvim window.
-The file is automatically opened by gvim window!!
-
-
-
-
-****
-
-**** To automatically maximize the Vim window in MS Windows, you can use
-http://www.southbaypc.com/!AutoSizer or you can right click on Gvim shortcut
-and select properties and pick maximize the window on startup.
-****
-
-
-!!2.1 Install bash shell
-
-
-
-In order make MS Windows 95/98/NT/2000/XP even more user-friendly, install the
-bash shell (Bourne Again Shell). Install
-http://sources.redhat.com/cygwin/setup.exe
-(Cygwin-setup program) and select bash and other common utilities.
-The !CygWin main site is at
-http://sources.redhat.com/cygwin.
-With !CygWin the Windows 2000 computer will look like Linux/Unix box!!
-And combined with gvim editor, the Windows 2000 gives programmers more power.
-The cygwin home is at
-http://cygwin.com.
-
-
-You may also want to install MKS in case you are planning to use Java and
-Java compilers. Get MKS from
-http://www.mks.com.
-
-!!2.2 Edit bash_profile
-
-
-
-After installing the Cygwin, insert some useful aliases in /.bash_profile file.
-Open a cygwin window and at bash prompt -
-----
-
-bash$ cd $HOME
-bash$ gvim .bash_profile
-set -o vi
-alias ls='ls --color '
-alias cp='cp -i '
-alias mv='mv -i '
-alias rm='rm -i '
-alias vi='gvim '
-alias vip='gvim ~/.bash_profile & '
-alias sop='. ~/.bash_profile '
-alias mys='mysql -uroot -p '
-PATH=$PATH:"/cygdrive/c/Program Files/mysql/bin"
-
-----
-With color ls, when you do ls you will see all the directory names and files in
-different colors (it looks great!!).
-With set -o vi, you can use the command line history editing just as in linux.
-
-!!2.3 Setup Window colors
-
-
-
-The default background color of MS DOS prompt window is black and white text.
-You must change the color, fontsize and window size to make it more pleasing.
-On MS Windows 2000, click on button Start->Run and type "cmd" and hit return.
-On MS Windows 95/98/NT click on Start->Programs->MSDOS Prompt which will
-bring up MSDOS window.
-Right click on the top left corner of the MSDOS prompt window and select properties.
-Select color background and enter R=255, G=255, B=190 (red, green, blue) for
-lightyellow background
-and text foreground color to black (R=, G=, B=).
-This sets background to light yellow and text foreground to black and this
-combination is most pleasing to human eyes.
-If you have problems with colors in cygwin bash window when doing 'man ls', set the
-text color to "marune".
-
-
-For Windows95 see
-Color for MS-DOS prompt window.
-----
-
-!!3. Setup gvim init files
-
-
-To enable the syntax color highlighting you MUST copy the gvimrc file to
-your home directory. This will also put the "Syntax" Menu with gvim command.
-You can click on Syntax Menu and select appropriate languages like C++, Perl, Java, SQL, ESQL etc..
-----
-
-cd $HOME
-cp /usr/doc/vim-common-5.3/gvimrc_example ~/.gvimrc
-
-----
-Comment lines in .gvimrc begin with double-quotes (").
-You can customize gvim by editing the file $HOME/.gvimrc and put the following lines -
-----
-
-" This line is a comment .... one which begins with double-quotes
-" The best is the bold font, try all of these and pick one....
-set guifont=8x13bold
-"set guifont=9x15bold
-"set guifont=7x14bold
-"set guifont=7x13bold
-"
-" Highly recommended to set tab keys to 4 spaces
-set tabstop=4
-set shiftwidth=4
-"
-" The opposite is 'set wrapscan' while searching for strings....
-set nowrapscan
-"
-" The opposite is set noignorecase
-set ignorecase
-set autoindent
-"
-" You may want to turn off the beep sounds (if you want quite) with visual bell
-" set vb
-" Source in your custom filetypes as given below -
-" so $HOME/vim/myfiletypes.vim
-
-----
-It is __very strongly__ recommended that you set the ''tabstop'' to 4 and
-''shiftwidth'' to 4.
-The ''tabstop'' is the number of spaces the TAB key will indent while editing with gvim. The
-''shiftwidth'' is the number of spaces the lines will be
-shifted with ">>" or "<<" vi commands. Refer to Vi
-tutorials
-Vim Tutorial
-for more details.
-
-
-To see the list of available fonts on Linux/Unix see
-the command __xlsfonts__. Type -
-----
-
-bash$ xlsfonts | less
-bash$ xlsfonts | grep -i bold | grep x
-bash$ man xlsfonts
-
-----
-
-!!3.1 Sample gvimrc file
-
-
-
-You can change the settings like color, bold/normal fonts in your $HOME/.gvimrc file.
-It is __very strongly__ recommended that you set the background color
-to ''lightyellow'' or ''white'' with ''black'' foreground. Ergonomics says
-that best background color is
-''lightyellow'' or ''white'' with ''black'' foreground. Hence change
-the variable 'guibg' in your $HOME/.gvimrc file as follows:
-----
-
-highlight Normal guibg=lightyellow
-
-----
-
-
-The sample gvimrc from /usr/doc/vim-common-5.3/gvimrc_example is as follows:
-----
-
-" Vim
-" An example for a gvimrc file.
-" The commands in this are executed when the GUI is started.
-"
-" To use it, copy it to
-" for Unix and OS/2: ~/.gvimrc
-" for Amiga: s:.gvimrc
-" for MS-DOS and Win32: $VIM\_gvimrc
-" Make external commands work through a pipe instead of a pseudo-tty
-"set noguipty
-" set the X11 font to use. See 'man xlsfonts' on unix/linux
-" set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1
-set guifont=8x13bold
-"set guifont=9x15bold
-"set guifont=7x14bold
-"set guifont=7x13bold
-"
-" Highly recommended to set tab keys to 4 spaces
-set tabstop=4
-set shiftwidth=4
-"
-" The opposite is 'set wrapscan' while searching for strings....
-set nowrapscan
-"
-" The opposite is set noignorecase
-set ignorecase
-"
-" You may want to turn off the beep sounds (if you want quite) with visual bell
-" set vb
-" Source in your custom filetypes as given below -
-" so $HOME/vim/myfiletypes.vim
-" Make command line two lines high
-set ch=2
-" Make shift-insert work like in Xterm
-map <S-Insert> <!MiddleMouse>
-map! <S-Insert> <!MiddleMouse>
-" Only do this for Vim version 5.0 and later.
-if version >= 500
-" I like highlighting strings inside C comments
-let c_comment_strings=1
-" Switch on syntax highlighting.
-syntax on
-" Switch on search pattern highlighting.
-set hlsearch
-" For Win32 version, have "K" lookup the keyword in a help file
-"if has("win32")
-" let winhelpfile='windows.hlp'
-" map K :execute "!start winhlp32 -k <cword> " . winhelpfile <CR>
-"endif
-" Hide the mouse pointer while typing
-set mousehide
-" Set nice colors
-" background for normal text is light grey
-" Text below the last line is darker grey
-" Cursor is green
-" Constants are not underlined but have a slightly lighter background
-highlight Normal guibg=grey90
-highlight Cursor guibg=Green guifg=NONE
-highlight !NonText guibg=grey80
-highlight Constant gui=NONE guibg=grey95
-highlight Special gui=NONE guibg=grey95
-endif
-
-----
-See also sample vimrc used for console mode vim command from /usr/doc/vim-common-5.3/vimrc_example.
-
-!!3.2 Xdefaults parameters
-
-
-
-You can set some of the Vim properties in Xdefaults file.
-
-
-__ WARNING: __''Do not set __Vim*geometry__ as it will break the gvim menu, use __Vim.geometry__ instead''.
-
-
-Edit the $HOME/.Xdefaults file and add the following lines:
-----
-
-! GVim great Colors.
-Vim*useSchemes: all
-Vim*sgiMode: true
-Vim*useEnhancedFSB: true
-Vim.foreground: Black
-!Vim.background: lightyellow2
-Vim*background: white
-! Do NOT use Vim*geometry , this will break the menus instead
-! use Vim.geometry. Asterisk between Vim and geometry is not allowed.
-! Vim.geometry: widthxheight
-Vim.geometry: 88x40
-!Vim*font: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-15-*5
-Vim*menuBackground: yellow
-Vim*menuForeground: black
-
-----
-In order for this change to take effect, type -
-----
-
-xrdb -merge $HOME/.Xdefaults
-man xrdb
-
-----
-
-
-You can also edit the ~/.gvimrc file to change the background colors
-----
-
-gvim $HOME/.gvimrc
-The best background color is lightyellow or white, with black foreground.
-highlight Normal guibg=lightyellow
-
-----
-----
-
-!!4. Color Syntax init files
-
-
-
-
-!!4.1 Auto source-in method
-
-
-
-This section below is obtained from gvim session by typing 'help syntax' -
-----
-
-bash$ gvim some_test
-:help syntax
-
-----
-Click on the menu Window=>Close_Others to close other Window. And then do CTRL+] on 'Syntax Loading Procedure' menu which will take you there.
-(Use CTRL+T to rewind and go back).
-
-
-If a file type you want to use is not detected, then there are two ways to
-add it.
-
-
-
-
-
-__Method 1: __ You can modify the ''$VIMRUNTIME/filetype.vim'' file,
-but this is not recommended as it will be overwritten when you
-install a new version of Vim.
-
-
-__ Method 2: __ Create a file in $HOME/vim/myfiletypes.vim and put
-these lines in it -
-----
-
-"
-" *************************************************************
-" Filename : $HOME/vim/myfiletypes.vim
-" See the document by typing :help autocmd within vim session
-" see also the doc at /usr/share/vim/doc/autocmd.txt
-" This file will setup the autocommands for new filetypes
-" using the existing syntax-filetypes.
-" For example when you open foo.prc it will use syntax of plsql
-" Basically does :set filetype=prc inside vim
-" Add a line in $HOME/.gvimrc as below:
-" so $HOME/vim/myfiletypes.vim
-"
-" *************************************************************
-augroup filetype
-au!
-au! !BufRead,!BufNewFile *.phc set filetype=php
-au! !BufRead,!BufNewFile *.mine set filetype=mine
-au! !BufRead,!BufNewFile *.xyz set filetype=drawing
-au! !BufRead,!BufNewFile *.prc set filetype=plsql
-augroup END
-
-----
-Then add a line in your $HOME/.vimrc and $HOME/.gvimrc file to source
-in the file "myfiletypes.vim".
-(__CAUTION:__ You MUST put this in both vimrc and gvimrc files
-in order for this to work) Example:
-----
-
-so $HOME/vim/myfiletypes.vim
-
-----
-
-
-__NOTE:__ Make sure that you set "so myfiletypes.vim" before switching on file type
-detection. This is must be before any ":filetype on" or ":syntax on"
-command.
-
-
-See the documentation on autocommand at -
-
-
-****__:help autocmd__ (within a vim editing session)
-****
-
-****See also the doc at /usr/share/vim/doc/autocmd.txt
-****
-
-
-
-Your file will then be sourced in after the default !FileType autocommands have
-been installed. This allows you to overrule any of the defaults, by using
-":au!" to remove any existing !FileType autocommands for the same pattern.
-Only the autocommand to source the scripts.vim file is given later. This
-makes sure that your autocommands in "myfiletypes.vim" are used before
-checking the contents of the file.
-
-!!4.2 Manual method
-
-
-
-Instead of using "Syntax" menu you can also
-manually source in the syntax file. Edit the file with gvim
-and at : (colon) command give 'so' command. For example -
-----
-
-gvim foo.pc
-:so $VIM/syntax/esqlc.vim
-
-----
-The syntax source files are at /usr/share/vim/syntax/*.vim. Vim supports more
-than 120 different syntax files for different languages like C++, PERL, VHDL, !JavaScript,...and so on!!
-
-
-Each syntax file supports one or more default file name extensions, for example, !JavaScript syntax
-file supports the *.js extension. If you happen to use an extension that conflicts with
-another default syntax file (such as adding !JavaScript to a *.html file) than you can source in
-the additional syntax file with the command :so $VIM/syntax/javascript.vim.
-To avoid all of this typing, you can create a soft link like -
-----
-
-ln -s $VIM/syntax/javascript.vim js
-gvim foo.html (... this file contains javascript functions and HTML)
-:so js
-
-----
-----
-
-!!5. VIM Usage
-
-
-You can use Vim in two modes - one with GUI and other without GUI.
-To use GUI use command -
-----
-
-gvim foo.cpp
-
-----
-To use non-gui mode give -
-----
-
-vim foo.cpp
-OR plain vanilla mode
-vi foo.cpp
-
-----
-It is very strongly recommended that you always use gvim instead of vim, since GUI mode
-with colors will definitely improve your productivity.
-
-
-GUI mode gvim provides the following -
-
-
-**** You can mark the text using the mouse to do cut, copy and paste.
-****
-
-**** You can use the Menu bar which has - File, Edit, Window, Tools, Synatx and Help buttons.
-****
-
-**** Also in near future in gvim - a second menu bar will display the list of files being edited,
-and you can switch files by clicking on the filenames, until then you can use
-vi commands - :e#, :e#1, :e#2, :e#3, :e#4, ....so on to select the files.
-****
-
-----
-
-!!6. Remote Vi - MS Windows QVWM Manager
-
-
-If you want to use Vi and Vim remotely from a MS Windows PC client, then
-you should use VNC + QVWM manager. Servers are generally located
-in remote Data Centers and to edit the files, you should first login
-to remote servers from MS Windows or Linux desktop PCs.
-After starting VNC server and QVWM manager on remote server, you should
-fire up __vncviewer__ on your client desktop and edit remote files
-with __gvim__.
-
-
-To use graphical editor like __gvim__ for remote operations, use the
-following techniques below:
-
-
-You can use the VNC to display remote machines on your local display.
-
-
-**** The VNC is at
-http://www.uk.research.att.com/vnc
-
-
-
-
-****
-
-**** Get VNC rpms from
-rpmfind.
-
-
-
-
-****
-
-**** The best Window manager for VNC is QVWM which is like MS Windows 98/NT/2000 interface, get
-it from
-http://www.qvwm.org.
-
-
-
-
-****
-
-**** After starting vncserver, you can start the __vncviewer__ program on clients
-like MS Windows, Mac or Linux.
-
-
-
-
-****
-
-**** See also the
-List of X11 Windows Managers.
-****
-
-
-
-__Compiling qvwm on Solaris : __
-On Solaris you should install the following packages which you can get
-from
-http://sun.freeware.com - xpm, imlib, jpeg, libungif, giflib, libpng, tiff.
-And you can download the binary package for solaris from
-http://www.qvwm.org.
-
-
-Or you can download the qvwm source for solaris from
-http://www.qvwm.org and compile it using gcc.
-
-
-Troubleshooting compile:
-You should put unsigned long before arg in usleep()
-usleep((unsigned long) 10000)
-----
-
-!!7. Vi companions
-
-
-Generally Vim is used in conjunction with other powerful
-tools like __ctags__ and __gdb__. __ctags__ is for very rapid navigation
-through millions of lines of "C/C++" code and __gdb__ is for debugging the "C/C++" code.
-A brief introduction of these two indispensable commands will be given in this chapter.
-
-
-__ctags__ is the most powerful command available for coding C, C++, Java, Perl,
-Korn/Bourne shell scripts or Fortran. Developers very extensively use __ctags__ to
-navigate through thousands of functions within C/C++ programs. See 'man ctags' on Unix.
-It is __very important__ that you learn how to use ctags to
-develop programs in C or C++, Java, etc.. Navigation is the single most important task while
-doing development of C or C++ code. Using ctags you can very quickly read the code
-by jumping from a calling line to the called function, drill down deeper into nested function calls,
-and unwind back all the way up to the top. You can go back and forth from function to function
-very quickly.
-
-
-Without NAVIGATION you will be completely lost! __ctags__ is like the magnetic COMPASS
-needle for the programmers.
-
-
-Usage of __ctags__ :
-----
-
-ctags *.cpp
-gvim -t foo_function
-gvim -t main
-
-----
-This will edit the C++ program file which contains the function foo_function() and will
-automatically place the cursor on the first line of the function foo_function(). The second
-command takes you to the line with the main() function definition.
-
-
-Inside the Vim editor, you can jump to a function by typing : (colon) tag < function name >as below -
-----
-
-:tag sample_function
-
-----
-This will place the cursor on first line of sample_function()
-
-
-If you want to jump into the function from a line in file which contains the function name, place the
-cursor just before the function name and press __CTRL+]__ (press control key and
-left-square-bracket key simultaneously).
-----
-
-// example code
-switch(id_number) {
-Case 1:
-if ( foo_function( 22, "abcef") == 3 )
-^
-|
-|
-|
-Place the cursor here (just before foo_function) and press CTRL+]
-This takes you to the function named "foo_function".
-To come back to this line press CTRL+t
-
-----
-To go back to the calling line press __CTRL+t__ (Control key and letter 't' together). Keep pressing __CTRL+t__
-to unwind and go to the first line where you started the navigation. That is you can keep pressing __CTRL+]__
-and then keep pressing __CTRL+t__ to go back. You can repeat these as many times as you want to have complete
-navigation through all the functions of C or C++.
-
-!!7.1 Ctags for ESQL
-
-
-
-Since ctags does not directly support the Embedded SQL/C (ESQL) language, the following shell script
-can be used to create tags for esql. ESQL/C is database SQL commands embedded inside the "C" programs.
-Oracle's ESQL/C is called Pro*C and Sybase, Informix have ESQL/C and PostgreSQL has product "ecpg".
-
-
-Save this file as "sqltags.sh" and do chmod a+rx tags_gen.sh.
-----
-
-#!/bin/sh
-# Program to create ctags for ESQL, C++ and C files
-ESQL_EXTN=pc
-tag_file1=tags_file.1
-tag_file2=tags_file.2
-which_tag=ctags
-rm -f $tag_file1 $tag_file2 tags
-aa=`ls *.$ESQL_EXTN`
-#echo $aa
-for ii in $aa
-do
-#echo $ii
-jj=`echo $ii | cut -d'.' -f1`
-#echo $jj
-if [[ ! -f $jj.cpp ]; then
-echo " "
-echo " "
-echo "***********************************************"
-echo "ESQL *.cpp files does not exist.. "
-echo "You must generate the *.cpp from *.pc file"
-echo "using the Oracle Pro*C pre-compiler or Sybase"
-echo "or Informix esql/c pre-compiler."
-echo "And then re-run this command"
-echo "***********************************************"
-echo " "
-exit
-fi
-rm -f tags
-$which_tag $jj.cpp
-kk=s/$jj\.cpp/$jj\.pc/g
-#echo $kk > sed.tmp
-#sed -f sed.tmp tags >> $tag_file1
-#sed -e's/sample\.cpp/sample\.pc/g' tags >> $tag_file1
-sed -e $kk tags >> $tag_file1
-done
-# Now handle all the C++/C files - exclude the ESQL *.cpp files
-rm -f tags $tag_file2
-bb=`ls *.cpp *.c`
-aa=`ls *.$ESQL_EXTN`
-for mm in $bb
-do
-ee=`echo $mm | cut -d'.' -f1`
-file_type="NOT_ESQL"
-# Exclude the ESQL *.cpp and *.c files
-for nn in $aa
-do
-dd=`echo $nn | cut -d'.' -f1`
-if [[ "$dd" = "$ee" ]; then
-file_type="ESQL"
-break
-fi
-done
-if [[ "$file_type" = "ESQL" ]; then
-continue
-fi
-rm -f tags
-$which_tag $mm
-cat tags >> $tag_file2
-done
-mv -f $tag_file2 tags
-cat $tag_file1 >> tags
-rm -f $tag_file1
-# Must sort tags file for it work properly ....
-sort tags > $tag_file1
-mv $tag_file1 tags
-
-----
-
-!!7.2 Ctags for !JavaScript programs, Korn, Bourne shells
-
-
-
-The shell script given below can be used to generate tags for a very large variety of programs
-written in !JavaScript, PHP/FI scripts, Korn shell, C shell, Bourne shell and many others. This is
-a very generic module.
-
-
-Save this file as tags_gen.sh and do chmod a+rx tags_gen.sh.
-----
-
-#!/bin/sh
-tmp_tag=tags_file
-tmp_tag2=tags_file2
-echo " "
-echo " "
-echo " "
-echo " "
-echo " "
-echo "Generate tags for ...."
-while :
-do
-echo " Enter file extension for which you want to generate tags."
-echo -n " File-extension should be like sh, js, ksh, etc... : "
-read ans
-if [[ "$ans" == "" ]; then
-echo " "
-echo "Wrong entry. Try again!"
-else
-break
-fi
-done
-\rm -f $tmp_tag
-aa=`ls *.$ans`
-for ii in $aa
-do
-jj=`echo $ii | cut -d'.' -f1`
-#echo $jj
-cp $ii $jj.c
-ctags $jj.c
-echo "s/$jj.c/$ii/g" > $tmp_tag2
-sed -f $tmp_tag2 tags >> $tmp_tag
-\rm -f tags $jj.c
-done
-sort $tmp_tag > tags
-\rm -f $tmp_tag $tmp_tag2
-
-----
-
-!!7.3 Debugger gdb
-
-
-
-You would be using gdb extensively along with Vi.
-Debugging is the most important aspect of programming
-as the major cost of software projects goes into debugging and testing.
-
-
-To debug C++/C programs use 'gdb' tool. See __'man gdb'__.
-You must compile your programs with -g3 option like
-
-
-gcc -g3 foo.c foo_another.c sample.c
-
-
-
-
-To set up easy aliases do -
-
-
-Setup an alias in your ~/.bash_profile
-alias gdb='gdb -directory=/home/src -directory=/usr/myname/src '
-Give -
-gdb foo.cpp
-gdb> dir /hom2/another_src
-This will add to file search path
-gdb> break 'some_class::func<TAB><TAB>
-This will complete the function name saving you typing time... and will output like -
-gdb> break 'some_class::function_foo_some_where(int aa, float bb)'
-
-
-
-
-Pressing TAB key twice is the command line completion, which will save
-you lots of typing time. This is one of the most important technique of using gdb.
-
-
-To get online help do -
-
-
-gdb> help
-Gives online help
-gdb> help breakpoints
-Gives more details about breakpoints.
-
-
-
-
-To set breakpoints and do debugging
-
-
-unixprompt> gdb exe_filename
-gdb> b main
-This will put breakpoint in main() function
-gdb> b 123
-This will put breakpoint in line 123 of the current file
-gdb> help breakpoints
-Gives more details about breakpoints.
-
-
-
-
-To analyze the core dumps do
-
-
-unixprompt> gdb exe_filename core
-gdb> bt
-Gives backtrace of functions and line numbers where the program failed
-gdb> help backtrace
-Gives more details about backtrace.
-
-
-
-
-You can also use GUI version of gdb called xxgdb.
-
-
-See also gdb interface to Vim at
-http://www.lxlinux.com/gdbvim.tgz.
-
-
-Memory leak tools -
-
-
-**** Freeware Electric Fence on linux cd,
-****
-
-**** Commercial tools Purify
-http://www.rational.com
-****
-
-**** Insure++
-http://www.insure.com
-****
-
-
-
-
-----
-
-!!8. Online VIM help
-
-
-See the online man pages. At unix shell prompt
-type __'man vim'__ and __'man gvim'__.
-
-
-Or inside the gvim session type :help to get the help page. See also
-Vim Tutorial
-To see the settings type :set all or :set. To see list of options type :options.
-To see topics on set type :help set.
-
-
-
-
-
-VIM - main help file
-Move around: Use the cursor keys, or "h" to go left,
-"j" to go down, "k" to go up, "l" to go right.
-":1" takes you to 1st line of page
-":n" takes you to nth line of page
-"<SHIFT>g" takes you to bottom of page
-":/someword/ will search for "someword" in doc
-Close this window: Use ":q<Enter>".
-Jump to a subject: Position the cursor on a tag between |bars| and hit CTRL-].
-With the mouse: ":set mouse=a" to enable the mouse (in xterm or GUI).
-Double-click the left mouse button on a tag between |bars|.
-jump back: Type CTRL-T or CTRL-O.
-Get specific help: It is possible to go directly to whatever you want help
-on, by giving an argument to the ":help" command |:help|.
-It is possible to further specify the context:
-WHAT PREPEND EXAMPLE ~
-Normal mode commands (nothing) :help x
-Visual mode commands v_ :help v_u
-Insert mode commands i_ :help i_<Esc>
-command-line commands : :help :quit
-command-line editing c_ :help c_<Del>
-Vim command arguments - :help -r
-options ' :help 'textwidth'
-list of documentation files:
-|howto.txt| how to do the most common things
-|intro.txt| introduction to Vim
-|index.txt| alphabetical index for each mode
-|autocmd.txt| automatically executing commands on an event
-|change.txt| delete and replace text
-
-
-----
-
-!!9. Vim Home page and Vim links
-
-
-The home page of vim is at
-http://www.vim.org
-and mirror site in US is at
-http://www.us.vim.org
-
-
-Vim FAQ is at
-http://www.grafnetix.com/~laurent/vim/faq.html
-and at
-http://www.vim.org/faq
-
-Eli's Vim Page at
-http://www.netusa.net/~eli/src/vim.html
-
-The Vi Lovers Home Page
-http://www.cs.vu.nl/~tmgil/vi.html
-
-Vim Reference Guide at
-http://scisun.sci.ccny.cuny.edu/~olrcc/vim/
-
-Vim mailing list at
-http://www.findmail.com/listsaver/vimannounce.html
-and
-http://www.vim.org/mail.html
-
-Mailing list archives are kept at:
-
-
-****
-http://www.egroups.com/group/vim
-****
-
-****
-http://www.egroups.com/group/vimdev
-****
-
-****
-http://www.egroups.com/group/vimannounce
-****
-
-
-
-Vim macros
-----
-
-!! 10. Vim Tutorial
-
-
-
-
-!! 10.1 Vim Hands-on Tutorial
-
-
-
-On Linux system see the tutorial at /usr/doc/vim-common-5.*/tutor, on other
-unix systems go to directory where vim is installed and look for doc directory.
-----
-
-bash$ cd /usr/doc/vim-common*/tutor
-bash$ less README.txt
-bash$ cp tutor $HOME
-bash$ cd $HOME
-bash$ less tutor
-
-----
-
-!! 10.2 Vi Tutorials on Internet
-
-
-
-
-
-
-**** Purdue University
-http://ecn.www.ecn.purdue.edu/ECN/Documents/VI/
-
-
-
-
-
-
-
-****
-
-**** Quick Vi tutorial
-http://linuxwww.db.erau.edu/LUG/node165.html
-
-
-
-
-
-
-
-****
-
-**** Advanced Vi tutorial
-http://www.yggdrasil.com/bible/bible-src/user-alpha-4/guide/node171.html
-
-
-
-
-
-
-
-****
-
-**** Tutorials
-http://www.cfm.brown.edu/Unixhelp/vi_.html
-
-
-
-
-
-
-
-****
-
-**** Tutorials
-http://www.linuxbox.com/~taylor/4ltrwrd/section3_4.html
-
-
-
-
-
-
-
-****
-
-**** Unix world online vi tutorial
-http://www.networkcomputing.com/unixworld/unixhome.html
-
-
-
-
-
-
-
-****
-
-**** Univ of Hawaii tutorial
-http://www.eng.hawaii.edu/Tutor/vi.html
-
-
-
-
-
-
-
-****
-
-**** !InfoBound
-http://www.infobound.com/vi.html
-
-
-
-
-
-
-
-****
-
-**** Cornell Univ
-http://www.tc.cornell.edu/Edu/Tutor/Basics/vi/
-
-
-
-
-
-
-
-****
-
-**** Vi Lovers home page:
-http://www.cs.vu.nl/~tmgil/vi.html
-****
-
-**** After Sept 2000, will moveto
-http://www.thomer.com/thomer/vi/vi.html
-
-
-
-
-
-
-
-****
-
-**** Beginner's Guide to vi
-http://www.cs.umr.edu/unixinfo/general/packages/viguide.html
-
-
-
-
-
-
-
-****
-
-**** vi Help file
-http://www.vmunix.com/~gabor/vi.html
-
-
-
-
-
-
-
-****
-
-**** vim FAQ
-http://www.math.fu-berlin.de/~guckes/vim/faq/
-****
-
-There are many Vi Tutorials on internet. In Yahoo (Lycos, excite or Hotbot)
-enter "Vi Tutorial" in search field and search engine will return many pointers.
-----
-
-!! 11. Vi Tutorial
-
-
-In this tutorial, we describe some "advanced" __vi__ concepts and commands, so you can appreciate the power of __vi__ and so you decide how to build your
-knowledge of __vi__ commands. Nearly all __vi__ references list the available
-commands, but many don't bother to discuss how the commands interrelate;
-this topic is the main purpose of this tutorial.
-
-!!11.1 Cursor Movement Commands
-
-
-
-The __vi__ cursor movement commands allow you to position the cursor in the file
-and/or on the screen efficiently, with a minimum number of keystrokes. There
-are oodles of cursor movement commands - don't try memorizing them all at
-once! Later, we'll see that much of the power of __vi__ comes from mixing cursor
-movement commands with other commands to delete, change, yank (copy), and
-filter text.
-
-
-Please edit a large text file (say, __wknight__) so you can experiment with each
-command as it is described. Keep in mind these commands will only work in
-Command Mode, not Insert Mode; if you start getting your "commands" in your
-text, press the ESC key to return to Command Mode.
-
-
-
-
-
-**** __cursor keys__ : As we've seen, cursor keys move by single character amounts
-left, down, up, and right. Movement above the top of the file,
-below the bottom, to the right of the end of a line, or left of the
-beginning is not allowed (no line wrapping).
-
-
-
-
-****
-
-**** __hjkl__ : When __vi__ was written (around 1978), many terminals on UNIX
-systems did not have cursor keys! __h, j, k,__ and __l__ were chosen
-as commands to move left, down, up, and right, respectively.
-Try them! Most __vi__ diehards prefer these to the cursor keys
-because
-
-
-*****__(a)__ they are in the same place on all keyborads, and
-*****
-
-*****__(b)__ they fit nicely under the fingers, unlike
-most cursor keys, which are arranged in a box or "T" or some
-other nonlinear shape.
-*****
-
-Why h, j, k, and l? Well, in the ASCII character set, CTRL-H is backspace
-(moves left), CTRL-J is linefeed (moves down), and, of course, k and l are
-next to h and j, so you see, they're mnemonic.
-
-
-
-
-****
-
-**** ____ : ("zero", not "oh") Move to the beginning of current line. (To try
-this and the next few commands, use the cursor keys or __h j k l__ to
-move to an indented text line that contains few "e"
-characters. If you can't find an indented line in your file, create
-one by inserting a few space characters at the beginning of a
-line.)
-
-
-
-
-****
-
-**** __ ^ __ : Move to first non-white character of current line. (For
-indented line, 0 and ^ are different.)
-
-
-
-
-****
-
-**** __ $ __ : Move to last character of current line.
-
-
-
-
-****
-
-**** __ tC __ : Move to (but not on) next character c in current line. (Press ,
-then press te. This will move to the first e in the curent line.)
-
-
-
-
-****
-
-**** __ fC __ : Find (move on top of) next character c in current line. (Press
-fe, and the cursor will find - that is, move on top - the next e in
-the current line.)
-
-
-
-
-****
-
-**** __ TC __ : Move to (but not on) the previous character c in current line
-(Press $, then Te.)
-
-
-
-
-****
-
-**** __ FC __ : Find (move on top of) the previous character c in current line.
-(Press Fe.)
-
-
-
-
-****
-
-**** __ n| __ : Move to column n in current line. (Try 20 |. The digits 2 and
-will not be displayed as you type them, but when you press | the cursor will
-move to column 20.)
-Try some experiments with t f T F | . When you do something illegal, __vi__ will
-beep your terminal.
-
-
-
-
-****
-
-**** __ w __ : Forward to beginning of next "small" word ( a "small" word
-consists of unbroken alphanumeric characters or punctuation characters, but
-not mixed alphanumeric and punctuation). Try
-tapping w a dozen times or so - note what happens at
-punctuation.
-
-
-
-
-****
-
-**** __ W __ : Forward to beginning of next "big" word (alphanumeric and
-punctuation mixed). Try W a dozen times or so.
-
-
-
-
-****
-
-**** __ b __ : Backward to beginning of "small" word.
-
-
-
-
-****
-
-**** __ B __ : Backward to beginning of "big" word.
-
-
-
-
-****
-
-**** __ e __ : Forward to end of "small" word.
-
-
-
-
-****
-
-**** __ E __ : Forward to end of "big" word.
-
-
-
-
-****
-
-**** __ + Return __ : Move to first non-white space character on next line. (+ and
-the Return key have the same effect.)
-
-
-
-
-****
-
-**** __ - __ : Move to first non-white space character on previous line.
-
-
-
-
-****
-
-**** __ ) __ : Move to the end of sentence. (A sentence ends either at a
-blank line or at a period or examination mark followed by two
-space characters or at the end of a line. A period or
-exclamation mark followed by one space character does not
-end a sentence; this is correct behaviour, according to traditional
-rules of how sentences should appear in typed documents, but often
-appears wrong to those who have never suffered through
-a formal typing class.)
-
-
-
-
-****
-
-**** __ ( __ : Move to beginning of sentence.
-
-
-
-
-****
-
-**** __ } __ : Move to end of paragraph. (Paragraphs are seperated with
-blank lines, by __vi__'s definition.)
-
-
-
-
-****
-
-**** __ { __ : Move to beginning of paragraph.
-
-
-
-
-****
-
-**** __ H __ : Move to home position (top line) on the screen
-
-
-
-
-****
-
-**** __ M __ : Move to middle line on the screen.
-
-
-
-
-****
-
-**** __ L __ : Move to last line on the screen.
-
-
-
-
-****
-
-**** __ nG __ : Move to line n. If n is not given, move
-to the last line in the file.
-(Try 15G to move to line 15, for example. The CTRL-G command displays
-the name of the file, some status information, and the
-current line number. To move to the top of the file: 1G)
-
-
-
-
-****
-
-**** __ CTRL-d __ : Scroll down half-screen (see note).
-****
-
-**** __ CTRL-u __ : Scroll up half-screen (see note).
-****
-
-**** __ CTRL-f __ : Move forward one-screen (see note).
-****
-
-**** __ CTRL-b __ : Move backward one-screen (see note).
-****
-
-**** __ Note __ : These four scrolling/paging commands cannot be used
-with the delete, change, yank, or filter commands.
-
-
-
-
-****
-
-**** __ /reg_exp __ : Move to next occurrence of the regular expression reg_exp
-When you press /, the cursor drops to the lower left corner of the screen and
-waits for you to type in the regular expression.
-Press the Return key to finish; __vi__ then searches forward for the next
-occurrence of the regular expression. For example, press /the followed by
-Return. This moves forward to the next occurrence of the, perhaps imbedded
-in the middle of some longer word (other, weather, etc.). If you just press /
-and then Return, __vi__ searches for the next occurrence of whatever the last
-regular expression was that you searched for.
-
-
-
-
-****
-
-**** __ n __ : Has the same effect as pressing / and then Return; i.e.,
-searches for the next occurrence of whatever the last regular
-expression was that you searched for.
-
-
-
-
-****
-
-**** __ ?reg_exp __ : Searches backward, rather than forward. If no reg_exp is
-given, it searches for the last regular expression that was entered.
-Both / and ? wrap around, so searching "below" the bottom or "above" the
-top of the file is legal.
-
-
-
-
-****
-
-**** __ N __ : Same as pressing ? and then Return.
-****
-
-
-!!11.2 Repeat Counts
-
-
-
-Many of the movement commands discussed above can be preceded with a
-repeat count; the movement is simply repeated the given number of times:
-
-
-**** __ 3w __ : Move forward three words
-****
-
-**** __ 5k __ : Move up four characters
-****
-
-**** __ 3fa __ : Find the third succeeding a in current line
-****
-
-**** __ 6+ __ : Move down six lines
-****
-
-For some commands, the "repeat counts" has special meaning:
-
-
-**** __ 4H __ : Move to Line 4 on the screen (home plus 3)
-****
-
-**** __ 8L __ : Move to the eigth line from the bottom of the screen
-****
-
-**** __ 3$ __ : Move to the end of the third line down
-****
-
-For some commands (e.g., ^) the repeat count is ignored; for others (e.g.,
-/ and ? ) it is illegal
-
-!!11.3 Deleting Text
-
-
-
-We've seen that __dd__ deletes the current line. This can be used
-with a repeat
-count: 3dd deletes three lines, the current line, and the two following lines.
-
-
-The d command can be used as a "prefix" on most of the movement commands
-above to delete nearly arbitrary chunks of text. When used with d, the
-movement commands are called target specifiers. d can be given a repeat
-count. (As you try these experiments, remember to press u after each command
-to undo the deletion).
-
-
-
-
-
-**** __ dw __ : Delete "small" word forward
-****
-
-**** __ d3w __ : Delete three "small" words forward
-****
-
-**** __ 3dw __ : Three times, delete "small" word forward
-****
-
-**** __ 3d3w __ : Three times, delete three "small" words forward (that is,
-delete nine "small" words forward)
-****
-
-**** __ d+ __ : Delete current line and next line down
-****
-
-**** __ d/the __: Delete from current character up to but not including the
-next occurrence of the pattern the.
-****
-
-**** __ d$ __ : Delete to end of line
-****
-
-**** __ d0 __ : Delete to beginning of line
-****
-
-**** __ d30G __ : Delete from the curent line to and including Line 30
-****
-
-**** __ dG __ : Delete from current line to and including last line
-****
-
-**** __ d1G __ : Delete from current line to and including Line 1
-****
-
-To delete single characters, use x. x can be given a repeat count:
-
-
-**** __ 15x __ : Delete current and 14 following characters
-****
-
-x is actually just an abbreviation of d1; that is, delete one character right.
-
-!!11.4 Changing Text
-
-
-
-The c command is similar to d, except it toggles __vi__ into Insert Mode, allowing
-the original (unwanted) text to be changed to something else.
-
-
-For example, put the cursor on the beginning of a word (press w to get to the
-beginning of the next word). Then, press cw to change that word. On the
-screen, the last character in the word being changed will be replaced
-with a __$__
-symbol indicating the boundary of the change; type in a new word (you will
-overwrite the original word on the screen) and press the ESC key when done.
-Your input may be longer or shorter than the word being changed.
-
-
-Put the cursor at the beginning of a line containing at least three words, and
-try c3w to change three words. Try c$ to change to the end of the current line.
-In all cases where the change affects only the current line, the boundary of the
-change is indicated with $.
-
-
-When a change affects more than just the current line, __vi__ deletes the original
-text from the screen and toggles into Insert Mode. For example, try c3+ to
-change the current and the next three lines; __vi__ deletes the four
-original lines from the screen and toggles into Insert Mode in a new blank line.
-As usual, press the ESC key when you have finished entering your new text.
-
-
-Some other change commands:
-
-
-**** __ cc __ : Change current line
-****
-
-**** __ 5cc __ : Change five lines (current and next four)
-****
-
-**** __ c/the __ : Change from current character up to but not including the next
-occurrence of the pattern the
-****
-
-**** __ c$ __ : Change to end of line
-****
-
-**** __ c30G __ : Change from the current line to and including Line 30
-****
-
-**** __ cG __ : Change from curernt line to and including last line
-****
-
-**** __ c1G __ : Change from curernt line to and including Line 1
-****
-
-
-!!11.5 Yanking (Copying) Text
-
-
-
-The y command yanks a copy of text into a buffer; the yanked text can then
-be put (or pasted) elsewhere in the file using p or P.
-
-
-The simplest form of yank is yy to yank the current line; after yy, try p to
-put a copy of the yanked line after the cursor. Following yy, you can make
-as many copies of the yanked line as you want by moving up and down in the file
-and pressing p.
-
-
-To copy multiple lines, try, for example, 5yy (yank the current and next four
-lines). p puts a copy of the yanked lines after the cursor; the sequence 5yyp
-"works" but it probably doesn't do what you would like. The P command is like
-p, but puts a copy of the yanked text ahead of the cursor; try the sequence
-5yyP.
-
-
-Other yank commands:
-
-
-**** __ y3w __ : Yank three words
-****
-
-**** __ y$ __ : Yank to end of current line
-****
-
-**** __ y1G __ : Yank from current line to and including Line 1
-****
-
-
-!!11.6 Filtering text
-
-
-
-The filter command __!__, prompts for the name of a UNIX command (which should
-be a filter), then passes selected lines through the filter, replacing those
-selected line in the __vi__ buffer with the output of the filter command. __vi__'s
-ability to pass nearly arbitrary chunks of text through any UNIX filter adds
-incredible flexibility to __vi__, at no "additional cost" in size or performance to
-__vi__ itself.
-
-
-Some examples will help illustrate. Create a line in your file containing just
-the word who and absolutely no other text. Put the cursor on this line, and press __!!__
-This command is analogous to dd, cc, or yy, but instead of deleting, changing,
-or yanking the current line, it filters the current line. When you press the
-second !, the cursor drops down to the lower left corner of the screen and a
-single ! is displayed, prompting you to enter the name of a filter. As the
-filter name, type sh and press the Return key. __sh__ (the Bourne shell) is a filter!
-It reads standard input, does some processing of its input (that is, executes
-commands), and sends its output (the output of those commands) to standard output. Filtering the line containing who through sh causes the line containing who to be replaced with a list of the current users on the system - right in your file!
-
-
-Try repeating this process with __date__. That is, create a line containing nothing
-but the word __date__, then put the cursor on the line, and press __!!sh__ and the
-Return key. The line containing __date__ is replaced with the output of the __date__
-command.
-
-
-Put your cursor on the first line of the output of who. Count the number of lines.
-Suppose, for example, the number is six. Then select those six lines to be
-filtered through sort; press __6!!sort__ and the Return key. The six lines will
-be passed through sort, and sort's output replaces the original six lines.
-
-
-The filter command can only be used on complete lines, not on characters or
-words.
-
-
-Some other filter commands (here, < CR > means press Return):
-
-
-**** __!/the < CR > sort < CR >__ : Sort from the current line up to and including the
-next line containing the
-****
-
-****__ !1Ggrep the < CR >__ : Replace from the current line to and including Line 1
-with just the lines that contain the
-****
-
-****__ !Gawk '{print $1}' < CR > __: From the current line to the end of file, replace every line with just its first word.
-****
-
-
-!!11.7 Marking Lines and Characters
-
-
-
-You can mark lines and characters to be used as targest for movement, deletion,
-change, yanking, and filtering using the command mc, where c is a
-lowercase letter.
-
-
-For example, put the cursor in the middle of some word and press ma. This
-marks the character under the cursor as mark a.
-
-
-Now, move the cursor off the marked character and to a different line ( use
-the cursor keys, CTRL-u, or whatever). To return to the marked line, press 'a
-(that is, single quote, then a). This moves to the first non-white space
-character on the line containing mark a.
-
-
-Move off that line again. To return to the marked character, press `a (that is,
-backquote, then a). This moves on top of the character marked with a.
-
-
-Marking is usually used with deleting, changing, yanking or filtering. For
-example, move the cursor to a line other than the one containing mark a,
-and then press d'a (d, single quote, a). This deletes from the current line to and
-including the line marked with a.
-
-
-Put the cursor in the middle of a different word and press mb to set mark b.
-Now, move the cursor away from that word (but only a few lines, so you can see
-what we're about to do more easily), and then press d`b (d, backquote, b).
-This deletes from the current CHARACTER to and including the CHARACTER marked
-with b.
-
-
-As another example, to sort the output of who, mark the first line (ma), then
-move the cursor to the last line and press !'asort and the Return key.
-
-
-If you jump to a mark and decide you want to jump back to whatever you jumped
-from, you can press '' (jump back to line) or `` (jump back to character).
-
-!!11.8 Naming Buffers
-
-
-
-When you delete, change, or yank text, the original text is stored (until the next delete, change, or yank) in an unnamed buffer from which it can be put using
-p or P. Using the unnamed buffer, only the most recently deleted, changed or yanked
-text may be recovered.
-
-
-If you wish to delete, change, or yank multiple sections of text and remember
-them all (up to a maximum of 26), you can give a buffer name ahead of the
-delete change or yank command. A buffer name has the form "c (double quote,
-lowercase c).
-
-
-For example, press "ayy to yank the current line into buffer a, then move to a
-different line and press "byy to yank that line into buffer b. Now, move
-elsewhere in the file and press "ap and "bp to put copies of the text
-stored in buffers a and b.
-
-
-Some other named buffer commands:
-
-
-**** __ "a6yy __ : Yank six lines (current and next five) into buffer a
-****
-
-**** __ "bd1G __ : Delete from the curernt line to and including Line 1,
-storing the deleted lines in buffer b
-****
-
-**** __ "cy'c __ : Yank from the current line to the line marked c into buffer c
-(marks and buffers are distinct, and may
-have the same name without confusing __vi__)
-****
-
-
-!!11.9 Substitutions
-
-
-
-To substitute one chunk of text for another in lines throughout your file,
-use the :s command. Some substitute examples:
-
-
-**** __ :1,$s/the/THE/g __ From Line 1 to the last line (line $), substitute
-for the text THE; do this globally in each line where the occurrs
-****
-
-**** __ :'a,.s/.*/ha ha/ __ From the line marked a to the current line (line .),
-substitute for everything on the line the text ha ha
-****
-
-
-!!11.10 Miscellaneous "Colon Commands"
-
-
-
-All colon commands begin with a colon; when you press the colon, the cursor
-drops to the lower left corner of the screen, and a colon prompt is displayed
-waiting for you to finish your colon command.
-
-
-Some important examples:
-
-
-****__:w __ Write the buffer contents to the file without quitting from __vi__
-****
-
-****__:w abc __Write the buffer contents to the file abc (creating abc
-if it doesn't exist, or overwriting current contents if it does exist) without
-quitting from __vi__
-****
-
-****__:1,10w abc __Write lines 1 through 10 to file abc
-****
-
-****__:'a,$w abc __Write from the line marked a to the last line into file abc
-****
-
-****__:e abc __Edit file abc, instead of the current file. __vi__ prints an error
-message if changes have been made to the curernt file that have not been saved
-with :w
-****
-
-****__:e! abc __Edit file abc, throwing away any changes that may
-have been made to the current file
-****
-
-****__:e # __Edit the prior file edited (successive :e# commands toggle
-back and forth between two files)
-****
-
-****__:f abc __Change the file anme for the current __vi__ buffer to abc
-****
-
-****__:q __Quit, unless unsaved chanegs have been made
-****
-
-****__:q! __Quit, throwing away any changes that may have been made
-****
-
-****__:r abc __Read the file abc into current __vi__ buffer, after the line the
-cursor is on (try :r croc to read in a copy of the croc file)
-****
-
-****__:!cmd __Execute command cmd (who, sort, ls, etc.)
-****
-
-
-!!11.11 Setting Options
-
-
-
-Various options affect the "feel" of __vi__. You can display all the various options
-that can be set using the colon command :set all. You can also use set to
-change options.
-
-
-For example, if you want to see line numbers for the lines in the file you're
-editing, use the command :set number. To turn off line numbering, use
-the command :set nonumber. Most options can be abbreviated; :set nu turns
-on line numbering and :set nonu turns off line numbering.
-
-
-If you :set nomagic, the special meanings of regular expression characters
-(period, asterisk, square bracket, etc.) are switched off. Use :set magic to
-restore the special meanings.
-
-
-Some options take a value. For example, :set tabstop=4 causes tabs to
-be displayed as four space characters, rather than the usual eight.
-
-
-If you find you always want certain options set certain ways, you can put the
-set commands you want ina file .exrc, or you can set up the
-environment variable EXINIT to specify the options you want.
-
-
-For example, if your login shell is Bourne shell, this line could go in your
-.profile file:
-----
-
-EXINIT='set nomagic nu tabstop=4'; export EXINIT
-
-----
-If your login shell is a C shell, this line could go in your .login file:
-----
-
-setenv EXINIT 'set nomagic nu tabstop=4'
-
-----
-
-!!11.12 Key Mappings
-
-
-
-If you find you're performing a series of simple commands over and over,
-you can map the command series to an unused command key using the :map
-command. If your mapping must include control characters such as Return
-key (CTRL-M in ASCII) or the ESC (CTRL-[[ in ASCII) key, precede such
-characters with CTRL-v to suppress their usual special meaning.
-
-
-For example, this command maps CTRL-A to move the cursor forward 55 lines,
-then back up to the most recent blank line, then change that blank line
-to a formfeed (CTRL-L) and three blank lines. That is, each CTRL-A will
-paginate the next page, without splitting paragraphs across pages.
-
-
-Note: In this command, each control character is shown as ^C, where C is
-some uppercase letter. For example, CTRL-M is shown as ^M. Also, when you enter
-this command you will not see the CTRL-v characters as shown: each CTRL-v
-merely suppresses the usual special meaning of the following control
-character, so when you press the sequence ^V^M, all you will see on the screen is
-^M. In this command, ^M is the Return key and ^[[ is the ESC key.
-----
-
-:map ^A 55+?^$^V^Mcc^V^L^V^M^V^M^V^M^V^[[
-
-----
-
-!!11.13 Editing Multiple Files
-
-
-
-You can edit multiple files with __vi__ by giving multiple file names as command
-line arguments:
-----
-
-vi croc fatherw wknight
-
-----
-Three colon commands are used to move through the multiple files:
-
-
-****__ :n __Move to the next file in the argument list (you must save
-changes with :w or __vi__ will print an error message)
-****
-
-****__ :N __Move to the previous file in the argument list (you must save
-changes with :w or __vi__ will print an error message)
-****
-
-****__ :rew __Rewind and start over with the first file in the argument list
-****
-
-The :n, :N, and :rew commands are somewhat clumsy, but there are some
-important benefits: the contents of named buffers ("a, "b, "c, etc.) are
-remembered across files, so you can use :n and :rew with p and P to copy
-text back and forth between files. Also, the most recent search string for the
-/ and ? commands remembered across files, so you can do repetitive searches
-in multiple files rather easily.
-
-
-For example, try the following experiment:
-First get out of __vi__, then execute __vi__ with croc and wknight as arguments:
-----
-
-$ vi croc wknight
-
-----
-In croc, search for the
-
-
-__ /the < CR > __
-
-
-Yank this line into buffer a:
-
-
-__ "ayy __
-
-
-Now go to the next file (you've made no change to croc, so this will work):
-
-
-__ :n < CR > __
-
-
-Search for the "next" line containing the, without retyping the search string:
-
-
-__ n __
-
-
-Put a copy of buffer a after the current line in wknight:
-
-
-__ "ap __
-
-
-Move down two lines, and yank the current line into buffer b:
-
-
-__ jj"byy __
-
-
-Save the changes to wknight
-
-
-__ :w < CR > __
-
-
-Now, rewind to croc
-
-
-__ :rew < CR > __
-
-
-Search again, and put a copy of buffer b after the found line:
-
-
-__ n"bp __
-
-
-Save the changes, and exit __vi__
-
-
-__ ZZ __
-
-!!11.14 Final Remarks
-
-
-
-This tutorial was intended to introduce some of the __vi__ capabilities that you
-might overlook in your system's __vi__ manual or that might not be mentioned in
-the manual (different systems have manuals of widely varying quality).
-
-
-You will not be a __vi__ expert after reading this tutorial, but you will have a
-good appreciation of __vi__'s capabilities. Only time and effort can make a __vi__
-expert. But the efficiency and universality of __vi__ make this effort pay off in
-the long run.
-
-
-You may have decided you hate __vi__. So be it! But be aware that __vi__ remains
-the standard UNIX text editor - the one editor you can count on being
-available on every UNIX system you'll use - so even if you prefer to use
-something else day-to-day, you'd be well advised to know the bare minimum __vi__
-material covered in this tutorial.
-----
-
-!! 12. Vim Reference Card
-
-
-
-
-!!12.1 Vi states
-
-
-
-Vi has 3 modes:
-
-
-***# __''command mode''__ - Normal and initial state; others return here (use __ESC__ to abort a partially typed command)
-***#
-
-***# __''input mode''__ - entered by specific commands __a i A I o O c C s S R __ and ended by __ESC__ or abnormally with interrupt
-***#
-
-***# __''line mode''__ - i.e. waiting for input after a __: __, __/ __, __? __ or a __! __
-command (end with __CR__, abort with __CTRL-c__). __CTRL__ is the control key: __CTRL-c__ means "control c"
-***#
-
-
-!!12.2 Shell Commands
-
-
-
-
-
-
-***# __TERM=__ ''code'' Puts a code name for your terminal into the variable __TERM__
-***#
-
-***# __export TERM__ Conveys the value of __TERM__ (the terminal code) to any UNIX system program that is terminal dependant.
-***#
-
-***# __tput init__ Initializes the terminal so that it will function properly with various UNIX system programs.
-***#
-
-***# __vi __ ''filename'' Accesses the __vi__ screen editor so that you can edit a specified file.
-***#
-
-***# __vi __ ''file1 file2 file3'' Enters three files into the __vi__ buffer to be edited. Those files are ''file1, file2,'' and ''file3''.
-***#
-
-***# __view __ ''file'' Invoke vi editor on ''file'' in read-only mode
-***#
-
-***# __vi -R __ ''file'' Invoke vi editor on ''file'' in read-only mode
-***#
-
-***# __vi -r __ ''file'' Recover ''file'' and recent edits after system crash
-***#
-
-
-!!12.3 Setting Options
-
-
-
-
-
-
-***# __:set__ ''option'' Activate ''option''
-***#
-
-***# __:set__ ''option=value'' Assign ''value'' to ''option''
-***#
-
-***# __:set no__ ''option'' Deactivate ''option''
-***#
-
-***# __:set __ Display options set by user
-***#
-
-***# __:set all__ Display list of all current options, both default and those set by the user
-***#
-
-***# __:set __ ''option''? Display values of ''option''
-***#
-
-
-!!12.4 Notations used
-
-
-
-Notations:
-
-
-***# __CTRL-c__ __CTRL__ is the control key: __CTRL-c__ means "control c"
-***#
-
-***# __CR__ is Carriage return (ENTER key)
-***#
-
-
-!!12.5 Interrupting, cancelling
-
-
-
-
-
-
-***# __ESC__ end insert or incomplete command
-***#
-
-***# __CTRL-?__ __CTRL__ is the control key: __CTRL-?__ means "control ?" delete or rubout interrupts
-***#
-
-***# __CTRL-l__ reprint/refresh screen if CTRL-? scrambles it
-***#
-
-
-!!12.6 File Manipulation
-
-
-
-
-
-
-***# __ZZ__ Save the file and exit vi
-***#
-
-***# __:wq__ Save the file and exit vi
-***#
-
-***# __:w__ Write the current file
-***#
-
-***# __:w!__ Force write the current file, if file is read-only
-***#
-
-***# __:w''name''__ Write to file ''name''
-***#
-
-***# __:q__ Exit from vi
-***#
-
-***# __:q!__ Force exit from vi (discarding changes)
-***#
-
-***# __:e name__ Edit file ''name''
-***#
-
-***# __:e!__ reedit, discard changes
-***#
-
-***# __:e + name__ edit file ''name'', starting at end
-***#
-
-***# __:e + n__ edit starting at line ''n''
-***#
-
-***# __:e #__ edit alternate file
-***#
-
-***# __:n__ edit next file in ''arglist''
-***#
-
-***# __:args__ list files in current filelist
-***#
-
-***# __:rew__ rewind current filelist and edit first file
-***#
-
-***# __:n args__ specify new arglist
-***#
-
-***# __:f __ show current file and line
-***#
-
-***# __CTRL-G__ synonym for :f , show current file and line
-***#
-
-***# __:ta tag __ to tag file entry ''tag''
-***#
-
-***# __CTRL-] __ :ta, following word is tag
-***#
-
-
-!!12.7 Movement
-
-
-
-
-
-
-***# __Arrows__ Move the cursor
-***#
-
-***# __CTRL-d__ Scroll half page down
-***#
-
-***# __CTRL-u__ Scroll half page up
-***#
-
-***# __CTRL-f__ Scroll a full page down
-***#
-
-***# __CTRL-b__ Scroll a full page up
-***#
-
-***# __:__ Move to start of file
-***#
-
-***# __:n__ Move to line number n
-***#
-
-***# __:$__ Move to end of file
-***#
-
-***# ____ Move to start of line
-***#
-
-***# __^__ Move to first non-blank character
-***#
-
-***# __$__ Move to end of line
-***#
-
-***# __CR__ Move to the start of next line
-***#
-
-***# __-__ Move to the start of previous line
-***#
-
-***# __%__ Find matching bracket
-***#
-
-***# __G __ goto line (last line default)
-***#
-
-***# __]] __ next section/function
-***#
-
-***# __[[[[ __ previous section/function
-***#
-
-
-!!12.8 Line Positioning
-
-
-
-
-
-
-***# __H __ Home window line
-***#
-
-***# __L __ Last window line
-***#
-
-***# __M __ Middle window line
-***#
-
-***# __+ __ Next line, at first non-white
-***#
-
-***# __- __ Previous line, at first non-white
-***#
-
-***# __CR __ return, same as +
-***#
-
-***# __j __ next line, same column
-***#
-
-***# __k __ previous line, same column
-***#
-
-
-!!12.9 Character positioning
-
-
-
-
-
-
-***# __0 __ beginning of line
-***#
-
-***# __$ __ end of line
-***#
-
-***# __h __ forward
-***#
-
-***# __l __ backwards
-***#
-
-***# __SPACE __ same as l
-***#
-
-***# __fx __ find x forward
-***#
-
-***# __Fx __ find x backward
-***#
-
-***# __; __ repeat last f F
-***#
-
-***# __, __ inverse of ;
-***#
-
-***# __| __ to specified column
-***#
-
-***# __% __ find matching { or }
-***#
-
-
-!!12.10 Words, sentences, paragraphs
-
-
-
-
-
-
-***# __w __ Word forward
-***#
-
-***# __b __ Word backward
-***#
-
-***# __e __ End of word
-***#
-
-***# __) __ To next sentence
-***#
-
-***# __( __ Back sentence
-***#
-
-***# __} __ To next paragraph
-***#
-
-***# __{ __ Back paragraph
-***#
-
-***# __W __ Blank delimited word
-***#
-
-***# __B __ Back W
-***#
-
-***# __E __ To end of W
-***#
-
-
-!!12.11 Marking and returning
-
-
-
-
-
-
-***# __``__ (press twice the back-quote ` key) Previous context
-***#
-
-***# __''__ (press twice the single-quote ` key) Previous context at first non-white in line
-***#
-
-***# __mx__ mark position with letter x
-***#
-
-***# __`x__ (back quote key and letter x) goto mark x
-***#
-
-***# __'x__ goto mark x at first non-white in line
-***#
-
-
-!!12.12 Corrections during insert
-
-
-
-
-
-
-***# __CTRL-h__ Erase last character
-***#
-
-***# __CTRL-w__ Erase last word
-***#
-
-***# __erase __ Press DELETE key, same as CTRL-h
-***#
-
-***# __kill __ Your kill key, erase input this line
-***#
-
-***# __\ __ Escapes CTRL-h, DELETE and kill
-***#
-
-***# __ESC __ Ends insertion, back to command
-***#
-
-***# __CTRL-? __ Interrupt, terminates insert
-***#
-
-***# __CTRL-d __ Backtab over ''autoindent''
-***#
-
-***# __CTRL-v __ Quote non-printing character
-***#
-
-
-!!12.13 Adjusting the screen
-
-
-
-
-
-
-***# __CTRL-l__ Clear and redraw
-***#
-
-***# __CTRL-r__ retype, eliminate @lines
-***#
-
-***# __z-CR__ redraw, current line at window top
-***#
-
-***# __z-__ redraw, current line at window bottom
-***#
-
-***# __z.__ redraw, current line at window center
-***#
-
-***# __/pat/z-__ ''pat'' line bottom
-***#
-
-***# __tn__ Use n line window
-***#
-
-***# __CTRL-e__ Scroll window down 1 line
-***#
-
-***# __CTRL-y__ Scroll window up 1 line
-***#
-
-
-!!12.14 Delete
-
-
-
-
-
-
-***# __x__ Delete the character under the cursor
-***#
-
-***# __X__ Delete the charater before the cursor
-***#
-
-***# __D__ Delete to the end of line
-***#
-
-***# __d^__ Delete back to start of line
-***#
-
-***# __dd__ Delete the current line
-***#
-
-***# __ndd__ Delete ''n'' lines starting with the current one
-***#
-
-***# __dnw__ Delete ''n'' words starting from cursor
-***#
-
-
-!!12.15 Insert, change
-
-
-
-
-
-
-***# __i__ Enter input mode inserting before the cursor
-***#
-
-***# __I__ Enter input mode inserting before the first non-blank character
-***#
-
-***# __a__ Enter input mode inserting after the cursor
-***#
-
-***# __A__ Enter input mode inserting after the end of the line
-***#
-
-***# __o__ Open a new line below current line and enter input mode
-***#
-
-***# __O__ Open a new line above current line and enter input mode
-***#
-
-***# __r__ Replace the character under the cursor (does NOT enter input mode)
-***#
-
-***# __R__ Enter input mode replacing characters
-***#
-
-***# __C__ shift-c. Change rest of line
-***#
-
-***# __D__ shift-d. Delete rest of line
-***#
-
-***# __s__ Substitute chars
-***#
-
-***# __S__ Substitute lines
-***#
-
-***# __J__ Join lines
-***#
-
-***# __J__ Join lines
-***#
-
-
-!!12.16 Copy and Paste
-
-
-
-The "yank buffer" is filled by ''EVERY'' delete command, or explicitely by
-__Y__ and __yy__.
-
-
-***# __Y__ Copy the current line to the yank buffer
-***#
-
-***# __''n''yy__ Copy ''n'' lines starting from the current to the yank buffer
-***#
-
-***# __p__ Paste the yank buffer after the cursor (or below the current line)
-***#
-
-***# __P__ Paste the yank buffer before the cursor (or above the current line)
-***#
-
-***# __"''x''p __ Put from buffer x
-***#
-
-***# __"''x''y __ Yank to buffer x
-***#
-
-***# __"''x''d __ Delete into buffer x
-***#
-
-
-!!12.17 Operators (use double to affect lines)
-
-
-
-
-
-
-***# __d __ delete
-***#
-
-***# __c __ change
-***#
-
-***# __< __ left shift
-***#
-
-***# __> __ right shift
-***#
-
-***# __! __ filter through command
-***#
-
-***# __= __ indent for LISP
-***#
-
-***# __y __ yank text to buffer
-***#
-
-
-!!12.18 Search and replace
-
-
-
-
-
-
-***# __/''text''__ Search forward for ''text''
-***#
-
-***# __?''text''__ Search backward for ''text''
-***#
-
-***# __n__ Repeat the last search in the same direction
-***#
-
-***# __N__ Repeat the last search in the reverse direction
-***#
-
-***# __/__ Repeat the last search forward
-***#
-
-***# __?__ Repeat the last search backward
-***#
-
-***# __[[ addr ] s/from/to/ [[ g ] __ Search for the occurence of ''from''
-and replace it with __''to''__ in the current line, or in the range
-__''addr''__ (two line numbers seperated by command; 1,$ is the whole file).
-Replaces one occurrence per line, or all occurrences
-if __''g''__ is specified.
-For example, :3,20s/someword/anotherword/g Will replace "someword" with "anotherword" starting from line 3 to line 20. 'g' is global means replace all occurrences of "someword".
-***#
-
-
-!!12.19 General
-
-
-
-
-
-
-***# __:sh__ Forks a shell (to be exited with CTRL-d)
-***#
-
-***# __:!''command''__ Forks a shell to execute ''command''
-***#
-
-***# __:set number__ Switch on line numbering
-***#
-
-***# __:set nonumber__ Switch off line numbering
-***#
-
-
-!!12.20 Line Editor Commands
-
-
-
-
-
-
-***# __:__ Tells __vi__ that the next commands you issue will be line editor commands.
-***#
-
-***# __:sh__ Temporarily returns to the shell to perform some shell commands without leaving __vi__.
-***#
-
-***# __CTRL-d__ Escapes the temporary return to the shell and returns to __vi__ so you can edit the current window.
-***#
-
-***# __:__''n'' Goes to the ''n''th line of the buffer.
-***#
-
-***# __:__''x,z''__w__ ''filename'' Writes lines from the numbers ''x'' through the number ''z'' into a new file called ''filename''.
-***#
-
-***# __:$__ Moves the cursor to the beginning of the last line in the buffer.
-***#
-
-***# __:.,$d__ Deletes all the lines from the current line to the last line
-***#
-
-***# __:r__ ''filename'' Inserts the contents of the file ''filename'' under the current line of the buffer.
-***#
-
-***# __:s__''/text/new_text/'' Replaces the first instance of ''text'' on the current line with ''new_text''
-***#
-
-***# __:s__''/text/new_text/g'' Replaces the every occurrence of ''text'' on the current line with ''new_text''
-***#
-
-***# __:g__''/text/s//new_text/g'' Changes every occurrence of ''text'' on the buffer to ''new_text''.
-***#
-
-
-!!12.21 Other commands
-
-
-
-
-
-
-***# __u__ Undo the last change
-***#
-
-***# __U__ Restore the current line
-***#
-
-***# __~__ Change case
-***#
-
-***# __J__ Join the currentline with the next line
-***#
-
-***# __.__ Repeat last text changing command
-***#
-
-***# __CTRL-g__ Show file name and line number
-***#
-
-----
-
-!!13. Related URLs
-
-
-Related VIM URLs are at -
-
-
-**** C and C++ Beautifer
-http://www.metalab.unc.edu/LDP/HOWTO/C-C++Beautifier-HOWTO.html
-****
-
-**** Linux goodies main site is at
-http://www.milkywaygalaxy.freeservers.com
-Mirror sites are at -
-http://aldev0.webjump.com,
-angelfire,
-geocities,
-virtualave,
-50megs,
-theglobe,
-NBCi,
-Terrashare,
-Fortunecity,
-Freewebsites,
-Tripod,
-Spree,
-Escalix,
-Httpcity,
-Freeservers.
-
-****
-
-----
-
-!!14. Other Formats of this Document
-
-
-This document is published in 14 different formats namely - DVI, Postscript,
-Latex, Adobe Acrobat PDF,
-LyX, GNU-info, HTML, RTF(Rich Text Format), Plain-text, Unix man pages, single
-HTML file, SGML (Linuxdoc format), SGML (Docbook format), MS !WinHelp format.
-
-
-This howto document is located at -
-
-
-****
-http://www.linuxdoc.org and click on HOWTOs and search
-for howto document name using CTRL+f or ALT+f within the web-browser.
-****
-
-
-
-You can also find this document at the following mirrors sites -
-
-
-****
-http://www.caldera.com/LDP/HOWTO
-****
-
-****
-http://www.linux.ucla.edu/LDP
-****
-
-****
-http://www.cc.gatech.edu/linux/LDP
-****
-
-****
-http://www.redhat.com/mirrors/LDP
-
-****
-
-**** Other mirror sites near you (network-address-wise) can be found at
-http://www.linuxdoc.org/mirrors.html
-select a site and go to directory /LDP/HOWTO/xxxxx-HOWTO.html
-****
-
-
-
-
-
-
-
-
-
-****You can get this HOWTO document as a single file tar ball in HTML, DVI,
-Postscript or SGML formats from -
-ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO/other-formats/
-and
-http://www.linuxdoc.org/docs.html#howto
-
-
-
-
-****
-
-****Plain text format is in:
-ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO
-and
-http://www.linuxdoc.org/docs.html#howto
-
-
-
-
-****
-
-****Single HTML file format is in:
-http://www.linuxdoc.org/docs.html#howto
-
-
- Single HTML file can be created with command (see man sgml2html) -
-sgml2html -split 0 xxxxhowto.sgml
-
-
-
-
-****
-
-****Translations to other languages like French, German, Spanish,
-Chinese, Japanese are in
-ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO
-and
-http://www.linuxdoc.org/docs.html#howto
-Any help from you to translate to other languages is welcome.
-****
-
-The document is written using a tool called "SGML-Tools" which can be got from -
-http://www.sgmltools.org
-Compiling the source you will get the following commands like
-
-
-****sgml2html xxxxhowto.sgml (to generate html file)
-****
-
-****sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file)
-****
-
-****sgml2rtf xxxxhowto.sgml (to generate RTF file)
-****
-
-****sgml2latex xxxxhowto.sgml (to generate latex file)
-****
-
-
-!! 14.1 Acrobat PDF format
-
-
-
-PDF file can be generated from postscript file using
-either acrobat __distill__ or __Ghostscript__.
-And postscript file is generated
-from DVI which in turn is generated from !LaTex file.
-You can download distill software from
-http://www.adobe.com. Given below
-is a sample session:
-----
-
-bash$ man sgml2latex
-bash$ sgml2latex filename.sgml
-bash$ man dvips
-bash$ dvips -o filename.ps filename.dvi
-bash$ distill filename.ps
-bash$ man ghostscript
-bash$ man ps2pdf
-bash$ ps2pdf input.ps output.pdf
-bash$ acroread output.pdf &
-
-----
-Or you can use Ghostscript command __ps2pdf__.
-ps2pdf is a work-alike for nearly all the functionality of
-Adobe's Acrobat Distiller product: it
-converts !PostScript files to Portable Document Format (PDF) files.
-__ps2pdf__ is implemented as a very small command script
-(batch file) that invokes Ghostscript, selecting a special "output device"
-called __pdfwrite__. In order to use ps2pdf, the pdfwrite
-device must be included in the makefile when Ghostscript was compiled;
-see the documentation on building Ghostscript for details.
-
-!! 14.2 Convert Linuxdoc to Docbook format
-
-
-
-This document is written in linuxdoc SGML format. The Docbook SGML format
-supercedes the linuxdoc format and has lot more features than linuxdoc.
-The linuxdoc is very simple and is easy to use. To convert linuxdoc SGML
-file to Docbook SGML use the program __ld2db.sh__ and some perl scripts.
-The ld2db output is not 100% clean and you need to use the __clean_ld2db.pl__
-perl script. You may need to manually correct few lines in the document.
-
-
-**** Download ld2db program from
-http://www.dcs.gla.ac.uk/~rrt/docbook.html
-or from
-Al Dev site
-****
-
-**** Download the cleanup_ld2db.pl perl script from
-from
-Al Dev site
-****
-
-The ld2db.sh is not 100% clean, you will get lots of errors when you run
-----
-
-bash$ ld2db.sh file-linuxdoc.sgml db.sgml
-bash$ cleanup.pl db.sgml > db_clean.sgml
-bash$ gvim db_clean.sgml
-bash$ docbook2html db.sgml
-
-----
-And you may have to manually edit some of the minor errors after
-running the perl script. For e.g. you may need to put closing tag <
-/Para> for each <
-Listitem>
-
-!! 14.3 Convert to MS !WinHelp format
-
-
-
-You can convert the SGML howto document to Microsoft Windows Help file,
-first convert the sgml to html using:
-----
-
-bash$ sgml2html xxxxhowto.sgml (to generate html file)
-bash$ sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file)
-
-----
-Then use the tool
-!HtmlToHlp.
-You can also use sgml2rtf and then use the RTF files for generating winhelp files.
-
-!! 14.4 Reading various formats
-
-
-
-In order to view the document in dvi format, use the xdvi program. The xdvi
-program is located in tetex-xdvi*.rpm package in Redhat Linux which can be
-located through !ControlPanel | Applications | Publishing | TeX menu buttons.
-To read dvi document give the command -
-
-
-xdvi -geometry 80x90 howto.dvi
-man xdvi
-
-
-And resize the window with mouse.
-To navigate use Arrow keys, Page Up, Page Down keys, also
-you can use 'f', 'd', 'u', 'c', 'l', 'r', 'p', 'n' letter
-keys to move up, down, center, next page, previous page etc.
-To turn off expert menu press 'x'.
-
-
-You can read postscript file using the program 'gv' (ghostview) or
-'ghostscript'.
-The ghostscript program is in ghostscript*.rpm package and gv
-program is in gv*.rpm package in Redhat Linux
-which can be located through !ControlPanel | Applications | Graphics menu
-buttons. The gv program is much more user friendly than ghostscript.
-Also ghostscript and gv are available on other platforms like OS/2,
-Windows 95 and NT, you view this document even on those platforms.
-
-
-
-
-
-****Get ghostscript for Windows 95, OS/2, and for
-all OSes from
-http://www.cs.wisc.edu/~ghost
-****
-
-
-
-To read postscript document give the command -
-
-
-gv howto.ps
-ghostscript howto.ps
-
-
-
-
-You can read HTML format document using Netscape Navigator, Microsoft Internet
-explorer, Redhat Baron Web browser or any of the 10 other web browsers.
-
-
-You can read the latex, LyX output using LyX a X-Windows front end to latex.
-----
-
-!!15. Copyright Notice
-
-
-Copyright policy is GNU/GPL as per LDP (Linux Documentation project).
-LDP is a GNU/GPL project.
-Additional restrictions are - you must retain the author's name, email address
-and this copyright notice on all the copies. If you make any changes
-or additions to this document then you should
-notify all the authors of this document
.
-----
+Describe
[HowToVimHOWTO
] here.