" key_mappings.vim - Custom Key Mappings " " Author: Silvio Rhatto " " References: " " * 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- simultaneously is equivalent to pressing ESC and then , " 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 notation (works also with ) nnoremap n :tabnew nnoremap t :NERDTree nnoremap T :T "nnoremap q :wqa "noremap c :wqa nnoremap f :wq nnoremap c :tabclose "noremap e :tabclose nnoremap b :NERDTreeFromBookmark nnoremap B :B nnoremap s :OpenSession "nnoremap m :q! " We're closing the buffer instead of just the window to avoid slowness due to too many opened buffers nnoremap m :bd nnoremap w :w nnoremap u :!up inoremap n :tabnew inoremap t :NERDTree inoremap t :T "inoremap q :wqa "noremap c :wqa inoremap f :wq inoremap c :tabclose "noremap e :tabclose "inoremap m :q! " We're closing the buffer instead of just the window to avoid slowness due to too many opened buffers inoremap m :bd inoremap w :w " Write, quit and close shortcuts using Alt-key combo notation "noremap n :tabnew "noremap t :OpenNERDTree "noremap q :wqa "noremap c :wqa "noremap f :wq "noremap c :tabclose "noremap e :tabclose "nnoremap b :NERDTreeFromBookmark "nnoremap B :B "nnoremap s :OpenSession "noremap m :q! "noremap w :w "noremap u :!up "inoremap n :tabnew "inoremap t :OpenNERDTree "inoremap q :wqa "inoremap c :wqa "inoremap f :wq "inoremap c :tabclose "inoremap e :tabclose "inoremap m :q! "inoremap w :w " Write, quit and close shortcuts using Ctrl-key combos " We're using these due to a conflict with wyrd(1) "nnoremap :tabnew "nnoremap :OpenNERDTree "nnoremap :wqa "nnoremap :wqa "nnoremap :wq "nnoremap :tabclose "nnoremap :tabclose "nnoremap :NERDTreeFromBookmark "nnoremap :B "nnoremap :OpenSession "nnoremap :q! "nnoremap :w "inoremap :tabnew "inoremap :OpenNERDTree "inoremap :wqa "inoremap :wqa "inoremap :wq "inoremap :tabclose "inoremap :tabclose "inoremap :q! "inoremap :w " Write, quit and close shortcuts noremap q :Wipeout:wqa "noremap f :wq "noremap t :tabclose "noremap m :q! "noremap w :w noremap h :tabnew " Tab navigation " See http://vim.wikia.com/wiki/Alternative_tab_navigation " http://comments.gmane.org/gmane.os.cygwin.xfree/16419 nnoremap [5^ nnoremap [6^ nnoremap :tabn nnoremap :tabp 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 noremap Oc :bnext " Window navigation "noremap "noremap "noremap "noremap "inoremap "inoremap "inoremap "inoremap "noremap  "noremap  "noremap  "noremap  "inoremap  "inoremap  "inoremap  "inoremap  nnoremap nnoremap nnoremap nnoremap inoremap inoremap inoremap inoremap " Recording nnoremap Q q " See http://superuser.com/questions/10588/how-to-make-cut-copy-paste-in-gvim-on-ubuntu-work-with-ctrlx-ctrlc-ctrlv "imap + "vmap c"+p vnoremap "+yi vnoremap "+c " For email: unfold and delete to your signature " See https://hroy.eu/tips/vim/email-delete-til-signature/ noremap ,dd zi:.;/^-- $/dO-- zi