diff options
Diffstat (limited to 'base/.vimrc')
-rw-r--r-- | base/.vimrc | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/base/.vimrc b/base/.vimrc new file mode 100644 index 0000000..ebdcd21 --- /dev/null +++ b/base/.vimrc @@ -0,0 +1,143 @@ +set nocompatible + +set modelines=0 " for security + +set encoding=utf-8 + +set mouse="" + +set backspace=indent,eol,start + +au FocusLost * :wa + +" Leader ====---- +nnoremap ,, , +let mapleader="," +nnoremap <leader>; ; +nnoremap ; : + +" Highlighting ====---- +syntax on +filetype plugin indent on + +set t_Co=256 " enable 256-color mode. +if &t_Co >= 256 || has("gui_running") + "colorscheme mustang + "colorscheme desert " set colorscheme +endif +if &t_Co > 2 || has("gui_running") + " switch syntax highlighting on, when the terminal has colors + syntax on +endif + +" Indentation ====---- +set shiftwidth=2 +set tabstop=2 +set expandtab +set shiftround " use multiple of shiftwidth with '<' and '>' +set autoindent +set copyindent " copy the previous line's indentation + +" Search ====---- +set incsearch +set hlsearch +set wrapscan +set ignorecase " ignore case when searching +set smartcase " ignore case if search pattern is all lowercase, + " case-sensitive otherwise + +nnoremap <leader><space> :noh<cr> + +" Case insensitive +nnoremap * /\<<C-R>=expand('<cword>')<CR>\><CR> +nnoremap # ?\<<C-R>=expand('<cword>')<CR>\><CR> + +set showmatch +nnoremap <tab> % +vnoremap <tab> % + +" Screen ====---- +"set nowrap +set wrap +"set textwidth=79 +"set formatoptions=tqrn1 +set colorcolumn=85 +set ruler +"set number " always show line numbers +set relativenumber +set laststatus=2 +set cursorline +"set showmode +set showcmd +set title " change the terminal's title +set scrolloff=3 + +set visualbell " don't beep +set noerrorbells " don't beep + +set list +set listchars=tab:>.,trail:.,extends:#,nbsp:. +"autocmd filetype html,xml set listchars-=tab:>. + +set wildmenu +set wildmode=longest:full,full +set wildignore=*.swp,*.bak,*.pyc,*.class + +set ttyfast + +" Stop using arrow keys ====---- +nnoremap <up> <nop> +nnoremap <down> <nop> +nnoremap <left> <nop> +nnoremap <right> <nop> +inoremap <up> <nop> +inoremap <down> <nop> +inoremap <left> <nop> +inoremap <right> <nop> + +" nnoremap j gj +" nnoremap k gk + +" Splits ====---- +nnoremap <leader>w <C-w>v<C-w>l split +nnoremap <C-h> <C-w>h +nnoremap <C-j> <C-w>j +nnoremap <C-k> <C-w>k +nnoremap <C-l> <C-w>l + +" History ====---- +set history=1000 " remember more commands and search history +set undolevels=1000 " use many muchos levels of undo + +if !isdirectory($HOME."/.vim") + call mkdir($HOME."/.vim", "", 0770) +endif +if !isdirectory($HOME."/.vim/undo-dir") + call mkdir($HOME."/.vim/undo-dir", "", 0700) +endif +set undodir=~/.vim/undo-dir +set undofile +" !!!! ADD THIS TO CRONTAB +" 43 0 * * 3 find /home/adam/.vim/undo-dir -type f -mtime +90 -delete + +set nobackup +set noswapfile " Note: swap helps large files. + +" Custom mappings ====---- + +" Quickly edit/reload the vimrc file +nnoremap <silent> <leader>ev :e $MYVIMRC<CR> +nnoremap <silent> <leader>sv :so $MYVIMRC<CR> + +set pastetoggle=<F2> + +nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR> " strip trailing whitespace +nnoremap <leader>ft Vatzf " fold tag +nnoremap <leader>S ?{<CR>jV/^\s*\}?$<CR>k:sort<CR>:noh<CR> " sort CSS +nnoremap <leader>q gqip " re-hardwrap +nnoremap <leader>v V`] " select pasted + +vnoremap Q gq +nnoremap Q gqap + +cnoremap w!! w !sudo tee % >/dev/null |