xref: /vim-8.2.3635/runtime/vimrc_example.vim (revision 802a0d90)
1071d4279SBram Moolenaar" An example for a vimrc file.
2071d4279SBram Moolenaar"
3071d4279SBram Moolenaar" Maintainer:	Bram Moolenaar <[email protected]>
4*802a0d90SBram Moolenaar" Last change:	2016 Jun 21
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
5054f1b7abSBram Moolenaar" Switch syntax highlighting on when the terminal has colors or when using the
5154f1b7abSBram Moolenaar" GUI (which always has colors).
52071d4279SBram Moolenaarif &t_Co > 2 || has("gui_running")
53071d4279SBram Moolenaar  syntax on
5454f1b7abSBram Moolenaar
5554f1b7abSBram Moolenaar  " Also switch on highlighting the last used search pattern.
56071d4279SBram Moolenaar  set hlsearch
5754f1b7abSBram Moolenaar
5854f1b7abSBram Moolenaar  " I like highlighting strings inside C comments.
5954f1b7abSBram Moolenaar  let c_comment_strings=1
60071d4279SBram Moolenaarendif
61071d4279SBram Moolenaar
62071d4279SBram Moolenaar" Only do this part when compiled with support for autocommands.
63071d4279SBram Moolenaarif has("autocmd")
64071d4279SBram Moolenaar
65071d4279SBram Moolenaar  " Enable file type detection.
66071d4279SBram Moolenaar  " Use the default filetype settings, so that mail gets 'tw' set to 72,
67071d4279SBram Moolenaar  " 'cindent' is on in C files, etc.
68071d4279SBram Moolenaar  " Also load indent files, to automatically do language-dependent indenting.
69071d4279SBram Moolenaar  filetype plugin indent on
70071d4279SBram Moolenaar
71071d4279SBram Moolenaar  " Put these in an autocmd group, so that we can delete them easily.
72071d4279SBram Moolenaar  augroup vimrcEx
73071d4279SBram Moolenaar  au!
74071d4279SBram Moolenaar
75071d4279SBram Moolenaar  " For all text files set 'textwidth' to 78 characters.
76071d4279SBram Moolenaar  autocmd FileType text setlocal textwidth=78
77071d4279SBram Moolenaar
78071d4279SBram Moolenaar  " When editing a file, always jump to the last known cursor position.
79071d4279SBram Moolenaar  " Don't do it when the position is invalid or when inside an event handler
80071d4279SBram Moolenaar  " (happens when dropping a file on gvim).
81071d4279SBram Moolenaar  autocmd BufReadPost *
825a5f4591SBram Moolenaar    \ if line("'\"") >= 1 && line("'\"") <= line("$") |
83c81e5e79SBram Moolenaar    \   exe "normal! g`\"" |
84071d4279SBram Moolenaar    \ endif
85071d4279SBram Moolenaar
86071d4279SBram Moolenaar  augroup END
87071d4279SBram Moolenaar
88071d4279SBram Moolenaarelse
89071d4279SBram Moolenaar
90071d4279SBram Moolenaar  set autoindent		" always set autoindenting on
91071d4279SBram Moolenaar
92071d4279SBram Moolenaarendif " has("autocmd")
93c81e5e79SBram Moolenaar
94c81e5e79SBram Moolenaar" Convenient command to see the difference between the current buffer and the
95c81e5e79SBram Moolenaar" file it was loaded from, thus the changes you made.
96aba8857aSBram Moolenaar" Only define it when not defined already.
97aba8857aSBram Moolenaarif !exists(":DiffOrig")
988e5af3e5SBram Moolenaar  command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis
99c81e5e79SBram Moolenaar		  \ | wincmd p | diffthis
100aba8857aSBram Moolenaarendif
1014391cf98SBram Moolenaar
1024391cf98SBram Moolenaarif has('langmap') && exists('+langnoremap')
1034391cf98SBram Moolenaar  " Prevent that the langmap option applies to characters that result from a
1044391cf98SBram Moolenaar  " mapping.  If unset (default), this may break plugins (but it's backward
1054391cf98SBram Moolenaar  " compatible).
1064391cf98SBram Moolenaar  set langnoremap
1074391cf98SBram Moolenaarendif
108aedfcbe1SBram Moolenaar
109aedfcbe1SBram Moolenaar
110aedfcbe1SBram Moolenaar" Add optional packages.
111aedfcbe1SBram Moolenaar"
112aedfcbe1SBram Moolenaar" The matchit plugin makes the % command work better, but it is not backwards
113aedfcbe1SBram Moolenaar" compatible.
114*802a0d90SBram Moolenaarif has('syntax') && has('eval')
115aedfcbe1SBram Moolenaar  packadd matchit
116*802a0d90SBram Moolenaarendif
117