darkcloud-nvimconfig/vim/config/keyboard.vim

650 lines
26 KiB
VimL
Raw Permalink Normal View History

2024-03-01 16:28:35 -05:00
"============================================================="
" "
" Darkcloud Neovim Config: keyboard settings "
" "
" By: Kevin MacMartin (prurigro@gmail.com) "
" Website: https://github.com/prurigro/darkcloud-nvimconfig "
" "
" License: MIT "
" "
"============================================================="
"
2018-03-14 11:38:51 -04:00
"Mappings:
" (mouse)
" <Ctrl-ScrollUp> | (A) -> scroll left
" <Alt-ScrollUp> | (A) -> scroll left
" <Shift-ScrollUp> | (A) -> scroll left
" <Ctrl-ScrollDown> | (A) -> scroll right
" <Alt-ScrollDown> | (A) -> scroll right
" <Shift-ScrollDown> | (A) -> scroll right
"
" <MiddleClick> | (A) -> selects from the cursor
" <Ctrl-LeftClick> | (A) -> selects from the cursor
" <Alt-LeftClick> | (A) -> select the line being clicked
" <Ctrl-Alt-LeftClick> | (A) -> select the paragraph being clicked
"
" <Ctrl-RightClick> | (A) -> copy selection or character under cursor
" <Ctrl-MiddleClick> | (A) -> copy selection or character under cursor
"
" <Alt-RightClick> | (A) -> cut selection or character under cursor
" <Alt-MiddleClick> | (A) -> cut selection or character under cursor
"
" <Ctrl-Alt-RightClick> | (A) -> paste at the cursor (not mouse)
" <Ctrl-Alt-MiddleClick> | (A) -> paste at the cursor (not mouse)
"
" (terminal)
" <Esc> | (T) -> leave edit mode
"
" (tabs)
" <Ctrl-n> | (N) -> go to the next open tab
" <Ctrl-p> | (N) -> go to the previous open tab
" <Ctrl-t> | (N) -> open a new tab
"
" (split)
" <Ctrl-w>] | (N) -> split vertically
" <Ctrl-w>[ | (N) -> split horizontally
"
" (rotate)
" <Ctrl-w>{ | (N) -> rotate counter-clockwise
" <Ctrl-w>} | (N) -> rotate clockwise
"
" (display)
" <Backspace> | (N) -> reset window and clear search
" // | (N) -> reset window and clear search
" n | (N) -> center vertically on next search term
" N | (N) -> center vertically on last search term
" * | (N) -> center vertically on nth next search term
" # | (N) -> center vertically on nth last search term
"
" (toggles and features)
" <Leader>d | (N) -> VCS vimdiff in a new tab with signify
"
" ik | (N) -> add cursor character as a keyword
" iK | (N) -> remove cursor character as a keyword
"
" ` | (N) -> toggle the gutter
" ~ | (N) -> toggle folds
"
" <F1> | (A) -> toggle line wrapping
" <F2> | (A) -> toggle spell check
" <F3> | (A) -> toggle external-paste mode
" <F4> | (A) -> toggle syntax checking
"
2024-03-01 16:28:35 -05:00
" <F11> | (N) -> toggle git commit history
" <Leader>[ | (N) -> toggle git commit history
2024-03-06 02:08:39 -05:00
" <F12> | (N) -> toggle the vista sidebar
" <Leader>] | (N) -> toggle the vista sidebar
" <Leader><Leader> | (N) -> toggle the location list
"
" (spellcheck)
" ?+ | (N) -> add the selected word to the local dictionary
" ?? | (N) -> show spelling suggestions for selected word
" ?N | (N) -> go to the next spelling mistake
" ?P | (N) -> go to the previous spelling mistake
"
" (copy/paste and undo/redo)
" <Leader>p | (N) -> view the paste buffers and register contents
" P | (V) -> save selection to the buffer and paste over
" p | (V) -> preserve the buffer pasting over selected text
"
2024-03-01 16:28:35 -05:00
" (delete/cut operations that don't replace the paste buffer)
" <Leader>x | (N) -> delete the char(s) under and the cursor
" <Leader>x | (V) -> delete the currently selected text
" <Leader>X | (N) -> delete the char(s) before the cursor
" <Leader>X | (V) -> delete the currently selected lines
" <Leader>D | (N) -> delete from the cursor to EOL
" <Leader>D | (V) -> delete the currently selected lines
" <Leader>dw | (N) -> delete from the cursor to end of the word
" <Leader>dd | (N) -> delete current line
" <Leader>d | (V) -> delete selected text
"
2018-03-13 11:32:04 -04:00
" (fixing-and-formatting)
" <Leader>J | (N) -> split document into lines of tw or 80
" <Leader>J | (V) -> split selection into lines of tw or 80
" <Leader>f | (N) -> format document and return to cursor
" <Leader>f | (V) -> format the selection and return to cursor
2018-03-13 11:32:04 -04:00
" <Leader>F | (N) -> run available ale fixers on the document
" <Leader>t | (N) -> convert tabs into spaces
" <Leader>T | (N) -> convert spaces into tabs
" <Leader>w | (N) -> remove whitespace
" <Tab> | (V) -> indent all the lines currently selected
" <Tab> | (N) -> indent the current line
" <Shift-Tab> | (V) -> unindent all the lines currently selected
" <Shift-Tab> | (N) -> unindent the current line
" [<Space> | (N) -> insert a blank line above the current one
" ]<Space> | (N) -> insert a blank line below the current one
"
2021-09-17 15:24:17 -04:00
" (macros)
" ' | (N) -> run a macro
"
" (movement)
" = | (N) -> go to the first char on the next line
" _ | (N) -> go to the first char on the previous line
"
" <Ctrl-Up> | (N) -> move four lines up
" <Ctrl-Down> | (N) -> move four lines down
2024-10-16 22:02:17 -04:00
" <Ctrl-k> | (N) -> move four lines up
" <Ctrl-j> | (N) -> move four lines down
2024-10-16 21:42:08 -04:00
"
" <Ctrl-Right> | (N) -> move one word right
" <Ctrl-Left> | (N) -> move one word left
2024-10-16 22:02:17 -04:00
" <Ctrl-l> | (N) -> move one word right
" <Ctrl-h> | (N) -> move one word left
"
" <Alt-k> | (A) -> move the screen up
" <Alt-j> | (A) -> move the screen down
" <Alt-l> | (A) -> move the screen to the right
" <Alt-h> | (A) -> move the screen to the left
"
" <Shift-Up> | (N) -> move to the beginning of the document
" <Shift-Down> | (N) -> move to the end of the document
" <Shift-Right> | (N) -> move to the end of the line
" <Shift-Left> | (N) -> move to the beginning of the non-whitespace
"
" ]g | (N) -> next difference (vimdiff/signify)
" [g | (N) -> previous difference (vimdiff/signify)
" >> | (N) -> next difference (vimdiff/signify)
" << | (N) -> previous difference (vimdiff/signify)
"
" [[ | (N) -> jump to previous issue in the location list (qf.nvim)
" ]] | (N) -> jump to the next issue in the location list (qf.nvim)
"
" (selection)
" <Ctrl-a> | (N) -> select all text
" <Ctrl-a> | (V) -> select all text
"
" <Shift-Up> | (V) -> select all text above
" <Shift-Down> | (V) -> select all text below
" <Shift-Right> | (V) -> select all text to the right
" <Shift-Left> | (V) -> select all text to the left up to the indent
"
" <Ctrl-Up> | (V) -> select four lines up
" <Ctrl-Down> | (V) -> select four lines down
" <Ctrl-Right> | (V) -> select one word right
" <Ctrl-Left> | (V) -> select one word left
"
"File type Specific Mappings:
" (help)
" q | (A) -> close the dialog
"
" (error/location list)
" <Left> | (A) -> up
" <Right> | (A) -> down
" l | (A) -> k
" h | (A) -> j
" <LClick><LClick> | (A) -> select entry
" <Space> | (A) -> select entry but remain in qf sidebar
" q | (A) -> close the list
"
" (vimdiff)
" <Leader><> | (N) -> update differences
" <Leader>,. | (N) -> update differences
" <Leader>>< | (N) -> update differences
" <Leader>., | (N) -> update differences
" <Leader>> | (N) -> replace diff in other pane with current pane
" <Leader>. | (N) -> replace diff in other pane with current pane
2024-03-06 15:23:20 -05:00
" <Leader>< | (N) -> replace diff in current pane with other pane
" <Leader>, | (N) -> replace diff in current pane with other pane
"DISABLED DEFAULT MAPPING: UNSET SHORTCUTS {{{
"-unmapping tabbing from < and > for use with diff
"+these commands are replaced by tab and shift+tab
noremap > <Nop>
noremap < <Nop>
"-unmapping help from F1, Alt-F1 and Ctrl-F1
map <F1> <Nop>
map <A-F1> <Nop>
map <C-F1> <Nop>
"-unmap the suspend function
map <C-z> <Nop>
"-unmap ex mode
nnoremap Q <Nop>
"unmap shift+k opening help
nnoremap <S-k> <Nop>
"}}}
"MAPPINGS: GENERAL KEYBINDINGS AND REBINDING {{{
"MOUSE:{
"hold ctrl to scroll left/right instead of up/down
noremap <C-ScrollWheelUp> 4zh
nnoremap <C-ScrollWheelUp> 4zh
xnoremap <C-ScrollWheelUp> 4zh
snoremap <C-ScrollWheelUp> 4zh
vnoremap <C-ScrollWheelUp> 4zh
inoremap <C-ScrollWheelUp> <C-O>4zh
noremap <A-ScrollWheelUp> 4zh
nnoremap <A-ScrollWheelUp> 4zh
xnoremap <A-ScrollWheelUp> 4zh
snoremap <A-ScrollWheelUp> 4zh
vnoremap <A-ScrollWheelUp> 4zh
inoremap <A-ScrollWheelUp> <C-O>4zh
noremap <S-ScrollWheelUp> 4zh
nnoremap <S-ScrollWheelUp> 4zh
xnoremap <S-ScrollWheelUp> 4zh
snoremap <S-ScrollWheelUp> 4zh
vnoremap <S-ScrollWheelUp> 4zh
inoremap <S-ScrollWheelUp> <C-O>4zh
noremap <C-ScrollWheelDown> 4zl
nnoremap <C-ScrollWheelDown> 4zl
xnoremap <C-ScrollWheelDown> 4zl
snoremap <C-ScrollWheelDown> 4zl
vnoremap <C-ScrollWheelDown> 4zl
inoremap <C-ScrollWheelDown> <C-O>4zl
noremap <A-ScrollWheelDown> 4zl
nnoremap <A-ScrollWheelDown> 4zl
xnoremap <A-ScrollWheelDown> 4zl
snoremap <A-ScrollWheelDown> 4zl
vnoremap <A-ScrollWheelDown> 4zl
inoremap <A-ScrollWheelDown> <C-O>4zl
noremap <S-ScrollWheelDown> 4zl
nnoremap <S-ScrollWheelDown> 4zl
xnoremap <S-ScrollWheelDown> 4zl
snoremap <S-ScrollWheelDown> 4zl
vnoremap <S-ScrollWheelDown> 4zl
inoremap <S-ScrollWheelDown> <C-O>4zl
"middle & ctrl+left = select from cursor
nnoremap <MiddleMouse> <RightMouse>
xnoremap <MiddleMouse> <RightMouse>
snoremap <MiddleMouse> <RightMouse>
vnoremap <MiddleMouse> <RightMouse>
inoremap <MiddleMouse> <RightMouse>
nnoremap <C-LeftMouse> <RightMouse>
xnoremap <C-LeftMouse> <RightMouse>
snoremap <C-LeftMouse> <RightMouse>
vnoremap <C-LeftMouse> <RightMouse>
inoremap <C-LeftMouse> <RightMouse>
"alt+left = line
nnoremap <A-LeftMouse> <LeftMouse>V
xnoremap <A-LeftMouse> <RightMouse>$
snoremap <A-LeftMouse> <RightMouse>$
vnoremap <A-LeftMouse> <RightMouse>$
inoremap <A-LeftMouse> <Esc><LeftMouse>V
"ctrl+alt+left = select paragraph
nnoremap <C-A-LeftMouse> <LeftMouse>vip
xnoremap <C-A-LeftMouse> <RightMouse>ip$
snoremap <C-A-LeftMouse> <RightMouse>ip$
vnoremap <C-A-LeftMouse> <RightMouse>ip$
inoremap <C-A-LeftMouse> <Esc><LeftMouse>vip
"ctrl+(middle/right) = copy
nnoremap <C-RightMouse> <LeftMouse>Vy
xnoremap <C-RightMouse> y
snoremap <C-RightMouse> y
vnoremap <C-RightMouse> y
inoremap <C-RightMouse> <C-0>y
nnoremap <C-MiddleMouse> <LeftMouse>Vy
xnoremap <C-MiddleMouse> y
snoremap <C-MiddleMouse> y
vnoremap <C-MiddleMouse> y
inoremap <C-MiddleMouse> <C-0>y
"alt+(middle/right) = cut
nnoremap <A-RightMouse> x
xnoremap <A-RightMouse> x
snoremap <A-RightMouse> x
vnoremap <A-RightMouse> x
inoremap <A-RightMouse> <C-O>x
nnoremap <A-MiddleMouse> x
xnoremap <A-MiddleMouse> x
snoremap <A-MiddleMouse> x
vnoremap <A-MiddleMouse> x
inoremap <A-MiddleMouse> <C-O>x
"ctrl+alt+(middle/right) = paste
nnoremap <C-A-RightMouse> p
xnoremap <C-A-RightMouse> p
snoremap <C-A-RightMouse> p
vnoremap <C-A-RightMouse> p
inoremap <C-A-RightMouse> <C-O>p
nnoremap <C-A-MiddleMouse> p
xnoremap <C-A-MiddleMouse> p
snoremap <C-A-MiddleMouse> p
vnoremap <C-A-MiddleMouse> p
inoremap <C-A-MiddleMouse> <C-O>p
"}
"TERMINAL:{
tnoremap <Esc> <C-\><C-n>
"}
"TABS:{
nnoremap <silent><expr> <C-n> ':tabnext<CR>'
nnoremap <silent><expr> <C-p> ':tabprev<CR>'
nnoremap <silent><expr> <C-t> ':tabnew<CR>'
"}
"SPLIT:{
nmap <expr><silent> <C-w>] ':vs<CR>'
nmap <expr><silent> <C-w>[ ':sp<CR>:wincmd j<CR>'
"}
"ROTATE:{
nmap <expr><silent> <C-w>{ ':wincmd R<CR>'
nmap <expr><silent> <C-w>} ':wincmd r<CR>'
"}
"DISPLAY:{
"clear search and reset buffer
nnoremap <silent><expr> <BackSpace> ':noh<CR>:redraw!<CR>'
nnoremap <silent><expr> // ':noh<CR>:redraw!<CR>'
"keep the currently highlighted term in a search vertically centered
nnoremap <silent>n nzz
nnoremap <silent>N Nzz
nnoremap <silent>* *zz
nnoremap <silent># #zz
"}
"TOGGLES AND FEATURES:{
"VCS vimdiff in a new tab with signify
nnoremap <silent><expr> <Leader>d ':SignifyDiff<CR>'
"add/remove cursor character as a keyword
nmap <expr><silent> <Leader>k ':execute "setlocal iskeyword+=".getline(".")[col(".")-1]<CR>:echo "The character ".getline(".")[col(".")-1]." has been added to iskeyword"<CR>'
nmap <expr><silent> <Leader>K ':execute "setlocal iskeyword-=".getline(".")[col(".")-1]<CR>:echo "The character ".getline(".")[col(".")-1]." has been removed from iskeyword"<CR>'
"toggle the gutter
nnoremap <silent><expr> ` ':if (&number)<Bar>set nonumber<Bar>if exists("b:sy")<Bar>SignifyDisable<Bar>endif<Bar>else<Bar>set number<Bar>if exists("b:sy")<Bar>SignifyEnable<Bar>endif<Bar>endif<CR>:echo "gutter visibility toggled"<CR>'
"toggle the fold sidebar
function! FoldToggle()
if (&foldcolumn == 0)
set foldenable
set foldcolumn=1
normal zR
else
set nofoldenable
set foldcolumn=0
endif
endfunction
nnoremap <silent><expr> ~ ':call FoldToggle()<CR>'
"toggle line wrapping (and bottom bar if using the gui)
nnoremap <silent><expr> <F1> ':set wrap!<CR>:echo "line wrapping toggled"<CR>'
xnoremap <silent><expr> <F1> '<Esc>:set wrap!<CR>gv'
inoremap <silent><expr> <F1> '<C-O>:set wrap!<CR>'
"toggle show spelling errors
nnoremap <silent><expr> <F2> ':set spell!<CR>:if &spell =~ "0"<Bar>echo "spellcheck toggled off"<Bar>else<Bar>echo "spellcheck toggled on"<Bar>endif<CR>'
xnoremap <silent><expr> <F2> '<Esc>:set spell!<CR>gv'
inoremap <silent><expr> <F2> '<C-O>:set spell!<CR>'
"toggle external-paste mode
nnoremap <silent><expr> <F3> ':if &paste<Bar>set paste!<Bar>else<Bar>set paste<Bar>endif<CR>'
"toggle syntax checking
function! ToggleAle()
ALEToggle
if g:ale_enabled
set scl=yes
else
set scl=auto
endif
endfunction
nnoremap <silent><expr> <F4> ':call ToggleAle()<CR>'
xnoremap <silent><expr> <F4> '<Esc>:call ToggleAle()<CR>gv'
inoremap <silent><expr> <F4> '<C-O>:call ToggleAle()<CR>'
"view commit history and diffs
2024-03-01 16:28:35 -05:00
nnoremap <expr><silent> <F11> ':vs<CR>:0Gclog<CR>:wincmd b<CR>'
nnoremap <silent><expr> <Leader>[ ':vs<CR>:0Gclog<CR>:wincmd b<CR>'
2024-03-06 02:08:39 -05:00
"bindings to trigger the vista list of tags
nnoremap <silent><expr> <F12> ':Vista!!<CR>'
nnoremap <silent><expr> <Leader>] ':Vista!!<CR>'
"toggle the location list
nnoremap <Leader><Leader> <cmd>lua require('qf').toggle('l', false)<CR>
"}
"SPELLCHECK:{
"add the selected misspelled word to the local dictionary
nnoremap ?+ zg
"display a list of suggestions for the selected misspelled word
nnoremap ?? hea<C-X>s
"go to the next misspelled word
nnoremap ?N ]s
"go to the previous misspelled word
nnoremap ?P [s
"}
"COPY PASTE AND UNDO REDO:{
"display contents of paste buffers
nnoremap <silent><expr> <Leader>p ':reg<CR>'
"P pastes and replaces the buffer, p pastes and keeps it
vnoremap P p
vnoremap p P
"delete/cut operations that don't replace the paste buffer
nnoremap <Leader>x "_x
vnoremap <Leader>x "_x
nnoremap <Leader>X "_X
vnoremap <Leader>X "_X
nnoremap <Leader>D "_D
vnoremap <Leader>D "_D
nnoremap <Leader>dd "_dd
nnoremap <Leader>dw "_dw
vnoremap <Leader>d "_d
"}
2018-03-13 11:32:04 -04:00
"FIXING AND FORMATTING:{
"format width to text width (or 80 chars if text width is 0)
nnoremap <silent><expr> <Leader>J ':let b:tw=&textwidth<CR>:if (b:tw == 0)<Bar>set tw=80<Bar>endif<CR>gg0vG$gq:if (b:tw == 0)<Bar>set tw=0<Bar>let b:tw=80<Bar>endif<CR>:echo "Document has been formatted to a width of ".b:tw." characters"<CR>'
vnoremap <silent><expr> <Leader>J '<Esc>:let b:tw=&textwidth<CR>:if (b:tw == 0)<Bar>set tw=80<Bar>endif<CR>gvgq:if (b:tw == 0)<Bar>set tw=0<Bar>let b:tw=80<Bar>endif<CR>:echo "Selection has been formatted to a width of ".b:tw." characters"<CR>'
2018-03-13 11:32:04 -04:00
"format by Vim syntax
nnoremap <Leader>f mzgg=G`z<CR>:echo "The document has been formatted"<CR>
vnoremap <Leader>f mz=`z<CR>:echo "The selection has been formatted"<CR>
2018-03-13 11:32:04 -04:00
"fix with ale
nnoremap <silent><expr> <Leader>F ':ALEFix<CR>:echo "Available ale fixers have been run on the document"<CR>'
"convert tabs to spaces and spaces to tabs
nnoremap <silent><expr> <Leader>t ':let b:et=&expandtab<CR>:set expandtab<CR>:retab!<CR>:let &expandtab=b:et<CR>:echo "Tabs have been converted to spaces"<CR>'
nnoremap <silent><expr> <Leader>T ':let b:et=&expandtab<CR>:set noexpandtab<CR>:%retab!<CR>:let &expandtab=b:et<CR>:echo "Spaces have been converted to tabs"<CR>'
"remove trailing whitespace
nnoremap <silent><expr> <Leader>w ':FixWhitespace<CR>:echo "Trailing whitespace has been removed"<CR>'
"indent and unindent the currently selected lines
vnoremap <Tab> >gv
nnoremap <Tab> v>gv<Esc>
vnoremap <S-Tab> <gv
nnoremap <S-Tab> v<gv<Esc>
"insert blank lines above and below the current one
nnoremap <silent> ]<Space> :<C-u>call append(line("."), repeat([""], v:count1))<CR>
nnoremap <silent> [<Space> :<C-u>call append(line(".")-1, repeat([""], v:count1))<CR>
"}
2021-09-17 15:24:17 -04:00
"MACROS:{
nnoremap ' @
"}
"MOVEMENT:{
"additional mappings for easier access
nnoremap = +
nnoremap _ -
2024-10-16 21:42:08 -04:00
"map ctrl+up/down to moving the cursor up and down by 4 lines
nnoremap <C-Up> 4k
nnoremap <C-Down> 4j
2024-10-16 22:02:17 -04:00
nnoremap <C-k> 4k
nnoremap <C-j> 4j
2024-10-16 21:42:08 -04:00
"map ctrl+right/left to moving the cursor left and right by one word
nnoremap <C-Right> <S-Right>
nnoremap <C-Left> <S-Left>
2024-10-16 22:02:17 -04:00
nnoremap <C-l> <S-Right>
nnoremap <C-h> <S-Left>
2024-10-16 21:42:08 -04:00
"map alt+direction to moving the viewport in that direction
2024-10-17 13:03:01 -04:00
noremap <A-Up> <ScrollWheelUp>
nnoremap <A-Up> <ScrollWheelUp>
xnoremap <A-Up> <ScrollWheelUp>
snoremap <A-Up> <ScrollWheelUp>
vnoremap <A-Up> <ScrollWheelUp>
inoremap <A-Up> <ScrollWheelUp>
noremap <A-Down> <ScrollWheelDown>
nnoremap <A-Down> <ScrollWheelDown>
xnoremap <A-Down> <ScrollWheelDown>
snoremap <A-Down> <ScrollWheelDown>
vnoremap <A-Down> <ScrollWheelDown>
inoremap <A-Down> <ScrollWheelDown>
noremap <A-Right> 4zl
nnoremap <A-Right> 4zl
xnoremap <A-Right> 4zl
snoremap <A-Right> 4zl
vnoremap <A-Right> 4zl
inoremap <A-Right> <C-O>4zl
noremap <A-Left> 4zh
nnoremap <A-Left> 4zh
xnoremap <A-Left> 4zh
snoremap <A-Left> 4zh
vnoremap <A-Left> 4zh
inoremap <A-Left> <C-O>4zh
noremap <A-k> <ScrollWheelUp>
nnoremap <A-k> <ScrollWheelUp>
xnoremap <A-k> <ScrollWheelUp>
snoremap <A-k> <ScrollWheelUp>
vnoremap <A-k> <ScrollWheelUp>
inoremap <A-k> <ScrollWheelUp>
noremap <A-j> <ScrollWheelDown>
nnoremap <A-j> <ScrollWheelDown>
xnoremap <A-j> <ScrollWheelDown>
snoremap <A-j> <ScrollWheelDown>
vnoremap <A-j> <ScrollWheelDown>
inoremap <A-j> <ScrollWheelDown>
noremap <A-l> 4zl
nnoremap <A-l> 4zl
xnoremap <A-l> 4zl
snoremap <A-l> 4zl
vnoremap <A-l> 4zl
inoremap <A-l> <C-O>4zl
noremap <A-h> 4zh
nnoremap <A-h> 4zh
xnoremap <A-h> 4zh
snoremap <A-h> 4zh
vnoremap <A-h> 4zh
inoremap <A-h> <C-O>4zh
"remap keys to scroll to the end in a direction
nnoremap <S-Up> gg0
nnoremap <S-Down> G$
nnoremap <S-Right> $
nnoremap <S-Left> ^
"move to next/previous difference (vimdiff/signify)
nmap ]g <plug>(signify-next-hunk)
nmap [g <plug>(signify-prev-hunk)
nmap >> ]g
nmap << [g
"jump to the previous and next issues in the location list
nnoremap [[ <cmd>lua require('qf').above('l')<CR>
nnoremap ]] <cmd>lua require('qf').below('l')<CR>
"}
"SELECTION:{
"ctrl-a to select all
nnoremap <C-a> gg0vG$
xnoremap <C-a> <Esc>gg0vG$
"map remap keys for speedier text selection
xnoremap <C-Up> 4k
xnoremap <C-Down> 4j
xnoremap <C-Right> <S-Right>
xnoremap <C-Left> <S-Left>
"remap keys to select all text in one direction
xnoremap <S-Up> gg0
xnoremap <S-Down> G$
xnoremap <S-Right> $
xnoremap <S-Left> ^
"}
"}}}
Tweaked the colors and styling of the cursor line/col and visual selection to better differentiate between the two. Changed the match parenthesis to standout with black text so the colour is based on the syntax instead of sometimes becoming invisble when the colours match. Changed the emmit shortcut from <Ctrl-Y> to <Ctrl-Z> for reach, and because it's easier to remember (zencoding). Tweaked some of the keyboard references so their explanation makes it easier to remember the keys. Removed the multiple cursors plugin as it rarely worked, was buggy when it did and would slow things down when accidentally triggered. Chanced read sudo from :rsudo to :esudo to match the usual load command in vim, :e. Emmit is now only initialized in css, html, php and aspx files (feel free to push additional webdev files that would be likely to have css or html). Tried to apply a more consistant style and better organization across the configs. Lowered the distance from the edge of the screen before scrolling and increased the undo history size. Removed the perl omnicompletion script because I was looking to trim things down and don't really use perl myself; my apologies if anyone does though, and you can easily get it back by cloning https://github.com/c9s/perlomni.vim.git into the bundle directory. I also remove the fugitive git plugin because while I do use git, I've just found it to be easier and more natural to run it from outside vim; fans of that one can get it back by cloning https://github.com/tpope/vim-fugitive.git into the bundle directory
2014-03-11 03:05:09 -04:00
"FILETYPE SPECIFIC MAPPINGS: {{{
"help
if !&diff
autocmd FileType help map <buffer> <silent><expr> q ':q<CR>'
endif
"error/location list
autocmd FileType qf map <buffer> <Left> <Up>
autocmd FileType qf map <buffer> <Right> <Down>
autocmd FileType qf map <buffer> l j
autocmd FileType qf map <buffer> h k
autocmd FileType qf map <buffer> <2-LeftMouse> <CR>
autocmd FileType qf map <buffer> <Space> <CR><C-w>p
autocmd FileType qf map <buffer> <silent><expr> q ':q<CR>'
"vimdiff
autocmd FilterWritePre * if &diff|nmap <buffer> <silent><expr> <Leader><> ':diffu<CR>'|endif
autocmd FilterWritePre * if &diff|nmap <buffer> <silent><expr> <Leader>,. ':diffu<CR>'|endif
autocmd FilterWritePre * if &diff|nmap <buffer> <silent><expr> <Leader>>< ':diffu<CR>'|endif
autocmd FilterWritePre * if &diff|nmap <buffer> <silent><expr> <Leader>., ':diffu<CR>'|endif
autocmd FilterWritePre * if &diff|nmap <buffer> <Leader>> dp|endif
autocmd FilterWritePre * if &diff|nmap <buffer> <Leader>. dp|endif
autocmd FilterWritePre * if &diff|nmap <buffer> <Leader>< do|endif
autocmd FilterWritePre * if &diff|nmap <buffer> <Leader>, do|endif
autocmd FilterWritePre * if &diff|cabbrev q! qall!|endif
"}}}
"MAPPINGS DISABLED FOR GIVEN FILE TYPES: {{{
"remove incompatible toggles from specific file types
2024-03-06 02:08:39 -05:00
autocmd Filetype help,qf,diff,vista noremap <buffer> <F11> <Nop>
autocmd Filetype help,qf,diff,vista noremap <buffer> <Leader>[ <Nop>
autocmd Filetype help,qf,diff noremap <buffer> <F12> <Nop>
autocmd Filetype help,qf,diff noremap <buffer> <Leader>] <Nop>
"disable modifier keys with directions that would interfere with logic
2024-03-01 16:28:35 -05:00
autocmd Filetype qf noremap <buffer> <C-Up> <Nop>
autocmd Filetype qf noremap <buffer> <C-k> <Nop>
autocmd Filetype qf noremap <buffer> <C-Down> <Nop>
autocmd Filetype qf noremap <buffer> <C-j> <Nop>
autocmd Filetype qf noremap <buffer> <C-Right> <Nop>
autocmd Filetype qf noremap <buffer> <C-l> <Nop>
autocmd Filetype qf noremap <buffer> <C-Left> <Nop>
autocmd Filetype qf noremap <buffer> <C-h> <Nop>
autocmd Filetype qf noremap <buffer> <A-Up> <Nop>
autocmd Filetype qf noremap <buffer> <A-k> <Nop>
autocmd Filetype qf noremap <buffer> <A-Down> <Nop>
autocmd Filetype qf noremap <buffer> <A-j> <Nop>
autocmd Filetype qf noremap <buffer> <A-Right> <Nop>
autocmd Filetype qf noremap <buffer> <A-l> <Nop>
autocmd Filetype qf noremap <buffer> <A-Left> <Nop>
autocmd Filetype qf noremap <buffer> <A-h> <Nop>
autocmd Filetype qf noremap <buffer> <S-Up> <Nop>
autocmd Filetype qf noremap <buffer> <S-k> <Nop>
autocmd Filetype qf noremap <buffer> <S-Down> <Nop>
autocmd Filetype qf noremap <buffer> <S-j> <Nop>
autocmd Filetype qf noremap <buffer> <S-Right> <Nop>
autocmd Filetype qf noremap <buffer> <S-l> <Nop>
autocmd Filetype qf noremap <buffer> <S-Left> <Nop>
autocmd Filetype qf noremap <buffer> <S-h> <Nop>
Tweaked the colors and styling of the cursor line/col and visual selection to better differentiate between the two. Changed the match parenthesis to standout with black text so the colour is based on the syntax instead of sometimes becoming invisble when the colours match. Changed the emmit shortcut from <Ctrl-Y> to <Ctrl-Z> for reach, and because it's easier to remember (zencoding). Tweaked some of the keyboard references so their explanation makes it easier to remember the keys. Removed the multiple cursors plugin as it rarely worked, was buggy when it did and would slow things down when accidentally triggered. Chanced read sudo from :rsudo to :esudo to match the usual load command in vim, :e. Emmit is now only initialized in css, html, php and aspx files (feel free to push additional webdev files that would be likely to have css or html). Tried to apply a more consistant style and better organization across the configs. Lowered the distance from the edge of the screen before scrolling and increased the undo history size. Removed the perl omnicompletion script because I was looking to trim things down and don't really use perl myself; my apologies if anyone does though, and you can easily get it back by cloning https://github.com/c9s/perlomni.vim.git into the bundle directory. I also remove the fugitive git plugin because while I do use git, I've just found it to be easier and more natural to run it from outside vim; fans of that one can get it back by cloning https://github.com/tpope/vim-fugitive.git into the bundle directory
2014-03-11 03:05:09 -04:00
"}}}