summaryrefslogtreecommitdiffstats
path: root/.vimrc
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2018-07-17 13:50:25 +0200
committerTharre <tharre3@gmail.com>2018-07-17 14:02:39 +0200
commit1d23f35df30343eba3fe029002854f992fe1e4ba (patch)
tree81b4898370e99c85ae1e2ee9dda652b503834af8 /.vimrc
parent82c57bf41dd8397f1abb34c9a3d551e08a5d19aa (diff)
downloaddotfiles-1d23f35df30343eba3fe029002854f992fe1e4ba.tar.gz
dotfiles-1d23f35df30343eba3fe029002854f992fe1e4ba.tar.xz
dotfiles-1d23f35df30343eba3fe029002854f992fe1e4ba.zip
vim: major restructuring and improvements
Took many settings from tpope's vim-sensible[0] and the new vim defaults.vim[1] and incorporated them into my vimrc. See also [2] for an explanation of those common settings. Everything is now properly divided into sections now as well, and folding by markers (`{{{`) is enabled. [0] https://github.com/tpope/vim-sensible [1] https://github.com/vim/vim/blob/master/runtime/defaults.vim [2] https://github.com/sheerun/vimrc
Diffstat (limited to '.vimrc')
-rw-r--r--.vimrc171
1 files changed, 115 insertions, 56 deletions
diff --git a/.vimrc b/.vimrc
index 34564cb..e330506 100644
--- a/.vimrc
+++ b/.vimrc
@@ -1,78 +1,102 @@
-" Plugins for review:
-" 'msanders/snipmate.vim'
-" 'godlygeek/tabular'
-" 'plasticboy/vim-markdown'
-" Consider using sections like this:
-" Section Name {{{
-" set number "This will be folded
-" }}}
+" ~/.vimrc
runtime bundle/vim-pathogen/autoload/pathogen.vim
execute pathogen#infect()
execute pathogen#helptags()
+
+" options {{{
+" ===========
+
set nocompatible " Be iMproved
-let mapleader="," " set leader early as otherwise it wouldn't work
+let mapleader="," " set leader early to avoid problems
+
filetype plugin indent on
+syntax enable
-" ========== general settings ==========
set encoding=utf-8
set ff=unix
set number
+set relativenumber
set clipboard=unnamedplus
set showmatch " show matching brackets
+set hidden
+set autoread
set incsearch " Find as you type search
set hlsearch " Highlight search terms
set ignorecase " Case-insensitive searching.
set smartcase " But case-sensitive if expression contains a capital letter.
+set complete-=i
+set nrformats-=octal
+set ttimeout
+set ttimeoutlen=100
+
set history=10000 " remember more commands and search history
set undolevels=10000 " use many levels of undo
set nobackup
set noswapfile
+set viminfo^=! " always save upper case variables to viminfo file
+set autoindent
set tabstop=8
+set smarttab
+set backspace=indent,eol,start
set shiftwidth=8
set textwidth=80
set cc=81
-"set expandtab
-
-syntax enable
-set background=dark
-colorscheme distinguished
set list
-set listchars=tab:>-,trail:~
+set listchars=tab:>-,trail:~,extends:>,precedes:<,nbsp:+
set lazyredraw
set wildmenu
-
-set relativenumber
-
set wildignore+=*.a,*.o,*.class
set wildignore+=*.bmp,*.gif,*.ico,*.jpg,*.jpeg,*.png
set wildignore+=.DS_Store,.git,.hg,.svn
set wildignore+=*~,*.swp,*.tmp
+set scrolloff=1 " always show at least one line above/below the cursor.
+set sidescrolloff=5
+set display+=lastline
+
+set formatoptions+=j " delete comment character when joining commented lines
+
+if &sessionoptions =~# '\<options\>'
+ set sessionoptions-=options
+ set sessionoptions+=localoptions
+endif
+
+" Allow color schemes to do bright colors without forcing bold.
+if &t_Co == 8 && $TERM !~# '^linux\|^Eterm'
+ set t_Co=16
+endif
+
+if !has('gui_running') && &t_Co != 256
+ colorscheme delek
+else
+ colorscheme distinguished
+endif
+
+" Load matchit.vim, but only if the user hasn't installed a newer version.
+if !exists('g:loaded_matchit') && findfile('plugin/matchit.vim', &rtp) ==# ''
+ runtime! macros/matchit.vim
+endif
+
+" }}}
+" general mappings {{{
+" ====================
+" Plugin-specific mappings can be found under plugin settings->mappings
+
+inoremap <C-U> <C-G>u<C-U>
+
" jk is escape
inoremap jk <esc>
-augroup reload_vimrc " {
- autocmd!
- autocmd BufWritePost $MYVIMRC source $MYVIMRC
-augroup END " }
-
" switch buffers with space!
nnoremap <space> :call SwitchBuffer()<CR>
-function! SwitchBuffer()
- exe "ls"
- let c = nr2char(getchar())
- exe "b " . c
- redraw
-endfunction
-
map <silent> <leader>1 :diffget LO<CR>:diffupdate<CR>
map <silent> <leader>2 :diffget BA<CR>:diffupdate<CR>
map <silent> <leader>3 :diffget RE<CR>:diffupdate<CR>
@@ -90,30 +114,44 @@ cmap w!! w !sudo tee % >/dev/null
" turn off search highlight
nnoremap <leader><space> :nohlsearch<CR>
-" ========== file specific settings ==========
+" }}}
+" autocommands {{{
+" ================
+
+" filetype specific {{{
+
" Markdown
autocmd BufRead,BufNew *.md set filetype=markdown
" java
-au BufNewFile,BufRead *.java set tabstop=4 softtabstop=4 shiftwidth=4 smarttab autoindent cc=121
+au BufNewFile,BufRead *.java set tabstop=4 softtabstop=4 shiftwidth=4 cc=121
" PKGBUILD
autocmd BufRead,BufNew PKGBUILD set filetype=sh
-" ========== plugin settings ==========
-" airline
-set laststatus=2
-let g:airline_theme = 'powerlineish'
-let g:airline#extensions#tabline#enabled = 1
-let g:airline#extensions#tabline#fnamemod = ':t'
-" only enable trailing whitespace checking
-let g:airline#extensions#whitespace#checks = [ 'trailing' ]
-let g:airline#extensions#wordcount#enabled = 0 " extremely slow on bigger files
+" }}}
-" ALE
-let g:ale_linters = {'text': ['proselint', 'vale']}
-nmap <silent> <C-k> <Plug>(ale_previous_wrap)
-nmap <silent> <C-j> <Plug>(ale_next_wrap)
+augroup reload_vimrc
+ autocmd!
+ autocmd BufWritePost $MYVIMRC source $MYVIMRC
+augroup END
+
+" }}}
+" functions {{{
+" =============
+
+function! SwitchBuffer()
+ exe "ls"
+ let c = nr2char(getchar())
+ exe "b " . c
+ redraw
+endfunction
+
+" }}}
+" plugin settings {{{
+" ===================
+
+" mappings {{{
" Start interactive EasyAlign in visual mode (e.g. vip<Enter>)
vmap <Enter> <Plug>(EasyAlign)
@@ -124,29 +162,50 @@ nmap ga <Plug>(EasyAlign)
" toggle gundo
nnoremap <leader>u :GundoToggle<CR>
-" ctrlp
-let g:ctrlp_max_files = 1000000
-let g:ctrlp_cmd = 'CtrlPMixed'
-
-" supertab
-let g:SuperTabDefaultCompletionType = "context"
-
" javacomplete2
autocmd FileType java setlocal omnifunc=javacomplete#Complete
nmap <F4> <Plug>(JavaComplete-Imports-AddSmart)
nmap <F6> <Plug>(JavaComplete-Imports-AddMissing)
nmap <F7> <Plug>(JavaComplete-Imports-RemoveUnused)
-
" Automatically import
nmap <leader>ai <Plug>(JavaComplete-Imports-AddMissing)
-" markdown
-let g:vim_markdown_math = 1
+" }}}
+
+" airline {{{
+set laststatus=2
+let g:airline_theme = 'powerlineish'
+let g:airline#extensions#tabline#enabled = 1
+let g:airline#extensions#tabline#fnamemod = ':t'
+" only enable trailing whitespace checking
+let g:airline#extensions#whitespace#checks = [ 'trailing' ]
+let g:airline#extensions#wordcount#enabled = 0 " extremely slow on bigger files
+" }}}
+
+" ALE {{{
+nmap <silent> <C-k> <Plug>(ale_previous_wrap)
+nmap <silent> <C-j> <Plug>(ale_next_wrap)
" html
let g:ale_linters = {
\ 'html': ['htmlhint', 'tidy'],
+\ 'text': ['proselint', 'vale'],
\}
+" }}}
+
+" ctrlp
+let g:ctrlp_max_files = 1000000
+let g:ctrlp_cmd = 'CtrlPMixed'
+
+" supertab
+let g:SuperTabDefaultCompletionType = "context"
+
+" markdown
+let g:vim_markdown_math = 1
" hexmode
let g:hexmode_patterns = '*.bin,*.exe,*.dat,*.rom'
+
+" }}}
+
+" vim:fdm=marker