|
|
@@ -0,0 +1,160 @@ |
|
|
|
" URL: http://vim.wikia.com/wiki/Example_vimrc |
|
|
|
" Authors: http://vim.wikia.com/wiki/Vim_on_Freenode |
|
|
|
" Description: A minimal, but feature rich, example .vimrc. If you are a |
|
|
|
" newbie, basing your first .vimrc on this file is a good choice. |
|
|
|
" If you're a more advanced user, building your own .vimrc based |
|
|
|
" on this file is still a good idea. |
|
|
|
|
|
|
|
"------------------------------------------------------------ |
|
|
|
" Features {{{1 |
|
|
|
" |
|
|
|
" These options and commands enable some very useful features in Vim, that |
|
|
|
" no user should have to live without. |
|
|
|
|
|
|
|
" Set 'nocompatible' to ward off unexpected things that your distro might |
|
|
|
" have made, as well as sanely reset options when re-sourcing .vimrc |
|
|
|
set nocompatible |
|
|
|
|
|
|
|
" Attempt to determine the type of a file based on its name and possibly its |
|
|
|
" contents. Use this to allow intelligent auto-indenting for each filetype, |
|
|
|
" and for plugins that are filetype specific. |
|
|
|
filetype indent plugin on |
|
|
|
|
|
|
|
" Enable syntax highlighting |
|
|
|
syntax on |
|
|
|
|
|
|
|
|
|
|
|
"------------------------------------------------------------ |
|
|
|
" Must have options {{{1 |
|
|
|
" |
|
|
|
" These are highly recommended options. |
|
|
|
|
|
|
|
" Vim with default settings does not allow easy switching between multiple files |
|
|
|
" in the same editor window. Users can use multiple split windows or multiple |
|
|
|
" tab pages to edit multiple files, but it is still best to enable an option to |
|
|
|
" allow easier switching between files. |
|
|
|
" |
|
|
|
" One such option is the 'hidden' option, which allows you to re-use the same |
|
|
|
" window and switch from an unsaved buffer without saving it first. Also allows |
|
|
|
" you to keep an undo history for multiple files when re-using the same window |
|
|
|
" in this way. Note that using persistent undo also lets you undo in multiple |
|
|
|
" files even in the same window, but is less efficient and is actually designed |
|
|
|
" for keeping undo history after closing Vim entirely. Vim will complain if you |
|
|
|
" try to quit without saving, and swap files will keep you safe if your computer |
|
|
|
" crashes. |
|
|
|
set hidden |
|
|
|
|
|
|
|
" Note that not everyone likes working this way (with the hidden option). |
|
|
|
" Alternatives include using tabs or split windows instead of re-using the same |
|
|
|
" window as mentioned above, and/or either of the following options: |
|
|
|
" set confirm |
|
|
|
" set autowriteall |
|
|
|
|
|
|
|
" Better command-line completion |
|
|
|
set wildmenu |
|
|
|
|
|
|
|
" Show partial commands in the last line of the screen |
|
|
|
set showcmd |
|
|
|
|
|
|
|
" Highlight searches (use <C-L> to temporarily turn off highlighting; see the |
|
|
|
" mapping of <C-L> below) |
|
|
|
set hlsearch |
|
|
|
|
|
|
|
" Modelines have historically been a source of security vulnerabilities. As |
|
|
|
" such, it may be a good idea to disable them and use the securemodelines |
|
|
|
" script, <http://www.vim.org/scripts/script.php?script_id=1876>. |
|
|
|
" set nomodeline |
|
|
|
|
|
|
|
|
|
|
|
"------------------------------------------------------------ |
|
|
|
" Usability options {{{1 |
|
|
|
" |
|
|
|
" These are options that users frequently set in their .vimrc. Some of them |
|
|
|
" change Vim's behaviour in ways which deviate from the true Vi way, but |
|
|
|
" which are considered to add usability. Which, if any, of these options to |
|
|
|
" use is very much a personal preference, but they are harmless. |
|
|
|
|
|
|
|
" Use case insensitive search, except when using capital letters |
|
|
|
set ignorecase |
|
|
|
set smartcase |
|
|
|
|
|
|
|
" Allow backspacing over autoindent, line breaks and start of insert action |
|
|
|
set backspace=indent,eol,start |
|
|
|
|
|
|
|
" When opening a new line and no filetype-specific indenting is enabled, keep |
|
|
|
" the same indent as the line you're currently on. Useful for READMEs, etc. |
|
|
|
set autoindent |
|
|
|
|
|
|
|
" Stop certain movements from always going to the first character of a line. |
|
|
|
" While this behaviour deviates from that of Vi, it does what most users |
|
|
|
" coming from other editors would expect. |
|
|
|
set nostartofline |
|
|
|
|
|
|
|
" Display the cursor position on the last line of the screen or in the status |
|
|
|
" line of a window |
|
|
|
set ruler |
|
|
|
|
|
|
|
" Always display the status line, even if only one window is displayed |
|
|
|
set laststatus=2 |
|
|
|
|
|
|
|
" Instead of failing a command because of unsaved changes, instead raise a |
|
|
|
" dialogue asking if you wish to save changed files. |
|
|
|
set confirm |
|
|
|
|
|
|
|
" Use visual bell instead of beeping when doing something wrong |
|
|
|
set visualbell |
|
|
|
|
|
|
|
" And reset the terminal code for the visual bell. If visualbell is set, and |
|
|
|
" this line is also included, vim will neither flash nor beep. If visualbell |
|
|
|
" is unset, this does nothing. |
|
|
|
set t_vb= |
|
|
|
|
|
|
|
" Enable use of the mouse for all modes |
|
|
|
set mouse=a |
|
|
|
|
|
|
|
" Set the command window height to 2 lines, to avoid many cases of having to |
|
|
|
" "press <Enter> to continue" |
|
|
|
set cmdheight=2 |
|
|
|
|
|
|
|
" Display line numbers on the left |
|
|
|
set number |
|
|
|
|
|
|
|
" Quickly time out on keycodes, but never time out on mappings |
|
|
|
set notimeout ttimeout ttimeoutlen=200 |
|
|
|
|
|
|
|
" Use <F11> to toggle between 'paste' and 'nopaste' |
|
|
|
set pastetoggle=<F11> |
|
|
|
|
|
|
|
|
|
|
|
"------------------------------------------------------------ |
|
|
|
" Indentation options {{{1 |
|
|
|
" |
|
|
|
" Indentation settings according to personal preference. |
|
|
|
|
|
|
|
" Indentation settings for using 4 spaces instead of tabs. |
|
|
|
" Do not change 'tabstop' from its default value of 8 with this setup. |
|
|
|
set shiftwidth=4 |
|
|
|
set softtabstop=4 |
|
|
|
set expandtab |
|
|
|
|
|
|
|
" Indentation settings for using hard tabs for indent. Display tabs as |
|
|
|
" four characters wide. |
|
|
|
"set shiftwidth=4 |
|
|
|
"set tabstop=4 |
|
|
|
|
|
|
|
|
|
|
|
"------------------------------------------------------------ |
|
|
|
" Mappings {{{1 |
|
|
|
" |
|
|
|
" Useful mappings |
|
|
|
|
|
|
|
" Map Y to act like D and C, i.e. to yank until EOL, rather than act as yy, |
|
|
|
" which is the default |
|
|
|
map Y y$ |
|
|
|
|
|
|
|
" Map <C-L> (redraw screen) to also turn off search highlighting until the |
|
|
|
" next search |
|
|
|
nnoremap <C-L> :nohl<CR><C-L> |
|
|
|
|
|
|
|
|
|
|
|
"------------------------------------------------------------ |