" Don't try to be vi compatible set nocompatible " Helps force plugins to load correctly when it is turned back on below filetype off " TODO: Load plugins here (pathogen or vundle) " Turn on syntax highlighting syntax on " For plugins to load correctly filetype plugin indent on " TODO: Pick a leader key let mapleader = "," let g:mapleader = "," " Security set modelines=0 " Show line numbers set number " Show file stats set ruler " Blink cursor on error instead of beeping (grr) " set visualbell " Encoding set encoding=utf-8 " Whitespace set wrap "Wrap lines set ai "Auto indent set si "Smart indent " set textwidth=79 set formatoptions=tcqrn1 set tabstop=2 set shiftwidth=2 set softtabstop=2 set expandtab set noshiftround " Cursor motion set scrolloff=3 set backspace=indent,eol,start set matchpairs+=<:> " use % to jump between pairs runtime! macros/matchit.vim " Move up/down editor lines nnoremap j gj nnoremap k gk " Allow hidden buffers set hidden " Rendering set ttyfast " Status bar set laststatus=2 " Last line set showmode set showcmd " Searching nnoremap / /\v vnoremap / /\v set hlsearch set incsearch set ignorecase set smartcase set showmatch map :let @/='' " clear search " Remap help key. inoremap :set invfullscreena nnoremap :set invfullscreen vnoremap :set invfullscreen " Textmate holdouts " Formatting map q gqip " Visualize tabs and newlines set listchars=tab:▸\ ,eol:¬ " Uncomment this to enable by default: " set list " To enable by default " Or use your leader key + l to toggle on/off map l :set list! " Toggle tabs and EOL " Color scheme (terminal) " set t_Co=256 " set background=dark " let g:solarized_termcolors=256 " let g:solarized_termtrans=1 " put https://raw.github.com/altercation/vim-colors-solarized/master/colors/solarized.vim " in ~/.vim/colors/ and uncomment: " colorscheme solarized " Fast saving nmap w :w! " :W sudo saves the file " (usefull for handling the permission-denied error) command W w !sudo tee % > /dev/null " Use Unix as the standard file type set ffs=unix,dos,mac " Smart way to move between windows map j map k map h map l " Close the current buffer map bd :bd map bn :bn map bp :bp " Close all the buffers map ba :bufdo bd " Useful mappings for managing tabs map tn :tabnew map to :tabonly map tc :tabclose map tm :tabmove map t :tabnext " Let 'tl' toggle between this and the last accessed tab let g:lasttab = 1 nmap tl :exe "tabn ".g:lasttab au TabLeave * let g:lasttab = tabpagenr() " Opens a new tab with the current buffer's path " Super useful when editing files in the same directory map te :tabedit =expand("%:p:h")/ " Switch CWD to the directory of the open buffer map cd :cd %:p:h:pwd " Specify the behavior when switching between buffers try set switchbuf=useopen,usetab,newtab set stal=2 catch endtry " Remove the Windows ^M - when the encodings gets messed up noremap rm mmHmt:%s///ge'tzt'm " Toggle paste mode on and off map pp :setlocal paste! noremap % v% " set highlight current line :hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white :hi CursorColumn cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white augroup CursorLine au! au VimEnter,WinEnter,BufWinEnter * setlocal cursorline au WinLeave * setlocal nocursorline augroup END " statusline 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 python3 from powerline.vim import setup as powerline_setup python3 powerline_setup() python3 del powerline_setup