My Vim (gVim) configuration
My Vim Configuration:
- Mono-spaced small font suitable for a small laptop screen at 1280×800
- “Desert theme” with dark background, 256-color palette
- Some useful keyboard mappings
- Use spaces as tabs (2 spaces = 1 tab), Smart indentation
- Display line-numbers, Show matching braces when hover
- Display all special characters (that is generally not supported in code files)
- Auto-completion
- Status-line modifications
- Syntax-checking upon saving for almost all languages (plugins, see below)
- File skeletons upon creation (plugins, see below)
- Ignore CVS-, temporary and images (etc) files and directories
- Disabled annoying sounds and bells (blinking)
Configuration:
" For Pathogen plugin manager call pathogen#runtime_append_all_bundles() call pathogen#helptags() """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Editing setings """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Enable filetype plugin filetype plugin on filetype indent on " Filetypes and encoding set fileformats=unix,dos,mac set encoding=utf-8 set wildignore=.svn,CVS,*.o,*.a,*.class,*.mo,*.la,*.so,*.obj,*.swp,*.jpg,*.png,*.xpm,*.gif " General behaviour set autochdir " CWD is always same as current file set ai " Autoident "set si " Smartident set nowrap " Do not wrap lines set nocompatible " ViM settings instead of Vi set smartcase " Smart casing when searching set ignorecase " ... or ignore casing set hlsearch " Highlight matches set incsearch " Modern (wrapping) search set history=500 " Long undo history set tw=1000 " make backspace a more flexible set backspace=indent,eol,start " Disable sounds set vb t_vb=" set noerrorbells set visualbell " Tabbing, Default to 2 spaces as tabs set cino=:0g0(0,W2 set expandtab set tabstop=2 set softtabstop=2 set shiftwidth=2 " Filetype sesific "au FileType python setlocal tabstop=4 softtabstop=4 shiftwidth=4 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " User interface setings """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" syntax on colorscheme desert set showmatch " Show matching braces when over one set ruler " Always show current position set number " Always show line-numbers set numberwidth=5 " Line-number margin width set mousehide " Do not show mouse while typing set antialias " Pretty fonts set t_Co=256 " 256-color palletes set background=dark " Dark background variation of theme set guifont=Andale\ Mono\ 7.5 " Monospaced small font set guioptions-=T " TODO set guioptions+=c " TODO Console messages set linespace=0 " Don't insert any extra pixel lines set lazyredraw " Don't redraw while running macros set wildmenu " Wild menu set wildmode=longest,list,full " Wild menu options " Display special characters and helpers set list " Show < or > when characters are not displayed on the left or right. " Also show tabs and trailing spaces. set list listchars=nbsp:¬,tab:>-,trail:.,precedes:<,extends:> " Autocompletion set ofu=syntaxcomplete#Complete set completeopt+=longest,menuone highlight Pmenu guibg=brown gui=bold let g:SuperTabDefaultCompletionType = "<C-x><C-o>" " Statusline set statusline=%F%m%r%h%w[%L][%{&ff}]%y[%p%%][%04l,%04v] " | | | | | | | | | | | " | | | | | | | | | | + current " | | | | | | | | | | column " | | | | | | | | | +-- current line " | | | | | | | | +-- current % into file " | | | | | | | +-- current syntax in " | | | | | | | square brackets " | | | | | | +-- current fileformat " | | | | | +-- number of lines " | | | | +-- preview flag in square brackets " | | | +-- help flag in square brackets " | | +-- readonly flag in square brackets " | +-- rodified flag in square brackets " +-- full path to file in the buffer " Highlight trailing whitespaces (+ keybindings below) highlight ExtraWhitespace ctermbg=red guibg=red highlight ExtraWhitespace ctermbg=darkgreen guibg=darkgreen au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/ au InsertLeave * match ExtraWhitespace /\s\+$/ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Plugins """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " ViM highlighting au BufNewFile,BufRead *.mxml set filetype=mxml au BufNewFile,BufRead *.as set filetype=actionscript " Highlight errors for VIM supported languages " Supported languages are: ada, c, chill, csc, forth, groovy, icon, java, lpc, mel, nqc, nroff, ora, pascal, plm, plsql, python and ruby. The c settings also apply to cpp. let c_space_errors = 1 let java_space_errors = 1 let python_space_errors = 1 let ruby_space_errors = 1 " NERDTree noremap <F12> :NERDTree<CR> " Tskel let tskelUserName='Anders Evenrud' let tskelUserEmail='andersevenrud@gmail.com' " Syntastic set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* "SyntasticEnable php "SyntasticEnable javascript "SyntasticEnable xhtml "SyntasticEnable python let g:syntastic_enable_signs=1 let g:syntastic_auto_loc_list=1 "let g:syntastic_quiet_warnings=1 " CloseTag autocmd FileType html,htmldjango,jinjahtml,eruby,mako let b:closetag_html_style=1 autocmd FileType html,xhtml,xml,htmldjango,jinjahtml,eruby,mako source ~/.vim/bundle/closetag/plugin/closetag.vim " SuperTab let g:SuperTabDefaultCompletionType = "context" """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Key mappings """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" inoremap <expr> <Esc> pumvisible() ? "\<C-e>" : "\<Esc>" inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" inoremap <expr> <Down> pumvisible() ? "\<C-n>" : "\<Down>" inoremap <expr> <Up> pumvisible() ? "\<C-p>" : "\<Up>" inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>" inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>" " RESIZE with numlock +-/* if bufwinnr(1) map + <C-W>+ map - <C-W>- endif "<home> toggles between start of line and start of text imap <khome> <home> nmap <khome> <home> inoremap <silent> <home> <C-O>:call HHome()<CR> nnoremap <silent> <home> :call HHome()<CR> function! HHome() let curcol = wincol() normal ^ let newcol = wincol() if newcol == curcol normal 0 endif endfunction "<end> goes to end of screen before end of line imap <kend> <end> nmap <kend> <end> inoremap <silent> <end> <C-O>:call HEnd()<CR> nnoremap <silent> <end> :call HEnd()<CR> function! HEnd() let curcol = wincol() normal g$ let newcol = wincol() if newcol == curcol normal $ endif "http://www.pixelbeat.org/patches/vim-7.0023-eol.diff if virtcol(".") == virtcol("$") - 1 normal $ endif endfunction "Ctrl-{up,down} to scroll. (gvim) if has("gui_running") nmap <C-up> <C-y> imap <C-up> <C-o><C-y> nmap <C-down> <C-e> imap <C-down> <C-o><C-e> endif if bufwinnr(1) map <kPlus> <C-W>+ map <kMinus> <C-W>- map <kDivide> <c-w>< map <kMultiply> <c-w>> endif " For highlighting trailing whitespaces nnoremap <Leader>wn :match ExtraWhitespace /^\s* \s*\<Bar>\s\+$/<CR> nnoremap <Leader>wf :match<CR> " space / shift-space scroll in normal mode noremap <S-space> <C-b> noremap <space> <C-f>
Usefull plug-ins:
If you easily want to manage plugins for your Vim installation, I suggest you check out Pathogen. Super simple and awesome!
- Delimate – Automatic closing if brackets, quotes, paranteses etc.
- CloseTag – Automatic closing of HTML/XML tags
- SuperTab – Auto-completion for text and symbols (Intellisense)
- Fugitive – Git wrapper
- Tagbar – Tag listing
- NERD Tree – File Browsing
- ZenCoding – High-speed HTML and CSS coding helpers
- Snipmate – TextMate snipplets for Vim
- tSkeleton – File Templates and Code Skeletons/Snippets
- Syntastic – Automatic syntax checking
Screenshots:
About this entry
You’re currently reading “My Vim (gVim) configuration,” an entry on Anders Evenrud's Blog
- Published:
- September 7, 2011 / 00:00
- Category:
- Development
- Tags:
- configuration, Development, gVim, linux, plug-ins, Vim
No comments yet
Jump to comment form | comment rss [?] | trackback uri [?]