annotate vim/.vimrc @ 24:f5af5e32dcdc

Don't control *.pyc files in the repo.
author Brian Neal <bgneal@gmail.com>
date Fri, 09 Jan 2015 11:35:06 -0600
parents 7c2f7ee3f55e
children 732ed3539b7a
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@23 21 let g:ctrlp_max_files = 20000
bgneal@0 22
bgneal@0 23 " This allows % to toggle on if/elsif/else/end, XML tags, & more
bgneal@0 24 runtime macros/matchit.vim
bgneal@0 25
bgneal@0 26 " These two options make /-style searching case-sensitive only if there
bgneal@0 27 " is a capital letter in the search expression.
bgneal@0 28 set ignorecase
bgneal@0 29 set smartcase
bgneal@0 30
bgneal@0 31 " Sets the terminal title when run in an xterm
bgneal@0 32 set title
bgneal@0 33
bgneal@0 34 " This puts more context around the cursor when scrolling
bgneal@0 35 set scrolloff=3
bgneal@0 36
bgneal1@9 37 let g:netrw_sort_sequence = "[\/]$,*,\.bak$,\.o$,\.info$,\.swp$,\.obj$"
bgneal@0 38
bgneal@0 39 syntax on
bgneal@0 40 filetype on
bgneal@0 41 filetype plugin on
bgneal@0 42 filetype indent on
bgneal@0 43 set hlsearch
bgneal@0 44 set incsearch
bgneal@0 45
bgneal@0 46 " highlight trailing spaces
bgneal@0 47 let c_space_errors = 1
bgneal1@9 48 let python_space_error_highlight = 1
bgneal@0 49
bgneal@2 50 set background=dark
bgneal@2 51 colorscheme peaksea2
bgneal@0 52
bgneal@0 53 " shortcut for word completion in insert mode
bgneal@0 54 imap <S-Tab> <C-n>
bgneal@0 55
bgneal@0 56 " buffer next and previous commands
bgneal@16 57 " TODO: find a better mapping
bgneal@16 58 " TODO: nnoremap <Tab> :bnext<CR>
bgneal@16 59 " TODO: nnoremap <S-Tab> :bprevious<CR>
bgneal@0 60
bgneal@0 61 " Remove extra trailing spaces
bgneal@0 62 nnoremap <F2> :%s/\s\+$//<CR>
bgneal@0 63
bgneal@4 64 " setlocal spell spelllang=en_us
bgneal@0 65
bgneal@16 66 let mapleader="\\"
bgneal@6 67
bgneal1@9 68 " ctags support
bgneal1@9 69
bgneal1@9 70 function BgnCtags()
bgneal@21 71 let s:d = finddir(".hg", ";")
bgneal@21 72 if s:d == ""
bgneal@21 73 let s:d = finddir(".git", ";")
bgneal@21 74 endif
bgneal@21 75 if s:d == ""
bgneal@21 76 echo "No root directory found"
bgneal@21 77 return
bgneal@21 78 endif
bgneal@21 79 let s:path = fnamemodify(s:d, ":p:h:h")
bgneal@21 80 let s:tags = s:path . "/.tags"
bgneal@21 81 let s:cmd = "ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --languages=-all --languages=+c,c++,python,actionscript -f " . s:tags . " " . s:path
bgneal@21 82 echo s:cmd
bgneal@21 83 call system(s:cmd)
bgneal1@9 84 endfunction
bgneal1@9 85
bgneal@21 86 nnoremap <leader>c :call BgnCtags()<CR>
bgneal@21 87 "nnoremap <F9> :tn<CR>
bgneal@21 88 "nnoremap <F10> :tp<CR>
bgneal@21 89 "nnoremap <F11> :tj<CR>
bgneal@21 90 set tags=.tags;/
bgneal1@9 91
bgneal1@9 92 " Trial settings
bgneal1@9 93 set wildmenu
bgneal1@9 94 set wildmode=list:longest
bgneal1@9 95 set laststatus=2
bgneal1@9 96 set gdefault
bgneal1@9 97 set showmatch
bgneal@10 98 set formatoptions=tcqrn1
bgneal@16 99 nnoremap <leader>/ :noh<CR>
bgneal@16 100 nnoremap / /\v
bgneal@16 101 vnoremap / /\v
bgneal1@9 102
bgneal1@9 103 " Splitting windows and moving around between them:
bgneal@16 104 nnoremap <leader>v <C-w>v<C-w>l
bgneal1@9 105 nnoremap <C-h> <C-w>h
bgneal1@9 106 nnoremap <C-j> <C-w>j
bgneal1@9 107 nnoremap <C-k> <C-w>k
bgneal1@9 108 nnoremap <C-l> <C-w>l
bgneal1@9 109
bgneal1@9 110 " Absolute vs relative line numbers:
bgneal@16 111 nnoremap <leader>na :set norelativenumber<CR>:set number<CR>
bgneal@16 112 nnoremap <leader>nr :set relativenumber<CR>
bgneal1@9 113
bgneal1@9 114 " Format paragraph
bgneal@16 115 nnoremap <leader>p gqip
bgneal1@9 116
bgneal@22 117 " Actionscript support
bgneal@22 118 let tlist_actionscript_settings = 'actionscript;c:class;f:method;p:property;v:variable'
bgneal@22 119 au BufRead,BufNewFile *.mxml set ft=actionscript
bgneal@22 120
bgneal1@11 121 function BgnSwitchPart()
bgneal1@11 122 python << EOF
bgneal1@11 123 import vim, os.path, sys
bgneal1@11 124 fname = vim.current.buffer.name
bgneal1@11 125 base, ext = os.path.splitext(fname)
bgneal1@11 126 headers = ['.h', '.hxx']
bgneal1@11 127 impls = ['.cpp', '.cxx', '.cc', '.c']
bgneal1@11 128 new_exts = None
bgneal1@11 129 if ext in headers:
bgneal1@11 130 new_exts = impls
bgneal1@11 131 elif ext in impls:
bgneal1@11 132 new_exts = headers
bgneal1@11 133
bgneal1@11 134 if new_exts:
bgneal1@11 135 for ext in new_exts:
bgneal1@11 136 new_fname = base + ext
bgneal1@11 137 if os.path.exists(new_fname):
bgneal1@11 138 vim.command(":e %s" % new_fname)
bgneal1@11 139 break
bgneal1@11 140 else:
bgneal1@11 141 sys.stderr.write("Could not find other part\n")
bgneal1@11 142 else:
bgneal1@11 143 sys.stderr.write("Uknown extension %s" % ext)
bgneal1@11 144 EOF
bgneal1@11 145 endfunction
bgneal1@11 146
bgneal@16 147 nnoremap <leader>s :call BgnSwitchPart()<CR>
bgneal1@11 148
bgneal@6 149 " Pathogen support
bgneal@6 150 call pathogen#infect()