colorscheme desert set encoding=utf8 set noerrorbells let mapleader = "\\" " map leader to comma syntax enable set tabstop=4 " number of visual spaces per TAB set softtabstop=4 " number of spaces in tab when editing set expandtab " tabs are spaces set number " show line numbers set relativenumber " show relative line numbers set showcmd " show command in bottom bar set cursorline " highlight current line filetype indent on " load filetype-specific indent files set wildmenu " visual autocomplete for command menu set lazyredraw " redraw only when we need to. set showmatch " highlight matching [{()}] set ignorecase set smartcase set incsearch " search as characters are entered set hlsearch " highlight matches " turn off search highlight nnoremap :nohlsearch set foldenable " enable folding set foldlevelstart=10 " open most folds by default set foldnestmax=10 " 10 nested fold max " space open/closes folds nnoremap za set foldmethod=indent " fold based on indent level " switching over buffers map gn :bn map gp :bp map gd :bd " move vertically by visual line nnoremap j gj nnoremap k gk " move to beginning/end of line nnoremap B ^ nnoremap E $ " $/^ doesn't do anything nnoremap $ nnoremap ^ " highlight last inserted text nnoremap gV `[v`] " using tabs map j map k map h map l " toggle between number and relativenumber function! ToggleNumber() if(&relativenumber == 1) set norelativenumber set number else set relativenumber endif endfunc " strips trailing whitespace at the end of files. this " is called on buffer write in the autogroup above. function! StripTrailingWhitespaces() " save last search & cursor position let _s=@/ let l = line(".") let c = col(".") %s/\s\+$//e let @/=_s call cursor(l, c) endfunction augroup configgroup autocmd! autocmd VimEnter * highlight clear SignColumn autocmd BufWritePre *.php,*.py,*.js,*.txt,*.hs,*.java,*.md \:call StripTrailingWhitespaces() autocmd FileType java setlocal noexpandtab autocmd FileType java setlocal list autocmd FileType java setlocal listchars=tab:+\ ,eol:- autocmd FileType java setlocal formatprg=par\ -w80\ -T4 autocmd FileType php setlocal expandtab autocmd FileType php setlocal list autocmd FileType php setlocal listchars=tab:+\ ,eol:- autocmd FileType php setlocal formatprg=par\ -w80\ -T4 autocmd FileType ruby setlocal tabstop=2 autocmd FileType ruby setlocal shiftwidth=2 autocmd FileType ruby setlocal softtabstop=2 autocmd FileType ruby setlocal commentstring=#\ %s autocmd FileType python setlocal commentstring=#\ %s autocmd BufEnter *.cls setlocal filetype=java autocmd BufEnter *.zsh-theme setlocal filetype=zsh autocmd BufEnter Makefile setlocal noexpandtab autocmd BufEnter *.sh setlocal tabstop=2 autocmd BufEnter *.sh setlocal shiftwidth=2 autocmd BufEnter *.sh setlocal softtabstop=2 augroup END set backup set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp set backupskip=/tmp/*,/private/tmp/* set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp set writebackup set statusline= " clear the statusline for when vimrc is reloaded set statusline+=%-3.3n\ " buffer number set statusline+=%f\ " file name set statusline+=%h%m%r%w " flags set statusline+=[%{strlen(&ft)?&ft:'none'}, " filetype set statusline+=%{strlen(&fenc)?&fenc:&enc}, " encoding set statusline+=%{&fileformat}] " file format set statusline+=%= " right align set statusline+=%{synIDattr(synID(line('.'),col('.'),1),'name')}\ " highlight set statusline+=%b,0x%-8B\ " current char set statusline+=%-14.(%l,%c%V%)\ %<%P " offset set laststatus=2 " Plugins will be downloaded under the specified directory. call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim_runtime/plugged') " Declare the list of plugins. " ':PlugInstall' to install plugins Plug 'spolu/dwm.vim' Plug 'preservim/nerdtree' Plug 'mg979/vim-visual-multi', {'branch': 'master'} Plug 'vim-airline/vim-airline' Plug 'jeetsukumaran/vim-buffergator' Plug 'rhysd/git-messenger.vim' Plug 'maxbrunsfeld/vim-yankstack' " List ends here. Plugins become visible to Vim after this call. call plug#end() " NERDTree plugin nmap :NERDTree nnoremap n :NERDTreeFocus " nnoremap :NERDTree nnoremap :NERDTreeToggle nnoremap :NERDTreeFind " DWM plugin nmap DWMNew " Splitted window size changing nnoremap 5< nnoremap 5> nnoremap 1+ nnoremap 1- " useful combination noremap r :source ~/.vimrc