1071d4279SBram Moolenaar" An example for a vimrc file. 2071d4279SBram Moolenaar" 3071d4279SBram Moolenaar" Maintainer: Bram Moolenaar <[email protected]> 4*4391cf98SBram Moolenaar" Last change: 2014 Nov 05 5071d4279SBram Moolenaar" 6071d4279SBram Moolenaar" To use it, copy it to 7071d4279SBram Moolenaar" for Unix and OS/2: ~/.vimrc 8071d4279SBram Moolenaar" for Amiga: s:.vimrc 9071d4279SBram Moolenaar" for MS-DOS and Win32: $VIM\_vimrc 10071d4279SBram Moolenaar" for OpenVMS: sys$login:.vimrc 11071d4279SBram Moolenaar 12071d4279SBram Moolenaar" When started as "evim", evim.vim will already have done these settings. 13071d4279SBram Moolenaarif v:progname =~? "evim" 14071d4279SBram Moolenaar finish 15071d4279SBram Moolenaarendif 16071d4279SBram Moolenaar 175c73622aSBram Moolenaar" Use Vim settings, rather than Vi settings (much better!). 18071d4279SBram Moolenaar" This must be first, because it changes other options as a side effect. 19071d4279SBram Moolenaarset nocompatible 20071d4279SBram Moolenaar 21071d4279SBram Moolenaar" allow backspacing over everything in insert mode 22071d4279SBram Moolenaarset backspace=indent,eol,start 23071d4279SBram Moolenaar 24071d4279SBram Moolenaarif has("vms") 25071d4279SBram Moolenaar set nobackup " do not keep a backup file, use versions instead 26071d4279SBram Moolenaarelse 2776756884SBram Moolenaar set backup " keep a backup file (restore to previous version) 2876756884SBram Moolenaar set undofile " keep an undo file (undo changes after closing) 29071d4279SBram Moolenaarendif 30071d4279SBram Moolenaarset history=50 " keep 50 lines of command line history 31071d4279SBram Moolenaarset ruler " show the cursor position all the time 32071d4279SBram Moolenaarset showcmd " display incomplete commands 33071d4279SBram Moolenaarset incsearch " do incremental searching 34071d4279SBram Moolenaar 35071d4279SBram Moolenaar" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries 36071d4279SBram Moolenaar" let &guioptions = substitute(&guioptions, "t", "", "g") 37071d4279SBram Moolenaar 38071d4279SBram Moolenaar" Don't use Ex mode, use Q for formatting 39071d4279SBram Moolenaarmap Q gq 40071d4279SBram Moolenaar 41aba8857aSBram Moolenaar" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, 42aba8857aSBram Moolenaar" so that you can undo CTRL-U after inserting a line break. 43aba8857aSBram Moolenaarinoremap <C-U> <C-G>u<C-U> 44aba8857aSBram Moolenaar 45c81e5e79SBram Moolenaar" In many terminal emulators the mouse works just fine, thus enable it. 46c236c16dSBram Moolenaarif has('mouse') 47c81e5e79SBram Moolenaar set mouse=a 48c236c16dSBram Moolenaarendif 49071d4279SBram Moolenaar 50071d4279SBram Moolenaar" Switch syntax highlighting on, when the terminal has colors 51071d4279SBram Moolenaar" Also switch on highlighting the last used search pattern. 52071d4279SBram Moolenaarif &t_Co > 2 || has("gui_running") 53071d4279SBram Moolenaar syntax on 54071d4279SBram Moolenaar set hlsearch 55071d4279SBram Moolenaarendif 56071d4279SBram Moolenaar 57071d4279SBram Moolenaar" Only do this part when compiled with support for autocommands. 58071d4279SBram Moolenaarif has("autocmd") 59071d4279SBram Moolenaar 60071d4279SBram Moolenaar " Enable file type detection. 61071d4279SBram Moolenaar " Use the default filetype settings, so that mail gets 'tw' set to 72, 62071d4279SBram Moolenaar " 'cindent' is on in C files, etc. 63071d4279SBram Moolenaar " Also load indent files, to automatically do language-dependent indenting. 64071d4279SBram Moolenaar filetype plugin indent on 65071d4279SBram Moolenaar 66071d4279SBram Moolenaar " Put these in an autocmd group, so that we can delete them easily. 67071d4279SBram Moolenaar augroup vimrcEx 68071d4279SBram Moolenaar au! 69071d4279SBram Moolenaar 70071d4279SBram Moolenaar " For all text files set 'textwidth' to 78 characters. 71071d4279SBram Moolenaar autocmd FileType text setlocal textwidth=78 72071d4279SBram Moolenaar 73071d4279SBram Moolenaar " When editing a file, always jump to the last known cursor position. 74071d4279SBram Moolenaar " Don't do it when the position is invalid or when inside an event handler 75071d4279SBram Moolenaar " (happens when dropping a file on gvim). 76aba8857aSBram Moolenaar " Also don't do it when the mark is in the first line, that is the default 77aba8857aSBram Moolenaar " position when opening a file. 78071d4279SBram Moolenaar autocmd BufReadPost * 79aba8857aSBram Moolenaar \ if line("'\"") > 1 && line("'\"") <= line("$") | 80c81e5e79SBram Moolenaar \ exe "normal! g`\"" | 81071d4279SBram Moolenaar \ endif 82071d4279SBram Moolenaar 83071d4279SBram Moolenaar augroup END 84071d4279SBram Moolenaar 85071d4279SBram Moolenaarelse 86071d4279SBram Moolenaar 87071d4279SBram Moolenaar set autoindent " always set autoindenting on 88071d4279SBram Moolenaar 89071d4279SBram Moolenaarendif " has("autocmd") 90c81e5e79SBram Moolenaar 91c81e5e79SBram Moolenaar" Convenient command to see the difference between the current buffer and the 92c81e5e79SBram Moolenaar" file it was loaded from, thus the changes you made. 93aba8857aSBram Moolenaar" Only define it when not defined already. 94aba8857aSBram Moolenaarif !exists(":DiffOrig") 958e5af3e5SBram Moolenaar command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis 96c81e5e79SBram Moolenaar \ | wincmd p | diffthis 97aba8857aSBram Moolenaarendif 98*4391cf98SBram Moolenaar 99*4391cf98SBram Moolenaarif has('langmap') && exists('+langnoremap') 100*4391cf98SBram Moolenaar " Prevent that the langmap option applies to characters that result from a 101*4391cf98SBram Moolenaar " mapping. If unset (default), this may break plugins (but it's backward 102*4391cf98SBram Moolenaar " compatible). 103*4391cf98SBram Moolenaar set langnoremap 104*4391cf98SBram Moolenaarendif 105