mirror of
https://github.com/chylex/dotfiles.git
synced 2025-09-14 18:32:10 +02:00
Compare commits
95 Commits
fc96fddb47
...
main
Author | SHA1 | Date | |
---|---|---|---|
d76b82721d
|
|||
580a47aa9b
|
|||
946f464aca
|
|||
1e5c7a752e
|
|||
c1fac762be
|
|||
8cd0b37833
|
|||
5cbaf5587d
|
|||
7b5bbf7bb7
|
|||
6d1840a48c
|
|||
4a77b0588b
|
|||
a9bfe13277
|
|||
be2bdafe78
|
|||
cda970bfc2
|
|||
80e5b074c9
|
|||
60cb335c9a
|
|||
78866848be
|
|||
f69bb44bfa
|
|||
6c4c99a98d
|
|||
0023b10571
|
|||
4fa0da63e8
|
|||
eb54e7d636
|
|||
2a8dbc57ec
|
|||
713fb10dab
|
|||
ca8bc186b2
|
|||
534ea4a4f1
|
|||
2aebc2deeb
|
|||
c83891317f
|
|||
5ce16f984f
|
|||
83d12be425
|
|||
c0c7eccc1d
|
|||
abc7112e75
|
|||
21e38d0d08
|
|||
a43aae61e8
|
|||
c9c9c0223e
|
|||
a3c4fe7259
|
|||
67c485da65
|
|||
62edd5222d
|
|||
1aa9bde933
|
|||
0bcdaaa077
|
|||
9fa73b1ba8
|
|||
e7dca24993
|
|||
ac9b1d4248
|
|||
41840c7b33
|
|||
939134dc49
|
|||
1bc97f78b6
|
|||
6681099e47
|
|||
0903e926bb
|
|||
14aa43ede4
|
|||
cab52d34b1
|
|||
4203b6e583
|
|||
af2f87c518
|
|||
daea01656e
|
|||
35ba420d83
|
|||
f66f0990ff
|
|||
96e832c9cc
|
|||
7ca80f443f
|
|||
19d10e7428
|
|||
e0b0194256
|
|||
b739008bc5
|
|||
3c66f4c85b
|
|||
bd5fb52aa7
|
|||
8a7a591d68
|
|||
7ebb930f0b
|
|||
61f69a7774
|
|||
6c62422353
|
|||
1d9efca953
|
|||
6ac6c169fa
|
|||
dc68b2d2a0
|
|||
8dcd87f989
|
|||
d1e531074c
|
|||
50312ccf3b
|
|||
28098843d2
|
|||
01e92b8cb2
|
|||
ea590d93c1
|
|||
3286d65e8d
|
|||
f700848658
|
|||
adcaeb0403
|
|||
54284be64b
|
|||
f271ae0d8f
|
|||
014763826f
|
|||
40748c3c68
|
|||
2368dc86c4
|
|||
3fe3a9a285
|
|||
14691e4ed9
|
|||
3b7145539e
|
|||
df3e108327
|
|||
db429b3b30
|
|||
569dc0caad
|
|||
8a5da89d0f
|
|||
2bd9758639
|
|||
9efdf74626
|
|||
c31dbc308a
|
|||
63cd476e43
|
|||
309f33a2e3
|
|||
d0081f9b33
|
28
.bashrc
28
.bashrc
@@ -5,8 +5,10 @@ bind '"\e[A": history-search-backward'
|
||||
bind '"\e[B": history-search-forward'
|
||||
|
||||
alias gh='history|grep'
|
||||
alias less='less --mouse'
|
||||
alias less='less -R --mouse'
|
||||
alias zless='zless -R --mouse'
|
||||
alias lsa='ls -l -v --all --human-readable --group-directories-first --color=auto'
|
||||
alias vim='vim -p'
|
||||
|
||||
alias d='docker'
|
||||
alias dc='docker compose'
|
||||
@@ -27,9 +29,29 @@ function dtopall() { for c in $(docker ps -q); do docker inspect $c -f "{{ .Name
|
||||
function dsubnets() { docker network inspect $(docker network ls | awk '$3 == "bridge" { print $1 }') | jq -r '.[] | .Name + " " + .IPAM.Config[0].Subnet' -; }
|
||||
function dmemlimit() { docker stats --no-stream --format "{{.MemUsage}}" | awk '{print $3}' | sort | sed 's/.$//' | numfmt --from=iec-i | awk '{s+=$1} END {printf "%.0f\n", s}' | numfmt --to=iec --format="%.3f"; }
|
||||
|
||||
function borgsize() { printf 'Archive\t\t\tOrig\tComp\tDedup\n'; printf '%-16.16s\t%s\t%s\t%s\n' $(borg info --json --sort-by name --glob-archives '*' "$1" | jq '.archives[] | "\(.name) \(.stats.original_size) \(.stats.compressed_size) \(.stats.deduplicated_size)"' | sed --expression='s/^"//;s/"$//' | numfmt --field='2-4' --to=iec); }
|
||||
function ssh() {
|
||||
if [ -n "${TMUX_PANE}" ]; then
|
||||
tmux rename-window -t"${TMUX_PANE}" "$*"
|
||||
command ssh "$@"
|
||||
tmux set-window-option automatic-rename "on"
|
||||
else
|
||||
command ssh "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
function convflac() { (set -e; for f in *."$1"; do n="${f%.*}"; ffmpeg -i "$n.$1" -compression_level 12 "$n.flac"; exiftool -TagsFromFile "$n.$1" "-all:all>all:all" "$n.flac"; done;) }
|
||||
function borgsize() {
|
||||
printf 'Archive\t\t\tOrig\tComp\tDedup\n'
|
||||
printf '%-16.16s\t%s\t%s\t%s\n' $(borg info --json --sort-by name --glob-archives '*' "$1" | jq '.archives[] | "\(.name) \(.stats.original_size) \(.stats.compressed_size) \(.stats.deduplicated_size)"' | sed --expression='s/^"//;s/"$//' | numfmt --field='2-4' --to=iec)
|
||||
}
|
||||
|
||||
function convflac() {(
|
||||
set -e
|
||||
for f in *."$1"; do
|
||||
n="${f%.*}"
|
||||
ffmpeg -i "$n.$1" -compression_level 12 "$n.flac"
|
||||
exiftool -TagsFromFile "$n.$1" "-all:all>all:all" "$n.flac"
|
||||
done
|
||||
)}
|
||||
|
||||
export EDITOR=vim
|
||||
|
||||
|
431
.ideavimrc
431
.ideavimrc
@@ -1,30 +1,99 @@
|
||||
set idearefactormode=visual
|
||||
set clipboard-=ideaput
|
||||
set hlsearch
|
||||
set ignorecase
|
||||
set incsearch
|
||||
set noerrorbells
|
||||
set number
|
||||
set nrformats-=octal
|
||||
set relativenumber
|
||||
set scrolloff=12
|
||||
set scrolloff=999
|
||||
set showcmd
|
||||
set showmode
|
||||
set sidescrolloff=48
|
||||
set sidescrolloff=999
|
||||
set smartcase
|
||||
set virtualedit=onemore
|
||||
set visualbell
|
||||
|
||||
set acejump
|
||||
set argtextobj
|
||||
set exchange
|
||||
set highlightedyank
|
||||
set ideajoin
|
||||
set matchit
|
||||
set multiple-cursors
|
||||
set ReplaceWithRegister
|
||||
set surround
|
||||
set textobj-entire
|
||||
set textobj-indent
|
||||
" Use WSL bash as shell
|
||||
if has('win32')
|
||||
set shell=bash.exe
|
||||
set shellcmdflag=-lic
|
||||
set shellxquote=
|
||||
endif
|
||||
|
||||
" http://vimdoc.sourceforge.net/htmldoc/vimindex.html
|
||||
" Configure IDEA settings (https://github.com/JetBrains/ideavim/wiki/set-commands)
|
||||
set ideajoin
|
||||
set idearefactormode=visual
|
||||
|
||||
" Configure IDE keybindings (https://github.com/JetBrains/ideavim/wiki/sethandler)
|
||||
sethandler <C-A> a:ide
|
||||
sethandler <C-B> a:ide
|
||||
sethandler <C-C> a:ide
|
||||
sethandler <C-E> a:ide
|
||||
sethandler <C-F> a:ide
|
||||
sethandler <C-G> a:ide
|
||||
sethandler <C-H> a:ide
|
||||
sethandler <C-I> a:ide
|
||||
sethandler <C-J> a:ide
|
||||
sethandler <C-K> a:ide
|
||||
sethandler <C-L> a:ide
|
||||
sethandler <C-M> a:ide
|
||||
sethandler <C-R> a:ide
|
||||
sethandler <C-S> a:ide
|
||||
sethandler <C-T> a:ide
|
||||
sethandler <C-V> a:ide
|
||||
sethandler <C-W> a:ide
|
||||
sethandler <C-X> a:ide
|
||||
sethandler <C-Y> a:ide
|
||||
sethandler <C-\> a:ide
|
||||
|
||||
sethandler <A-B> a:vim
|
||||
sethandler <A-H> a:vim
|
||||
sethandler <A-J> a:vim
|
||||
sethandler <A-K> a:vim
|
||||
sethandler <A-L> a:vim
|
||||
sethandler <A-N> a:vim
|
||||
sethandler <A-O> a:vim
|
||||
sethandler <A-P> a:vim
|
||||
sethandler <A-S-B> a:vim
|
||||
sethandler <A-S-H> a:vim
|
||||
sethandler <A-S-J> a:vim
|
||||
sethandler <A-S-K> a:vim
|
||||
sethandler <A-S-L> a:vim
|
||||
sethandler <A-S-O> a:vim
|
||||
sethandler <A-V> a:vim
|
||||
sethandler <A-X> a:vim
|
||||
sethandler <C-D> a:vim
|
||||
sethandler <C-I> a:vim
|
||||
sethandler <C-N> a:vim
|
||||
sethandler <C-O> a:vim
|
||||
sethandler <C-P> a:vim
|
||||
sethandler <C-S-W> a:vim
|
||||
sethandler <C-U> a:vim
|
||||
sethandler <S-BS> a:vim
|
||||
|
||||
sethandler <C-Left> a:vim
|
||||
sethandler <C-Right> a:vim
|
||||
sethandler <S-Left> a:vim
|
||||
sethandler <S-Right> a:vim
|
||||
|
||||
if &ide =~? 'rider'
|
||||
" These shortcuts are broken in Rider for some reason...
|
||||
sethandler <A-S-H> a:ide
|
||||
sethandler <A-S-L> a:ide
|
||||
endif
|
||||
|
||||
" Enable plugins (https://github.com/JetBrains/ideavim/wiki/IdeaVim-Plugins)
|
||||
Plug 'argtextobj.vim'
|
||||
Plug 'vim-exchange'
|
||||
Plug 'vim-highlightedyank'
|
||||
Plug 'vim-indent-object'
|
||||
Plug 'vim-matchit'
|
||||
Plug 'vim-multiple-cursors'
|
||||
Plug 'vim-paragraph-motion'
|
||||
Plug 'vim-surround'
|
||||
Plug 'vim-textobj-entire'
|
||||
|
||||
" https://vimhelp.org/index.txt.html
|
||||
|
||||
" Map top row on Czech keyboard layout to digits
|
||||
map + 1
|
||||
@@ -39,193 +108,219 @@ map í 9
|
||||
map é 0
|
||||
|
||||
" Move some commands closer on Czech keyboard layout
|
||||
map ů %
|
||||
nnoremap ú @@
|
||||
noremap ů ;
|
||||
map § %
|
||||
noremap , +
|
||||
|
||||
" Navigate to end of previous word
|
||||
nnoremap <A-b> ge
|
||||
nnoremap <A-S-b> gE
|
||||
noremap § `
|
||||
noremap §§ ``
|
||||
nnoremap m§ m
|
||||
|
||||
" Navigate to indents
|
||||
nnoremap J +
|
||||
vnoremap J +
|
||||
nnoremap K -
|
||||
vnoremap K -
|
||||
sunmap ů
|
||||
sunmap §
|
||||
|
||||
" Enter visual block mode
|
||||
map <A-v> <C-v>
|
||||
|
||||
" Navigate camel humps
|
||||
noremap L [w
|
||||
noremap H [b
|
||||
nnoremap L [w
|
||||
vnoremap L [w
|
||||
nnoremap H [b
|
||||
vnoremap H [b
|
||||
|
||||
" Edit camel humps
|
||||
nnoremap dL :raction EditorDeleteToWordEndInDifferentHumpsMode<CR>
|
||||
nnoremap dH :raction EditorDeleteToWordStartInDifferentHumpsMode<CR>
|
||||
nmap dih dHdL " Only works in the middle of a hump
|
||||
nmap cL dLi
|
||||
nmap cH dHi
|
||||
nmap cih dihi
|
||||
" Navigate to end of previous word
|
||||
noremap <A-b> ge
|
||||
noremap <A-S-b> gE
|
||||
|
||||
" Navigate unmatched parentheses/braces
|
||||
noremap g( [(
|
||||
noremap g) ])
|
||||
noremap g{ [{
|
||||
noremap g} ]}
|
||||
|
||||
" Edit from cursor to start/end of parenthesized block
|
||||
nnoremap c) c])
|
||||
nnoremap d) d])
|
||||
nnoremap c( c[((
|
||||
nnoremap d( c[((<ESC>l
|
||||
nnoremap d( c[((<Esc>l
|
||||
|
||||
" Delete lines
|
||||
" Create lines
|
||||
nnoremap go o<Esc>$
|
||||
nnoremap gO O<Esc>$
|
||||
nnoremap g<CR> i<CR><Esc>l
|
||||
|
||||
" Edit current line
|
||||
nnoremap C cc
|
||||
xnoremap C cc
|
||||
nnoremap D dd
|
||||
vnoremap C cc
|
||||
vnoremap D dd
|
||||
|
||||
" Alternative way to enter visual block mode
|
||||
nnoremap <Space>v <C-V>
|
||||
xnoremap D dd
|
||||
nnoremap < <<
|
||||
nnoremap > >>
|
||||
|
||||
" Indent keeping selection
|
||||
vnoremap < <gv
|
||||
vnoremap > >gv
|
||||
vnoremap = =gv
|
||||
xnoremap < <gv
|
||||
xnoremap > >gv
|
||||
xnoremap = =gv
|
||||
|
||||
" Extend selection
|
||||
xmap x <Action>(EditorSelectWord)
|
||||
xmap X <Action>(EditorUnSelectWord)
|
||||
|
||||
" Turn capital letters into opposite actions
|
||||
" nnoremap U :redo<CR> " Handled by custom version of IdeaVim
|
||||
" nnoremap U :redo<CR> " Handled by custom version of IdeaVIM
|
||||
|
||||
" Reselect pasted text
|
||||
nnoremap gp `[v`]
|
||||
|
||||
" Put without yank
|
||||
xmap p gr
|
||||
xnoremap p P
|
||||
xnoremap P p
|
||||
|
||||
" Clear search highlights
|
||||
nnoremap <Esc> :nohlsearch<Return><Esc>
|
||||
|
||||
" Code completion
|
||||
if &ide !~? 'rider'
|
||||
imap <expr> ! pumvisible() ? '<Action>(EditorChooseLookupItem)<Esc>mzF.bi!<Esc>`zla' : '!'
|
||||
endif
|
||||
|
||||
" Show parameter info
|
||||
nmap <A-p> <Action>(ParameterInfo)
|
||||
imap <A-p> <Action>(ParameterInfo)
|
||||
|
||||
" Navigate back/forward
|
||||
map <BS> <Action>(Back)
|
||||
map <S-BS> <Action>(Forward)
|
||||
|
||||
" Navigate inspection highlights
|
||||
map ( <Action>(GotoPreviousError)
|
||||
map ) <Action>(GotoNextError)
|
||||
|
||||
" Navigate to previous/next method
|
||||
map [ <Action>(MethodUp)
|
||||
map ] <Action>(MethodDown)
|
||||
|
||||
" Navigate paragraphs at indentation
|
||||
map { <Plug>(ParagraphPrevMotion)$
|
||||
map } <Plug>(ParagraphNextMotion)$
|
||||
|
||||
" Move statement/element
|
||||
map <A-S-h> <Action>(MoveElementLeft)
|
||||
map <A-S-l> <Action>(MoveElementRight)
|
||||
|
||||
map <A-S-j> <Action>(MoveStatementDown)
|
||||
map <A-S-k> <Action>(MoveStatementUp)
|
||||
|
||||
" Multiple carets
|
||||
map <expr> <A-j> pumvisible() ? '<Action>(EditorDown)' : '<Action>(EditorCloneCaretBelow)'
|
||||
map <expr> <A-k> pumvisible() ? '<Action>(EditorUp)' : '<Action>(EditorCloneCaretAbove)'
|
||||
|
||||
imap <expr> <A-j> pumvisible() ? '<Action>(EditorDown)' : '<Action>(EditorCloneCaretBelow)'
|
||||
imap <expr> <A-k> pumvisible() ? '<Action>(EditorUp)' : '<Action>(EditorCloneCaretAbove)'
|
||||
|
||||
" Manage editor tabs
|
||||
map <C-w>m <Action>(MoveEditorToOppositeTabGroup)
|
||||
map <C-w>s <Action>(MoveTabDown)
|
||||
map <C-w>u <Action>(Unsplit)
|
||||
map <C-w>U <Action>(UnsplitAll)
|
||||
map <C-w>v <Action>(MoveTabRight)
|
||||
|
||||
noremap <C-w>S <C-w>s
|
||||
noremap <C-w>V <C-w>v
|
||||
|
||||
map <C-w><C-w>a <Action>(CloseAllEditors)
|
||||
map <C-w><C-w>h <Action>(CloseAllToTheLeft)
|
||||
map <C-w><C-w>l <Action>(CloseAllToTheRight)
|
||||
map <C-w><C-w>o <Action>(CloseAllEditorsButActive)
|
||||
|
||||
map \\ <C-w>
|
||||
map \\\\ <C-w><C-w>
|
||||
|
||||
" Rebind repurposed commands
|
||||
noremap g] ]
|
||||
noremap g[ [
|
||||
|
||||
" Rebind commands that will be repurposed
|
||||
nnoremap GG G
|
||||
nnoremap dG dG
|
||||
nnoremap cG cG
|
||||
nnoremap M m
|
||||
nnoremap Z z
|
||||
map <A-S-n> <A-p>
|
||||
|
||||
" Repurpose 'Enter' for statement completion (renaming function requires a custom version of IdeaVIM)
|
||||
function! CompleteStatement()
|
||||
if (renaming())
|
||||
" TODO https://github.com/JetBrains/ideavim/discussions/397#discussioncomment-1573048
|
||||
" return "\<Enter>"
|
||||
return "<Enter>"
|
||||
else
|
||||
action EditorCompleteStatement
|
||||
return ""
|
||||
endif
|
||||
endfunction
|
||||
" Repurpose 'Enter' for statement completion
|
||||
nmap <Enter> <Action>(EditorCompleteStatement)
|
||||
|
||||
nmap <expr> <Enter> CompleteStatement()
|
||||
" Repurpose 'g' for navigation (VimJumpToSource requires a custom version of IdeaVIM)
|
||||
map gb <Action>(GotoNextBookmark)
|
||||
map gB <Action>(GotoPreviousBookmark)
|
||||
map gD <Action>(GotoTypeDeclaration)
|
||||
map ge <Action>(VcsShowNextChangeMarker)
|
||||
map gE <Action>(VcsShowPrevChangeMarker)
|
||||
map gf <Action>(VimJumpToSource)<Action>(HideActiveWindow)
|
||||
map gi <Action>(GotoImplementation)
|
||||
map gr <Action>(RecentLocations)
|
||||
map gR <Action>(RecentChangedFiles)
|
||||
map gs <Action>(GotoSuperMethod)
|
||||
map gS <Action>(ShowSiblings)
|
||||
map gt gg<Action>(KM.GotoNextTypeInFile)
|
||||
map gT <Action>(KM.GotoNextTypeInFile)
|
||||
map gu <Action>(ShowUsages)
|
||||
map gU <Action>(FindUsages)
|
||||
|
||||
" Repurpose special characters for navigation
|
||||
nmap ( :raction GotoPreviousError<CR>
|
||||
nmap ) :raction GotoNextError<CR>
|
||||
nmap [ :raction MethodUp<CR>
|
||||
nmap ] :raction MethodDown<CR>
|
||||
nmap { :raction JumpToLastChange<CR>
|
||||
nmap } :raction JumpToNextChange<CR>
|
||||
" Repurpose 'z' for view actions and debugger
|
||||
map za <Action>(Annotate)
|
||||
map zb <Action>(ViewBreakpoints)
|
||||
map zc <Action>(EditorContextInfo)
|
||||
map zd <Action>(CompareClipboardWithSelection)
|
||||
map ze <Action>(ShowErrorDescription)
|
||||
map zf <Action>(SelectInProjectView)
|
||||
map zi <Action>(ShowHoverInfo)
|
||||
map zm <Action>(ShowBookmarks)
|
||||
map zp <Action>(QuickImplementations)
|
||||
map zP <Action>(QuickTypeDefinition)
|
||||
map zr <Action>(RunToCursor)
|
||||
map zR <Action>(ForceRunToCursor)
|
||||
map zs <Action>(osmedile.intellij.stringmanip.PopupChoiceAction)
|
||||
map zt <Action>(ExpressionTypeInfo)
|
||||
map zx <Action>(EvaluateExpression)
|
||||
|
||||
" Repurpose 'g' for navigation (:raction requires a custom version of IdeaVIM)
|
||||
nmap gb :raction GotoNextBookmark<CR>
|
||||
nmap gB :raction GotoPreviousBookmark<CR>
|
||||
nmap gd :action GotoDeclaration<CR>
|
||||
nmap gD :action GotoTypeDeclaration<CR>
|
||||
nmap ge :raction VcsShowNextChangeMarker<CR>
|
||||
nmap gE :raction VcsShowPrevChangeMarker<CR>
|
||||
map gi :action GotoImplementation<CR>
|
||||
map gj :raction EditorCloneCaretBelow<CR>
|
||||
map gk :raction EditorCloneCaretAbove<CR>
|
||||
nmap go :raction GotoNextElementUnderCaretUsage<CR>
|
||||
nmap gO :raction GotoPrevElementUnderCaretUsage<CR>
|
||||
nmap gr :action RecentLocations<CR>
|
||||
nmap gR :action RecentChangedFiles<CR>
|
||||
map gs :action GotoSuperMethod<CR>
|
||||
map gS :action ShowSiblings<CR>
|
||||
nmap gT /\\<class\>\\\|\\<interface\>\\\|\\<enum\>\\\|\\<object\>\\\|\\<record\>\\\|\\<struct\>\\\|\\<trait\><CR>w:nohlsearch<CR>
|
||||
nmap gt gggT
|
||||
nmap gu :action ShowUsages<CR>
|
||||
nmap gU :action FindUsages<CR>
|
||||
map gz :action NextSplitter<CR>
|
||||
map gZ :action PrevSplitter<CR>
|
||||
map zht <Action>(TypeHierarchy)
|
||||
map zhm <Action>(MethodHierarchy)
|
||||
|
||||
" Make bidirectional 'g' commands work with 'G' too
|
||||
nmap Gb gb
|
||||
nmap GB gB
|
||||
nmap Ge ge
|
||||
nmap GE gE
|
||||
map Gj gj
|
||||
map Gk gk
|
||||
nmap Go go
|
||||
nmap GO gO
|
||||
nmap Gt gt
|
||||
nmap GT gT
|
||||
map Gz gz
|
||||
map GZ gZ
|
||||
if &ide =~? 'rider'
|
||||
map zhc <Action>(RiderShowIncomingCalls)
|
||||
else
|
||||
map zhc <Action>(CallHierarchy)
|
||||
endif
|
||||
|
||||
" Repurpose 'z' for view actions, debugger, and tab management
|
||||
map za :action Annotate<CR>
|
||||
map zb :action ViewBreakpoints<CR>
|
||||
map zc :action EditorContextInfo<CR>
|
||||
map zd :action QuickJavaDoc<CR>
|
||||
map ze :action ShowErrorDescription<CR>
|
||||
map zf :action SelectInProjectView<CR>
|
||||
map zht :action TypeHierarchy<CR>
|
||||
map zhm :action MethodHierarchy<CR>
|
||||
map zhc :action CallHierarchy<CR>
|
||||
map zm :action ShowBookmarks<CR>
|
||||
map zp :action QuickImplementations<CR>
|
||||
map zP :action QuickTypeDefinition<CR>
|
||||
map zr :action RunToCursor<CR>
|
||||
map zR :action ForceRunToCursor<CR>
|
||||
map zsd :action MoveTabDown<CR>
|
||||
map zsr :action MoveTabRight<CR>
|
||||
map zsu :action Unsplit<CR>
|
||||
map zsU :action UnsplitAll<CR>
|
||||
map zt :action ExpressionTypeInfo<CR>
|
||||
map zx :action EvaluateExpression<CR>
|
||||
nmap zhl <Action>(LocalHistory.ShowHistory)
|
||||
xmap zhl <Action>(LocalHistory.ShowSelectionHistory)
|
||||
nmap zhg <Action>(Vcs.ShowTabbedFileHistory)
|
||||
xmap zhg <Action>(Vcs.ShowHistoryForBlock)
|
||||
|
||||
" Repurpose 'm' for refactoring (normal mode)
|
||||
nmap mg :action Generate<CR>
|
||||
nmap mi :action Inline<CR>
|
||||
nmap mn :action RenameElement<CR>
|
||||
nmap mo :action OverrideMethods<CR>
|
||||
nmap ms :action ChangeSignature<CR>
|
||||
nmap mS :action NewScratchFile<CR>
|
||||
" Repurpose 'm' for refactoring
|
||||
map mc <Action>(IntroduceConstant)
|
||||
map md <Action>(SafeDelete)
|
||||
map me <Action>(Move)
|
||||
map mf <Action>(IntroduceField)
|
||||
map mg <Action>(Generate)
|
||||
map mi <Action>(Inline)
|
||||
map mm <Action>(ExtractMethod)
|
||||
map mM <Action>(ExtractFunction)
|
||||
map mn <Action>(RenameElement)
|
||||
map mo <Action>(OverrideMethods)
|
||||
map mp <Action>(IntroduceParameter)
|
||||
map mP <Action>(IntroduceProperty)
|
||||
map mr <Action>(Refactorings.QuickListPopupAction)
|
||||
map ms <Action>(ChangeSignature)
|
||||
map mS <Action>(NewScratchFile)
|
||||
map mt <Action>(InsertLiveTemplate)
|
||||
map mv <Action>(IntroduceVariable)
|
||||
map mw <Action>(SurroundWith)
|
||||
|
||||
" Repurpose 'm' for refactoring (normal / visual mode)
|
||||
nmap mc :action IntroduceConstant<CR>
|
||||
vmap mc :action IntroduceConstant<CR>
|
||||
nmap mf :action IntroduceField<CR>
|
||||
vmap mf :action IntroduceField<CR>
|
||||
nmap mm :action ExtractMethod<CR>
|
||||
vmap mm :action ExtractMethod<CR>
|
||||
nmap mM :action ExtractFunction<CR>
|
||||
vmap mM :action ExtractFunction<CR>
|
||||
nmap mp :action IntroduceParameter<CR>
|
||||
vmap mp :action IntroduceParameter<CR>
|
||||
nmap mP :action IntroduceProperty<CR>
|
||||
vmap mP :action IntroduceProperty<CR>
|
||||
nmap mr :action Refactorings.QuickListPopupAction<CR>
|
||||
vmap mr :action Refactorings.QuickListPopupAction<CR>
|
||||
nmap mv :action IntroduceVariable<CR>
|
||||
vmap mv :action IntroduceVariable<CR>
|
||||
" Remap NERDTree bindings
|
||||
let g:NERDTreeMapOpenVSplit = 'v'
|
||||
let g:NERDTreeMapPreviewVSplit = 'gv'
|
||||
let g:NERDTreeMapOpenSplit = 's'
|
||||
let g:NERDTreeMapPreviewSplit = 'gs'
|
||||
|
||||
" Actions for custom version of AceJump
|
||||
map <Space><Space> :action AceVimAction_JumpAllEditors<CR>
|
||||
map <Space>f :action AceVimAction_JumpForward<CR>
|
||||
map <Space>F :action AceVimAction_JumpBackward<CR>
|
||||
map <Space>t :action AceVimAction_JumpTillForward<CR>
|
||||
map <Space>T :action AceVimAction_JumpTillBackward<CR>
|
||||
map <Space>l :action AceVimAction_JumpOnLineForward<CR>
|
||||
map <Space>h :action AceVimAction_JumpOnLineBackward<CR>
|
||||
map <Space>j :action AceVimAction_JumpLineIndentsForward<CR>
|
||||
map <Space>k :action AceVimAction_JumpLineIndentsBackward<CR>
|
||||
map <Space>w :action AceVimAction_JumpLWordForward<CR>
|
||||
map <Space>W :action AceVimAction_JumpUWordForward<CR>
|
||||
map <Space>b :action AceVimAction_JumpLWordBackward<CR>
|
||||
map <Space>B :action AceVimAction_JumpUWordBackward<CR>
|
||||
map <Space>e :action AceVimAction_JumpLWordEndForward<CR>
|
||||
map <Space>E :action AceVimAction_JumpUWordEndForward<CR>
|
||||
map <Space><A-b> :action AceVimAction_JumpLWordEndBackward<CR>
|
||||
map <Space><A-S-b> :action AceVimAction_JumpUWordEndBackward<CR>
|
||||
set acejump
|
||||
map <Space> <Action>(AceVimAction_JumpAllEditors)
|
||||
map g<Space> <Action>(AceVimAction_JumpAllEditors_GoToDeclaration)
|
||||
|
@@ -6,6 +6,8 @@ set -g mouse on
|
||||
set-window-option -g mode-keys vi
|
||||
|
||||
bind -T copy-mode-vi v send -X begin-selection
|
||||
bind -T copy-mode-vi C-v send -X rectangle-toggle
|
||||
bind -T copy-mode-vi M-v send -X rectangle-toggle
|
||||
bind -T copy-mode-vi Enter send -X copy-selection-and-cancel
|
||||
unbind -T copy-mode-vi MouseDragEnd1Pane
|
||||
|
||||
|
208
.vimrc
208
.vimrc
@@ -1,36 +1,83 @@
|
||||
set autoindent
|
||||
set backspace=indent,eol,start
|
||||
set encoding=utf-8
|
||||
set guifont=Cascadia_Mono:h12:cANSI:qDRAFT
|
||||
set guioptions-=t " Remove menu tearoff
|
||||
set history=1024
|
||||
set hlsearch
|
||||
set ignorecase
|
||||
set incsearch
|
||||
set infercase
|
||||
set laststatus=2
|
||||
set listchars=space:·,tab:>·,trail:~,extends:>,precedes:<
|
||||
set linebreak
|
||||
set list
|
||||
set listchars=lead:·,trail:·,tab:→\ ,extends:>,precedes:<
|
||||
set modeline
|
||||
set modelines=2
|
||||
set mouse=a
|
||||
set noerrorbells
|
||||
set noshowcmd
|
||||
set noshowmode
|
||||
set nrformats-=octal
|
||||
set number
|
||||
set relativenumber
|
||||
set scrolloff=12
|
||||
set scrolloff=999
|
||||
set shiftwidth=0
|
||||
set shortmess-=S " Show search count
|
||||
set shortmess-=l " Show full description for lines and bytes
|
||||
set showbreak=↪\
|
||||
set showmatch
|
||||
set sidescrolloff=48
|
||||
set sidescrolloff=999
|
||||
set smartcase
|
||||
set tabstop=4
|
||||
set ttimeout
|
||||
set ttimeoutlen=50
|
||||
set ttymouse=xterm2
|
||||
set virtualedit=onemore
|
||||
set wildmenu
|
||||
set winaltkeys=no
|
||||
set wrap
|
||||
|
||||
" Color support
|
||||
set t_Co=256
|
||||
" Windows paths
|
||||
set packpath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME
|
||||
set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME
|
||||
|
||||
" Color scheme
|
||||
syntax enable
|
||||
colorscheme custom
|
||||
highlight LineNr ctermfg=244
|
||||
highlight IncSearch ctermfg=251 ctermbg=238
|
||||
highlight Search ctermfg=251 ctermbg=238
|
||||
highlight Visual ctermfg=240 ctermbg=250
|
||||
|
||||
if has("gui_running")
|
||||
colorscheme retrobox
|
||||
highlight NonText ctermfg=14 guifg=#7c6f64
|
||||
else
|
||||
colorscheme custom
|
||||
highlight LineNr ctermfg=244
|
||||
highlight IncSearch ctermfg=251 ctermbg=238
|
||||
highlight Search ctermfg=251 ctermbg=238
|
||||
highlight Visual ctermfg=240 ctermbg=250
|
||||
endif
|
||||
|
||||
highlight SpecialKey ctermfg=8 guifg=#584f46
|
||||
|
||||
" Windows GUI
|
||||
if has("win32") && has("gui_running")
|
||||
autocmd GUIEnter * simalt ~x " Maximize window
|
||||
autocmd GUIEnter * set visualbell t_vb= " Disable bell sound
|
||||
|
||||
set listchars+=tab:▶\
|
||||
set renderoptions=type:directx " Fix unicode rendering
|
||||
set showbreak=→\
|
||||
endif
|
||||
|
||||
" Fix Alt mappings (https://github.com/vim/vim/issues/2588#issuecomment-697959290)
|
||||
for ord in range(65, 90) + range(97, 122)
|
||||
let char = nr2char(ord)
|
||||
exec printf("set <m-%s>=\<esc>%s", char, char)
|
||||
exec printf("tnoremap <silent> <m-%s> <esc>%s", char, char)
|
||||
endfor
|
||||
|
||||
" Navigate editor tabs
|
||||
noremap <M-h> gT
|
||||
noremap <M-l> gt
|
||||
|
||||
" Map top row on Czech keyboard layout to digits
|
||||
map + 1
|
||||
@@ -45,49 +92,75 @@ map í 9
|
||||
map é 0
|
||||
|
||||
" Move some commands closer on Czech keyboard layout
|
||||
map ů %
|
||||
nnoremap ú @@
|
||||
noremap ů ;
|
||||
map § %
|
||||
noremap , +
|
||||
|
||||
" Navigate to end of previous word
|
||||
nnoremap <A-b> ge
|
||||
nnoremap <A-S-b> gE
|
||||
noremap § `
|
||||
noremap §§ ``
|
||||
nnoremap m§ m
|
||||
|
||||
" Navigate to indents
|
||||
nnoremap J +
|
||||
vnoremap J +
|
||||
nnoremap K -
|
||||
vnoremap K -
|
||||
sunmap ů
|
||||
sunmap §
|
||||
|
||||
" Enter visual block mode
|
||||
noremap <M-v> <C-v>
|
||||
|
||||
" Navigate camel humps (https://github.com/vim-scripts/camelcasemotion)
|
||||
map L <Plug>CamelCaseMotion_w
|
||||
map H <Plug>CamelCaseMotion_b
|
||||
sunmap L
|
||||
sunmap H
|
||||
|
||||
" Edit camel humps (https://github.com/vim-scripts/camelcasemotion)
|
||||
omap iL <Plug>CamelCaseMotion_iw
|
||||
xmap iL <Plug>CamelCaseMotion_iw
|
||||
omap iH <Plug>CamelCaseMotion_ib
|
||||
xmap iH <Plug>CamelCaseMotion_ib
|
||||
|
||||
" Navigate to end of previous word
|
||||
noremap <M-b> ge
|
||||
noremap <M-S-b> gE
|
||||
|
||||
" Navigate soft-wrapped lines
|
||||
nnoremap <expr> j v:count ? 'j' : 'gj'
|
||||
xnoremap <expr> j v:count ? 'j' : 'gj'
|
||||
nnoremap <expr> k v:count ? 'k' : 'gk'
|
||||
xnoremap <expr> k v:count ? 'k' : 'gk'
|
||||
|
||||
nnoremap gj j
|
||||
xnoremap gj j
|
||||
nnoremap gk k
|
||||
xnoremap gk k
|
||||
|
||||
" Navigate unmatched parentheses/braces
|
||||
noremap g( [(
|
||||
noremap g) ])
|
||||
noremap g{ [{
|
||||
noremap g} ]}
|
||||
|
||||
" Edit from cursor to start/end of parenthesized block
|
||||
nnoremap c) c])
|
||||
nnoremap d) d])
|
||||
nnoremap c( c[((
|
||||
nnoremap d( c[((<ESC>l
|
||||
nnoremap d( c[((<Esc>l
|
||||
|
||||
" Delete lines
|
||||
" Create lines
|
||||
nnoremap go o<Esc>$
|
||||
nnoremap gO O<Esc>$
|
||||
nnoremap g<CR> i<CR><Esc>l
|
||||
|
||||
" Edit current line
|
||||
nnoremap C cc
|
||||
xnoremap C cc
|
||||
nnoremap D dd
|
||||
vnoremap C cc
|
||||
vnoremap D dd
|
||||
|
||||
" Alternative way to enter visual block mode
|
||||
nnoremap <Space>v <C-V>
|
||||
xnoremap D dd
|
||||
nnoremap < <<
|
||||
nnoremap > >>
|
||||
|
||||
" Indent keeping selection
|
||||
vnoremap < <gv
|
||||
vnoremap > >gv
|
||||
vnoremap = =gv
|
||||
xnoremap < <gv
|
||||
xnoremap > >gv
|
||||
xnoremap = =gv
|
||||
|
||||
" Turn capital letters into opposite actions
|
||||
nnoremap U :redo<CR>
|
||||
@@ -96,14 +169,81 @@ nnoremap U :redo<CR>
|
||||
nnoremap gp `[v`]
|
||||
|
||||
" Put without yank
|
||||
xmap p gr
|
||||
xnoremap p P
|
||||
xnoremap P p
|
||||
|
||||
" Clear search highlights
|
||||
nnoremap <Esc> :nohlsearch<Return><Esc>
|
||||
|
||||
" Use Ctrl for selection and clipboard
|
||||
nnoremap <C-a> ggVG
|
||||
xnoremap <C-a> ggoG
|
||||
|
||||
xnoremap <C-c> "+y
|
||||
xnoremap <C-x> "+x
|
||||
|
||||
noremap <C-v> "+gP
|
||||
inoremap <C-v> <C-o>:set paste<CR><C-r>+<C-o>:set nopaste<CR>
|
||||
cnoremap <C-v> <C-r>+
|
||||
|
||||
nnoremap <C-s> :w<CR>
|
||||
xnoremap <C-s> :<C-U>w<CR>gv
|
||||
inoremap <C-s> <C-o>:w<CR>
|
||||
|
||||
" Update search register when using f/t
|
||||
function FindChar(action, reverse, search_affix)
|
||||
let t:reverse_search = a:reverse
|
||||
let char = nr2char(getchar())
|
||||
|
||||
if char == '\'
|
||||
let query = '\\'
|
||||
else
|
||||
let query = '\C\V'.char.'\v'
|
||||
endif
|
||||
|
||||
if a:reverse
|
||||
call setreg('/', query.a:search_affix)
|
||||
else
|
||||
call setreg('/', a:search_affix.query)
|
||||
endif
|
||||
|
||||
nohlsearch
|
||||
execute 'normal! '.a:action.char
|
||||
endfunction
|
||||
|
||||
function FindCharVisual(action, reverse, search_affix)
|
||||
normal gv
|
||||
call FindChar(a:action, a:reverse, a:search_affix)
|
||||
endfunction
|
||||
|
||||
function! ResetReverseSearchFlag()
|
||||
if getcmdtype() =~ "[/?]"
|
||||
let t:reverse_search = 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
nmap f :call FindChar('f', 0, '')<CR>
|
||||
nmap F :call FindChar('F', 1, '')<CR>
|
||||
nmap t :call FindChar('t', 0, '\zs.\ze')<CR>
|
||||
nmap T :call FindChar('T', 1, '\zs.\ze')<CR>
|
||||
|
||||
xmap f :call FindCharVisual('f', 0, '')<CR>
|
||||
xmap F :call FindCharVisual('F', 1, '')<CR>
|
||||
xmap t :call FindCharVisual('t', 0, '\zs.\ze')<CR>
|
||||
xmap T :call FindCharVisual('T', 1, '\zs.\ze')<CR>
|
||||
|
||||
noremap <expr> n 'nN'[t:reverse_search]
|
||||
noremap <expr> N 'Nn'[t:reverse_search]
|
||||
|
||||
cnoremap <CR> <cmd>call ResetReverseSearchFlag()<CR><CR>
|
||||
|
||||
" Plugin: https://github.com/easymotion/vim-easymotion.git
|
||||
map <Space> <Plug>(easymotion-prefix)
|
||||
nmap <Space> <Plug>(easymotion-overwin-f)
|
||||
xmap <Space> <Plug>(easymotion-s)
|
||||
omap <Space> <Plug>(easymotion-s)
|
||||
|
||||
" Plugin: https://github.com/machakann/vim-highlightedyank
|
||||
let g:highlightedyank_highlight_duration = 500
|
||||
|
||||
" Plugin: https://github.com/luochen1990/rainbow
|
||||
let g:rainbow_active = 1
|
||||
|
||||
|
@@ -57,6 +57,10 @@
|
||||
|
||||
/* Tabs & toolbars */
|
||||
|
||||
#navigator-toolbox {
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
#toolbar-menubar {
|
||||
min-height: 21px !important;
|
||||
}
|
||||
@@ -104,23 +108,33 @@
|
||||
padding: 0 1px !important;
|
||||
}
|
||||
|
||||
/* Tab playback icons */
|
||||
|
||||
.tabbrowser-tab:not([pinned]) .tab-icon-stack:is([muted], [soundplaying], [activemedia-blocked]) {
|
||||
grid-template-areas: "a s";
|
||||
}
|
||||
|
||||
.tabbrowser-tab:not([pinned]) .tab-icon-overlay:is([muted], [soundplaying], [activemedia-blocked]) {
|
||||
grid-area: a !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab:not([pinned]) .tab-icon-stack[indicator-replaces-favicon] > :not(&) {
|
||||
opacity: 1 !important;
|
||||
grid-area: s;
|
||||
}
|
||||
|
||||
/* Address bar */
|
||||
|
||||
#urlbar-container {
|
||||
--urlbar-container-height: 34px !important;
|
||||
margin-top: -2px !important;
|
||||
margin-inline: 3px !important;
|
||||
}
|
||||
|
||||
#urlbar {
|
||||
margin: 1px 0 !important;
|
||||
}
|
||||
|
||||
#urlbar .urlbarView-row-inner {
|
||||
padding-block: 4px !important;
|
||||
}
|
||||
|
||||
#urlbar .search-one-offs:not([hidden]){
|
||||
#urlbar .search-one-offs:not([hidden]) {
|
||||
padding-block: 4px !important;
|
||||
}
|
||||
|
||||
@@ -140,7 +154,6 @@
|
||||
padding: 0 !important;
|
||||
-moz-padding-start: 0 !important;
|
||||
-moz-padding-end: 0 !important;
|
||||
border-top: 1px solid var(--chrome-content-separator-color) !important;
|
||||
background-color: #0E0E0E !important;
|
||||
z-index: 1000 !important;
|
||||
}
|
||||
|
@@ -12,12 +12,19 @@
|
||||
- { name: "highlighted-yank" , repo: "https://github.com/machakann/vim-highlightedyank.git" }
|
||||
- { name: "indent-object" , repo: "https://github.com/michaeljsmith/vim-indent-object.git" }
|
||||
- { name: "lightline" , repo: "https://github.com/itchyny/lightline.vim.git" }
|
||||
- { name: "paragraph-motion" , repo: "https://github.com/dbakker/vim-paragraph-motion.git" }
|
||||
- { name: "rainbow" , repo: "https://github.com/luochen1990/rainbow.git" }
|
||||
- { name: "repeat" , repo: "https://github.com/tpope/vim-repeat.git" }
|
||||
- { name: "replace-with-register" , repo: "https://github.com/vim-scripts/ReplaceWithRegister.git" }
|
||||
- { name: "sleuth" , repo: "https://github.com/tpope/vim-sleuth.git" }
|
||||
- { name: "surround" , repo: "https://github.com/tpope/vim-surround.git" }
|
||||
- { name: "visual-multi" , repo: "https://github.com/mg979/vim-visual-multi.git" }
|
||||
- { name: "visual-star-search" , repo: "https://github.com/nelstrom/vim-visual-star-search.git" }
|
||||
loop_control:
|
||||
label: "{{ item.name }}"
|
||||
|
||||
- name: Delete unused vim plugins
|
||||
file:
|
||||
path: "~/.vim/pack/plugins/start/{{ item }}"
|
||||
state: absent
|
||||
loop:
|
||||
- "replace-with-register"
|
||||
|
Reference in New Issue
Block a user