" ============================================================================== " vimrc file for niblock :: Use `:so %` to re-source after changes " ============================================================================== " ============================================================================== " General Settings " ============================================================================== set nocompatible " Be IMproved (https://goo.gl/2RiJoo) syntax on " Syntax hilighting filetype plugin indent on " Recognize filetype, indent, plugin files set encoding=utf-8 " Character encoding set autoread " Auto-reload files changed outside Vim set autochdir " Auto-change to local file directory set undofile " Enable persistent undo set showcmd " Shows you which commands you're typing set number " Enable line numbers set scrolloff=5 " 5 lines of scroll buffer space set autoindent " Enable auto-indentation set expandtab " Use spaces instead of tab characters set tabstop=4 " How many spaces a tab is set shiftwidth=4 " How many spaces to shift set softtabstop=4 " How many spaces to use when editing set textwidth=80 " How long a line is set winwidth=80 " Minimum width of a window set wrap " Wrap text set foldmethod=syntax " Enable folding on a syntax level set wildmenu " Enable wildmenu set wildmode:longest:full,full " Configure wildmenu set ignorecase smartcase " Search: ignore case, unless case matters set incsearch " Zoom to search results as I type set hlsearch " Hilight search results augroup ruby_settings " Settings for Ruby and Ruby-like langs autocmd! autocmd FileType ruby,eruby,yaml set sw=2 sts=2 augroup END augroup spellcheckr " Spelling, for some files... autocmd! autocmd BufNewFile,BufRead *.md,*.rdoc,*.txt,*.wiki setlocal spell augroup END " Some netrw configuration " let g:netrw_liststyle=3 " let g:netrw_browse_split=4 " let g:netrw_winsize=25 " ============================================================================== " Mappings " ============================================================================== " Map Leader key let mapleader = "," " Make moving up/down work on wrapped lines of text nnoremap j gj nnoremap k gk nnoremap ^ g^ nnoremap $ g$ " Move between splits with CTRL+h/j/k/l nnoremap l nnoremap k nnoremap j nnoremap h " Toggle fold with space, if we're in a fold, otherwise just space nnoremap @=(foldlevel('.')?'za':"\") vnoremap zf " Allow saving of files as sudo when I forgot to start vim using sudo. cmap w!! w !sudo tee > /dev/null % " Remap ESC in insert mode inoremap jk " Remove Trailing Whitespaace nnoremap rtw :%s/\s\+$//e " Easy mapping for Startify nnoremap s :Startify " Open help topics in a full new tab command! -nargs=1 -complete=help H :tabnew | :set buftype=help | :h " Show buffer list and prompt to choose one nnoremap b :ls:b " ============================================================================== " Plugins " ============================================================================== if filereadable(expand("~/.vimrc-plugins")) source ~/.vimrc-plugins endif