X-Git-Url: https://code.kerkeslager.com/?p=dotfiles;a=blobdiff_plain;f=.vimrc;h=b48496e00c1d6ac8585e229fe4310dbb8b825fd2;hp=8f2bf64ed26e92e77ddc0a92d96fdae4b775a7a1;hb=342890eff5844f8cfb8eea6d07cbc912c4992a68;hpb=c5a4e6ee773cd226ce10af24e42d648696a42905 diff --git a/.vimrc b/.vimrc index 8f2bf64..b48496e 100644 --- a/.vimrc +++ b/.vimrc @@ -1,22 +1,59 @@ " Don't imitate vi. set nocompatible -" Show line numbers. -set number -set numberwidth=4 +" Make tab-completion work more like bash. +set wildmenu +set wildmode=list:full -" Scroll five lines ahead of cursor. -set scrolloff=5 +" Ignore certain file extensions when tab-completing. +set wildignore=*.swp,*.bak,*.pyc,*.class,*.o,*.exe + +" Set filetype stuff to on. +filetype on +filetype plugin on " Set up autoindentation. set smartindent filetype indent on +" Example filetype-specific setting: +" if has('autocmd') +" autocmd filetype python set expandtab +" endif + +" Allow folding. +set foldenable +set foldmethod=syntax +set foldlevelstart=99 + +" Scroll five lines ahead of cursor. +set scrolloff=5 + +" Turn off error bells and visual bell +set noeb vb t_vb= + " Set tabs to width 4. -set softtabstop=4 -set tabstop=4 -set shiftwidth=4 -set noexpandtab +filetype plugin indent on +set shiftwidth=2 +set softtabstop=2 +set tabstop=2 +set expandtab + +" language-specific settings +autocmd FileType python setlocal shiftwidth=4 softtabstop=4 tabstop=4 + +" Allow backspacing over everything in insert mode. +set backspace=indent,eol,start + +"Highlight bad spacing. +highlight BadSpacing term=standout ctermbg=cyan +augroup Spacing + autocmd! + " Highlight tabulators and trailing spaces + autocmd BufNewFile,BufReadPre * match BadSpacing /\(\t\| *$\)/ + " Only highlight trailing space in tab-filled formats + autocmd FileType help,make match BadSpacing / *$/ +augroup END " Search as you type. set incsearch @@ -32,58 +69,33 @@ set splitbelow splitright " Line wrapping off set nowrap +" Enlarge history and undo/redo buffers. +set history=1000 +set undolevels=1000 + " Reset colors to a clean state. if !has('gui_running') - set t_Co=8 t_md= + set t_Co=8 t_md= endif -" Enable syntax "highlighting. +" Enable syntax highlighting. syntax enable -" Force vim to sync syntax "highlighting from the beginning of the file. +" Force vim to sync syntax highlighting from the beginning of the file. syn sync fromstart -" Set the color scheme. -hi Normal cterm=none ctermfg=white ctermbg=black " Plain text. - -hi Comment cterm=none ctermfg=darkblue ctermbg=black " Comment: // Hello, world - -hi Constant cterm=none ctermfg=blue ctermbg=black " Constant: -hi String cterm=none ctermfg=blue ctermbg=black " String: "Hello, world" -hi Character cterm=none ctermfg=blue ctermbg=black " Character: 'a' -hi Number cterm=none ctermfg=blue ctermbg=black " Number: 234, 0xff -hi Boolean cterm=none ctermfg=blue ctermbg=black " Boolean: TRUE, false -hi Float cterm=none ctermfg=blue ctermbg=black " Float: 2.3e10 - -hi Identifier cterm=none ctermfg=white ctermbg=black " Identifier: foo -hi Function cterm=none ctermfg=white ctermbg=black " Function/method: foo() - -hi Statement cterm=none ctermfg=brown ctermbg=black " Statement: -hi Conditional cterm=none ctermfg=brown ctermbg=black " Conditional: if, then, else, endif, switch -hi Repeat cterm=none ctermfg=brown ctermbg=black " Repeat: for, do, while -hi Label cterm=none ctermfg=brown ctermbg=black " Label: case, default -hi Operator cterm=none ctermfg=brown ctermbg=black " Operator: sizeof, +, * -hi Keyword cterm=none ctermfg=brown ctermbg=black " Keyword: register, const -hi Exception cterm=none ctermfg=brown ctermbg=black " Exception: try, catch, throw - -hi PreProc cterm=none ctermfg=darkred ctermbg=black " Preprocessor directives: -hi Include cterm=none ctermfg=darkred ctermbg=black " #include -hi Define cterm=none ctermfg=darkred ctermbg=black " #define -hi PreCondit cterm=none ctermfg=darkred ctermbg=black " #if, #else, #endif - -hi Type cterm=none ctermfg=darkgreen ctermbg=black " Types: int, long, char -hi StorageClass cterm=none ctermfg=darkgreen ctermbg=black " Storage modifiers: static, register, volatile -hi Structure cterm=none ctermfg=darkgreen ctermbg=black " User-defined types: struct, union, enum -hi Typedef cterm=none ctermfg=darkgreen ctermbg=black " typedef - -hi Special cterm=none ctermfg=magenta ctermbg=black " Special symbols -hi SpecialChar cterm=none ctermfg=magenta ctermbg=black " Special characters in a constant -hi Delimiter cterm=none ctermfg=magenta ctermbg=black " Character that is highlighted -hi SpecialComment cterm=none ctermfg=magenta ctermbg=black " Special things inside a comment -hi Debug cterm=none ctermfg=magenta ctermbg=black " Debugging statements. - -hi Underlined cterm=underline ctermfg=magenta ctermbg=black " Underlined stuff (HTML links) - -hi Error cterm=none ctermfg=red ctermbg=black " Erroneous content - -hi Todo cterm=bold ctermfg=red ctermbg=black " TODO, FIXME, XXX comments. +" Set the color scheme to desert. +colorscheme desert + +" Unmap the arrow keys to prevent bad habits. +noremap "" +noremap! +noremap "" +noremap! +noremap "" +noremap! +noremap "" +noremap! + +" Automatically reload the .vimrc when changes are made to it +au! BufWritePost .vimrc source %