" =========== " VARIABLES " =========== set nocompatible "Disable bell set vb set t_vb= "Search in all of the project tree "set path+=** set wildmenu "set ttimeoutlen=10 "let g:airline#extensions#tabline#enabled = 1 "let g:airline#extensions#branch#enabled = 1 "let g:airline#extensions#whitespace#enabled = 1 "let g:airline_powerline_fonts = 1 "show line endings and tabs set list " Use todo#Complete as the omni complete function for todo files "au filetype todo setlocal omnifunc=todo#Complete " "" Auto complete projects "au filetype todo imap + + " "" Auto complete contexts "au filetype todo imap @ @ " leader let mapleader = "-" let leader = "-" let maplocalleader = "-" "execute pathogen#infect() syntax on filetype plugin indent on "Line number Highlight set nu highlight LineNr term=bold cterm=NONE ctermfg=DarkGrey ctermbg=NONE gui=NONE guifg=DarkGrey guibg=NONE set foldmethod=syntax " ============== " SHORTCUTS " ============== "Switch windows with keys "nmap :wincmd k "nmap :wincmd j "nmap :wincmd h "nmap :wincmd l nmap :vsplit:e . nmap :e . nnoremap @=(foldlevel('.')?'za':"\") vnoremap zf au filetype c* nmap :Make au filetype sh nmap :Runbuffer au filetype python nmap :Runbuffer "nmap :NERDTreeToggle "nmap :TlistToggle nmap :Newterm "Tab mgmt nmap :tabclose nmap :tabprevious nmap :tabnext nmap :tabnew:e . " =========== " COMMANDS " =========== command -bar InsertHeader call Fileheader() command -bar Suw :w !SUDO_ASKPASS="/usr/lib/ssh/ssh-askpass" sudo -A tee % " Command HEXMODE command -bar Hexmode call ToggleHex() "^] Jump to tag, ^t jump back "command! MakeTags !ctags -R . command -bar Newterm call Run_in_terminal("") command -bar Runbuffer call Run_in_terminal(expand("%:p")) command -bar Make call Run_in_terminal("make") " =========== " FUNCTIONS " =========== function Run_in_terminal(prog) tabnew execute "terminal " . a:prog startinsert endfunction " helper function to toggle hex mode function ToggleHex() " hex mode should be considered a read-only operation " save values for modified and read-only for restoration later, " and clear the read-only flag for now let l:modified=&mod let l:oldreadonly=&readonly let &readonly=0 let l:oldmodifiable=&modifiable let &modifiable=1 if !exists("b:editHex") || !b:editHex " save old options let b:oldft=&ft let b:oldbin=&bin " set new options setlocal binary " make sure it overrides any textwidth, etc. silent :e " this will reload the file without trickeries "(DOS line endings will be shown entirely ) let &ft="xxd" " set status let b:editHex=1 " switch to hex editor %!xxd else " restore old options let &ft=b:oldft if !b:oldbin setlocal nobinary endif " set status let b:editHex=0 " return to normal editing %!xxd -r endif " restore values for modified and read only state let &mod=l:modified let &readonly=l:oldreadonly let &modifiable=l:oldmodifiable endfunction