annotate vim/.vimrc @ 20:33114558b770

Set ctrlp options.
author Brian Neal <bgneal@gmail.com>
date Thu, 18 Dec 2014 18:34:02 -0600
parents b8049010198a
children 083b3c7ae8c0
rev   line source
bgneal@0 1 set nocompatible
bgneal@0 2 "source $VIMRUNTIME/vimrc_example.vim
bgneal@0 3 "source $VIMRUNTIME/mswin.vim
bgneal@0 4 "behave mswin
bgneal@0 5
bgneal@0 6 set nobackup
bgneal@0 7 set tabstop=3
bgneal@0 8 set shiftwidth=3
bgneal@0 9 set backspace=indent,eol,start
bgneal@0 10 set expandtab
bgneal1@9 11 set textwidth=79
bgneal@0 12 set number
bgneal@0 13 set ruler
bgneal@0 14 set history=1000
bgneal@0 15 set encoding=utf-8
bgneal@4 16 set showcmd
bgneal@0 17
bgneal@0 18 " CtrlP related settings
bgneal@20 19 set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*.o,*.swp,*.pyc
bgneal@20 20 let g:ctrlp_working_path_mode = 'ra'
bgneal@0 21
bgneal@0 22 " This allows % to toggle on if/elsif/else/end, XML tags, & more
bgneal@0 23 runtime macros/matchit.vim
bgneal@0 24
bgneal@0 25 " These two options make /-style searching case-sensitive only if there
bgneal@0 26 " is a capital letter in the search expression.
bgneal@0 27 set ignorecase
bgneal@0 28 set smartcase
bgneal@0 29
bgneal@0 30 " Sets the terminal title when run in an xterm
bgneal@0 31 set title
bgneal@0 32
bgneal@0 33 " This puts more context around the cursor when scrolling
bgneal@0 34 set scrolloff=3
bgneal@0 35
bgneal1@9 36 let g:netrw_sort_sequence = "[\/]$,*,\.bak$,\.o$,\.info$,\.swp$,\.obj$"
bgneal@0 37
bgneal@0 38 syntax on
bgneal@0 39 filetype on
bgneal@0 40 filetype plugin on
bgneal@0 41 filetype indent on
bgneal@0 42 set hlsearch
bgneal@0 43 set incsearch
bgneal@0 44
bgneal@0 45 " highlight trailing spaces
bgneal@0 46 let c_space_errors = 1
bgneal1@9 47 let python_space_error_highlight = 1
bgneal@0 48
bgneal@2 49 set background=dark
bgneal@2 50 colorscheme peaksea2
bgneal@0 51
bgneal@0 52 " shortcut for word completion in insert mode
bgneal@0 53 imap <S-Tab> <C-n>
bgneal@0 54
bgneal@0 55 " buffer next and previous commands
bgneal@16 56 " TODO: find a better mapping
bgneal@16 57 " TODO: nnoremap <Tab> :bnext<CR>
bgneal@16 58 " TODO: nnoremap <S-Tab> :bprevious<CR>
bgneal@0 59
bgneal@0 60 " Remove extra trailing spaces
bgneal@0 61 nnoremap <F2> :%s/\s\+$//<CR>
bgneal@0 62
bgneal@4 63 " setlocal spell spelllang=en_us
bgneal@0 64
bgneal@16 65 let mapleader="\\"
bgneal@6 66
bgneal1@9 67 " ctags support
bgneal1@9 68
bgneal1@9 69 function BgnCtags()
bgneal1@9 70 let d = fnamemodify(findfile("root.dir", ";"), ":p:h")
bgneal1@9 71 let tags = d . "\\tags"
bgneal1@9 72 let s = "ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --exclude=Coe_prune --exclude=Opnet --languages=-all --languages=+c,c++,python -f " . tags . " " . d
bgneal1@9 73 echo s
bgneal1@9 74 call system(s)
bgneal1@9 75 endfunction
bgneal1@9 76
bgneal1@9 77 nnoremap <F8> :call BgnCtags()<CR>
bgneal1@9 78 nnoremap <F9> :tn<CR>
bgneal1@9 79 nnoremap <F10> :tp<CR>
bgneal1@9 80 nnoremap <F11> :tj<CR>
bgneal1@9 81 set tags=tags;/
bgneal1@9 82
bgneal1@9 83 " Trial settings
bgneal1@9 84 set wildmenu
bgneal1@9 85 set wildmode=list:longest
bgneal1@9 86 set laststatus=2
bgneal1@9 87 set gdefault
bgneal1@9 88 set showmatch
bgneal@10 89 set formatoptions=tcqrn1
bgneal@16 90 nnoremap <leader>/ :noh<CR>
bgneal@16 91 nnoremap / /\v
bgneal@16 92 vnoremap / /\v
bgneal1@9 93
bgneal1@9 94 " Splitting windows and moving around between them:
bgneal@16 95 nnoremap <leader>v <C-w>v<C-w>l
bgneal1@9 96 nnoremap <C-h> <C-w>h
bgneal1@9 97 nnoremap <C-j> <C-w>j
bgneal1@9 98 nnoremap <C-k> <C-w>k
bgneal1@9 99 nnoremap <C-l> <C-w>l
bgneal1@9 100
bgneal1@9 101 " Absolute vs relative line numbers:
bgneal@16 102 nnoremap <leader>na :set norelativenumber<CR>:set number<CR>
bgneal@16 103 nnoremap <leader>nr :set relativenumber<CR>
bgneal1@9 104
bgneal1@9 105 " Format paragraph
bgneal@16 106 nnoremap <leader>p gqip
bgneal1@9 107
bgneal1@11 108 function BgnSwitchPart()
bgneal1@11 109 python << EOF
bgneal1@11 110 import vim, os.path, sys
bgneal1@11 111 fname = vim.current.buffer.name
bgneal1@11 112 base, ext = os.path.splitext(fname)
bgneal1@11 113 headers = ['.h', '.hxx']
bgneal1@11 114 impls = ['.cpp', '.cxx', '.cc', '.c']
bgneal1@11 115 new_exts = None
bgneal1@11 116 if ext in headers:
bgneal1@11 117 new_exts = impls
bgneal1@11 118 elif ext in impls:
bgneal1@11 119 new_exts = headers
bgneal1@11 120
bgneal1@11 121 if new_exts:
bgneal1@11 122 for ext in new_exts:
bgneal1@11 123 new_fname = base + ext
bgneal1@11 124 if os.path.exists(new_fname):
bgneal1@11 125 vim.command(":e %s" % new_fname)
bgneal1@11 126 break
bgneal1@11 127 else:
bgneal1@11 128 sys.stderr.write("Could not find other part\n")
bgneal1@11 129 else:
bgneal1@11 130 sys.stderr.write("Uknown extension %s" % ext)
bgneal1@11 131 EOF
bgneal1@11 132 endfunction
bgneal1@11 133
bgneal@16 134 nnoremap <leader>s :call BgnSwitchPart()<CR>
bgneal1@11 135
bgneal@6 136 " Pathogen support
bgneal@6 137 call pathogen#infect()