diff options
Diffstat (limited to 'vimrc.dot.link')
-rw-r--r-- | vimrc.dot.link | 284 |
1 files changed, 16 insertions, 268 deletions
diff --git a/vimrc.dot.link b/vimrc.dot.link index 9c19dfd..5c5a1fd 100644 --- a/vimrc.dot.link +++ b/vimrc.dot.link @@ -19,49 +19,13 @@ set laststatus=2 set shortmess+=I set ignorecase set smartcase -filetype indent off let mapleader="-" -" Window title handling -set title -set titleold="terminal" -set titlestring=vim:\ %F - -" See http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file -"set autochdir -augroup changedir - autocmd! - autocmd BufEnter * silent! lcd %:p:h -augroup END - -" Thanks to http://stackoverflow.com/questions/1673649/vimrc-action-onclose -function! ResetTitle(title) - " disable vim's ability to set the title - exec "set title t_ts='' t_fs=''" - - " and restore it - "exec ":!echo -e '\033kbash\033\\'\<CR>" - exec ":!xtitle -q " a:title -endfunction - -" Avoid autocmd spam by using augroups and reseting autocmd -" https://stackoverflow.com/questions/19030290/syntax-highlighting-causes-terrible-lag-in-vim -augroup vimleave - autocmd! - au VimLeave *mutt/* silent call ResetTitle("mutt") - au VimLeave *remind/* silent call ResetTitle("calendar") -augroup END - -" Command mode completion -" See https://stackoverflow.com/questions/526858/how-do-i-make-vim-do-normal-bash-like-tab-completion-for-file-names -"set wildmode=longest,list -set wildmode=longest,list,full -set wildmenu - " Syntax highlight syntax on " Indenting +filetype indent off filetype plugin indent on " Folding @@ -78,6 +42,19 @@ filetype plugin indent on "let vimsyn_folding='af' "let xml_syntax_folding=1 +" See http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file +"set autochdir +augroup changedir + autocmd! + autocmd BufEnter * silent! lcd %:p:h +augroup END + +" Command mode completion +" See https://stackoverflow.com/questions/526858/how-do-i-make-vim-do-normal-bash-like-tab-completion-for-file-names +"set wildmode=longest,list +set wildmode=longest,list,full +set wildmenu + " PHP let php_sql_query=1 @@ -93,235 +70,6 @@ let g:syntastic_mode_map={ 'mode': 'passive', \ 'active_filetypes': [], \ 'passive_filetypes': [] } -" -" Key Mappings -" https://stackoverflow.com/questions/7501092/can-i-map-alt-key-in-vim -" https://stackoverflow.com/questions/45244245/why-alt-and-esc-keys-behave-differently-in-emacs -" http://vim.wikia.com/wiki/Mapping_fast_keycodes_in_terminal_Vim -" https://github.com/vim-utils/vim-alt-mappings -" https://github.com/drmikehenry/vim-fixkey -" -" Notes: -" -" Keys were chosen not to conflict of to be close to window manager combos -" Like Awesome has a combo (Meta-q) which could be confused with a VIM quit -" mapping (Alt-q). -" -" Other keys were chosen not to conflict with existing VIM functionality -" like Alt-t (OpenNerdTree). -" -" While we could try to map other meta keys like Menu or AltGr, this -" is currently not supported by VIM and could even cause more confusion with -" other applications. -" -" For the quit combo, an approach like listening to VimLeave would work if -" this event would be triggered by the window manager when killing VIM window, -" but this does not seem to be the case. Anyway there's interesting discussion at -" https://stackoverflow.com/questions/5142099/how-to-auto-save-vim-session-on-quit-and-auto-reload-on-start-including-split-wi -" -" Pressing Alt-<key> simultaneously is equivalent to pressing ESC and then <key>, -" so the big difference between the ESC combos and Alt combos are mainly of -" config file notation. -" -" Typing ESC keys combos have the advantage over Alt combos as they are -" difficult to be mistaken for the Meta key, but thats mainly a user and not -" config convention since they're almost the same in VIM. -" -" In the other hand, there's an disadvantage of using ESC simultaneously for -" going to normal mode and doing other stuff, with can be in ambiguous. -" -" The sollution is to decrease ESC timeout. -" -" See https://www.johnhawthorn.com/2012/09/vi-escape-delays/ -"set timeoutlen=1000 ttimeoutlen=0 -set timeoutlen=0 ttimeoutlen=0 - -" Write, quit and close shortcuts using Esc <key> notation (works also with <Alt-key>) -nnoremap <ESC>n :tabnew<CR> -nnoremap <ESC>t :NERDTree -nnoremap <ESC>T :T -"nnoremap <ESC>q :wqa<CR> -"noremap <ESC>c :wqa<CR> -nnoremap <ESC>f :wq<CR> -nnoremap <ESC>c :tabclose<CR> -"noremap <ESC>e :tabclose<CR> -nnoremap <ESC>b :NERDTreeFromBookmark -nnoremap <ESC>B :B -nnoremap <ESC>s :OpenSession -"nnoremap <ESC>m :q!<CR> -" We're closing the buffer instead of just the window to avoid slowness due to too many opened buffers -nnoremap <ESC>m :bd<CR> -nnoremap <ESC>w :w<CR> -nnoremap <ESC>u :!up<CR> -inoremap <ESC>n <ESC>:tabnew<CR> -inoremap <ESC>t <ESC>:NERDTree -inoremap <ESC>t <ESC>:T -"inoremap <ESC>q <ESC>:wqa<CR> -"noremap <ESC>c <ESC>:wqa<CR> -inoremap <ESC>f <ESC>:wq<CR> -inoremap <ESC>c <ESC>:tabclose<CR> -"noremap <ESC>e <ESC>:tabclose<CR> -"inoremap <ESC>m <ESC>:q!<CR> -" We're closing the buffer instead of just the window to avoid slowness due to too many opened buffers -inoremap <ESC>m <ESC>:bd<CR> -inoremap <ESC>w <ESC>:w<CR> - -" Write, quit and close shortcuts using Alt-key combo notation -"noremap n :tabnew<CR> -"noremap t :OpenNERDTree<CR> -"noremap q :wqa<CR> -"noremap c :wqa<CR> -"noremap f :wq<CR> -"noremap c :tabclose<CR> -"noremap e :tabclose<CR> -"nnoremap b :NERDTreeFromBookmark -"nnoremap B :B -"nnoremap s :OpenSession -"noremap m :q!<CR> -"noremap w :w<CR> -"noremap u :!up<CR> -"inoremap n <ESC>:tabnew<CR> -"inoremap t <ESC>:OpenNERDTree<CR> -"inoremap q <ESC>:wqa<CR> -"inoremap c <ESC>:wqa<CR> -"inoremap f <ESC>:wq<CR> -"inoremap c <ESC>:tabclose<CR> -"inoremap e <ESC>:tabclose<CR> -"inoremap m <ESC>:q!<CR> -"inoremap w <ESC>:w<CR> - -" Write, quit and close shortcuts using Ctrl-key combos -" We're using these due to a conflict with wyrd(1) -"nnoremap <C-n> :tabnew<CR> -"nnoremap <C-t> :OpenNERDTree<CR> -"nnoremap <C-q> :wqa<CR> -"nnoremap <C-c> :wqa<CR> -"nnoremap <C-f> :wq<CR> -"nnoremap <C-c> :tabclose<CR> -"nnoremap <C-e> :tabclose<CR> -"nnoremap <C-b> :NERDTreeFromBookmark -"nnoremap <C-B> :B -"nnoremap <C-s> :OpenSession -"nnoremap <C-m> :q!<CR> -"nnoremap <C-w> :w<CR> -"inoremap <C-n> <ESC>:tabnew<CR> -"inoremap <C-t> <ESC>:OpenNERDTree<CR> -"inoremap <C-q> <ESC>:wqa<CR> -"inoremap <C-c> <ESC>:wqa<CR> -"inoremap <C-f> <ESC>:wq<CR> -"inoremap <C-c> <ESC>:tabclose<CR> -"inoremap <C-e> <ESC>:tabclose<CR> -"inoremap <C-m> <ESC>:q!<CR> -"inoremap <C-w> <ESC>:w<CR> - -" Write, quit and close shortcuts -noremap q :Wipeout<CR>:wqa <CR> -"noremap f :wq <CR> -"noremap t :tabclose <CR> -"noremap m :q! <CR> -"noremap w :w <CR> -noremap h :tabnew<CR> - -" Tab navigation -" See http://vim.wikia.com/wiki/Alternative_tab_navigation -" http://comments.gmane.org/gmane.os.cygwin.xfree/16419 -nnoremap <ESC>[5^ <C-PageUp> -nnoremap <ESC>[6^ <C-PageDown> -nnoremap <C-PageDown> :tabn<CR> -nnoremap <C-PageUp> :tabp<CR> -nnoremap 1 1gt -nnoremap 2 2gt -nnoremap 3 3gt -nnoremap 4 4gt -nnoremap 5 5gt -nnoremap 6 6gt -nnoremap 7 7gt -nnoremap 8 8gt -nnoremap 9 9gt -nnoremap 0 10gt - -" Buffer navigation: Alt-{Up,Down} -noremap Od :bprevious<CR> -noremap Oc :bnext<CR> - -" Window navigation -"noremap <C-Left> <C-w><Left> -"noremap <C-Right> <C-w><Right> -"noremap <C-Down> <C-w><Down> -"noremap <C-Up> <C-w><Up> -"inoremap <C-Left> <ESC><C-w><Left> -"inoremap <C-Right> <ESC><C-w><Right> -"inoremap <C-Down> <ESC><C-w><Down> -"inoremap <C-Up> <ESC><C-w><Up> -"noremap <Left> <C-w><Left> -"noremap <Right> <C-w><Right> -"noremap <Down> <C-w><Down> -"noremap <Up> <C-w><Up> -"inoremap <Left> <ESC><C-w><Left> -"inoremap <Right> <ESC><C-w><Right> -"inoremap <Down> <ESC><C-w><Down> -"inoremap <Up> <ESC><C-w><Up> -nnoremap <ESC><Left> <C-w><Left> -nnoremap <ESC><Right> <C-w><Right> -nnoremap <ESC><Down> <C-w><Down> -nnoremap <ESC><Up> <C-w><Up> -inoremap <ESC><Left> <ESC><C-w><Left> -inoremap <ESC><Right> <ESC><C-w><Right> -inoremap <ESC><Down> <ESC><C-w><Down> -inoremap <ESC><Up> <ESC><C-w><Up> - -" Recording -nnoremap Q q - -" NERDTree section -" Thanks to http://stackoverflow.com/questions/1447334/how-do-you-add-nerdtree-to-your-vimrc - -let NERDTreeMinimalUI=1 - -augroup nerdtree - autocmd! - " Open NERDTree when vim starts - "autocmd VimEnter * NERDTree - "autocmd VimEnter * wincmd p - - autocmd FileType nerdtree set relativenumber - autocmd FileType taglist set relativenumber -augroup END - -function TabNew(address) - execute ":tabnew" - execute ":NERDTree " a:address -endfunction - -function TabNewBookmark(bookmark) - execute ":tabnew" - execute ":NERDTreeFromBookmark " a:bookmark -endfunction - -function OpenNERDTree() - execute ":NERDTree" -endfunction - -" Shortcuts -cnoreabbrev t NERDTree -cnoreabbrev b NERDTreeFromBookmark -cnoreabbrev s OpenSession -cnoreabbrev sload OpenSession -cnoreabbrev ssave SaveSession -command -nargs=1 -complete=dir T :call TabNew(<f-args>) -command -nargs=1 -complete=customlist,nerdtree#completeBookmarks B :call TabNewBookmark(<f-args>) -command -nargs=0 OpenNERDTree :call OpenNERDTree() - -" See http://superuser.com/questions/10588/how-to-make-cut-copy-paste-in-gvim-on-ubuntu-work-with-ctrlx-ctrlc-ctrlv -"imap <C-v> <C-r><C-o>+ -"vmap <C-v> c<ESC>"+p -vnoremap <C-c> "+yi -vnoremap <C-x> "+c - -" For email: unfold and delete to your signature -" See https://hroy.eu/tips/vim/email-delete-til-signature/ -noremap ,dd zi:.;/^-- $/d<CR>O-- <UP><End><CR><CR><UP><CR><C-O>zi - " Color scheme "colorscheme github "colorscheme solarized @@ -351,9 +99,9 @@ endif "python powerline_setup() "python del powerline_setup -set laststatus=2 " Always display the statusline in all windows +set laststatus=2 " Always display the statusline in all windows set showtabline=2 " Always display the tabline, even if there is only one tab -set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the statusline) +set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the statusline) " See " http://vim.wikia.com/wiki/Have_Vim_check_automatically_if_the_file_has_changed_externally |