1
0
mirror of https://github.com/chylex/dotfiles.git synced 2025-09-14 18:32:10 +02:00

Compare commits

..

95 Commits

Author SHA1 Message Date
d76b82721d Update .vimrc (disable bell sound) 2025-09-10 14:04:01 +02:00
580a47aa9b Update .ideavimrc (work around broken shortcuts in Rider) 2025-08-18 23:38:28 +02:00
946f464aca Update .vimrc (use Ctrl-S to save) 2025-08-17 10:01:24 +02:00
1e5c7a752e Update .vimrc (fix pasting via Ctrl-V in insert mode) 2025-08-17 09:51:13 +02:00
c1fac762be Update .ideavimrc (add bindings to move statement/element) 2025-08-15 18:45:41 +02:00
8cd0b37833 Update .ideavimrc (add bindings to extend/shrink selection) 2025-08-15 02:34:16 +02:00
5cbaf5587d Update .vimrc & .ideavimrc (indent current line with just '<' or '>') 2025-08-06 23:47:48 +02:00
7b5bbf7bb7 Update .vimrc & .ideavimrc (fix 'ů' mapping with matchit) 2025-07-28 02:01:32 +02:00
6d1840a48c Update .vimrc (always show leading and trailing spaces) 2025-07-22 13:34:25 +02:00
4a77b0588b Update .vimrc & .ideavimrc (move some commands closer on Czech keyboard layout) 2025-07-20 12:41:39 +02:00
a9bfe13277 Update .vimrc (fix Ctrl-A in visual mode) 2025-07-20 09:14:12 +02:00
be2bdafe78 Update .vimrc (selection & clipboard) 2025-07-08 16:25:26 +02:00
cda970bfc2 Update .vimrc (GUI configuration & consistency) 2025-07-08 16:25:26 +02:00
80e5b074c9 Update .ideavimrc (disable binding to negate code completion in Rider) 2025-06-17 07:37:53 +02:00
60cb335c9a Update .ideavimrc (add binding to negate code completion) 2025-06-11 19:27:53 +02:00
78866848be Update .vimrc & .ideavimrc (change bindings to create new lines) 2025-06-11 04:06:11 +02:00
f69bb44bfa Update .ideavimrc (remove custom increment/decrement binding) 2025-05-28 21:34:14 +02:00
6c4c99a98d Update .vimrc & .ideavimrc (use 'g' for navigating unmatched parentheses/brackets) 2025-05-28 21:32:04 +02:00
0023b10571 Update .ideavimrc (use Alt-J/K to navigate code completion popups) 2025-05-18 21:26:28 +02:00
4fa0da63e8 Update .vimrc & .ideavimrc (split line) 2025-05-16 16:59:12 +02:00
eb54e7d636 Update .vimrc & .ideavimrc (bind gj/gk to j/k) 2025-05-16 16:59:12 +02:00
2a8dbc57ec Update .ideavimrc (set handler for arrow shortcuts) 2025-04-25 12:58:11 +02:00
713fb10dab Update .ideavimrc (simplify navigating between methods) 2025-04-02 13:21:33 +02:00
ca8bc186b2 Update .bashrc (handle ANSI color codes in less/zless) 2025-02-20 07:03:05 +01:00
534ea4a4f1 Update Firefox userChrome.css 2024-11-22 08:04:46 +01:00
2aebc2deeb Update .vimrc and .ideavimrc (add bindings to create lines in normal mode) 2024-10-18 00:06:27 +02:00
c83891317f Update .ideavimrc (make more actions usable in visual mode) 2024-10-12 08:50:38 +02:00
5ce16f984f Update .ideavimrc (allow jumping to source even in visual mode) 2024-09-19 06:34:36 +02:00
83d12be425 Update .ideavimrc (enable search highlights) 2024-09-08 18:21:13 +02:00
c0c7eccc1d Update .ideavimrc (fix camel hump navigation) 2024-08-24 15:03:48 +02:00
abc7112e75 Update .ideavimrc (fix camel hump navigation) 2024-08-14 11:56:04 +02:00
21e38d0d08 Update .ideavimrc (disable ideaput) 2024-08-11 10:58:53 +02:00
a43aae61e8 Update .vimrc (fix searching special characters with n/N & make search independent of case sensitivity setting) 2024-07-14 14:57:13 +02:00
c9c9c0223e Update .vimrc (improve t/T behavior with n/N) 2024-07-08 04:56:54 +02:00
a3c4fe7259 Update .vimrc and .ideavimrc (fix inconsistency in capitalization) 2024-07-07 07:14:48 +02:00
67c485da65 Update .ideavimrc (add mapping for Compare with Clipboard) 2024-07-07 04:07:01 +02:00
62edd5222d Update .ideavimrc (remove bindings to Extend/Shrink selection) 2024-07-06 18:05:57 +02:00
1aa9bde933 Update .vimrc (update search register when using f/t) 2024-07-06 17:56:44 +02:00
0bcdaaa077 Update .vimrc (clear search highlights with Escape) 2024-07-06 16:01:44 +02:00
9fa73b1ba8 Update .ideavimrc (disable NERDTree) 2024-05-07 02:09:05 +02:00
e7dca24993 Update .ideavimrc (add call hierarchy support for Rider) 2024-03-30 13:35:57 +01:00
ac9b1d4248 Update .ideavimrc (use ShowHoverInfo instead of QuickJavaDoc) 2024-02-18 20:05:25 +01:00
41840c7b33 Update .ideavimrc (map +/- in visual mode to Extend/Shrink selection) 2024-02-18 18:46:48 +01:00
939134dc49 Update .ideavimrc (remap NERDTree bindings) 2024-02-15 07:55:27 +01:00
1bc97f78b6 Update .tmux.conf (add Ctrl-V / Alt-V to toggle block selection) 2024-01-25 15:08:20 +01:00
6681099e47 Update .ideavimrc (remove custom G bindings) 2024-01-24 02:15:23 +01:00
0903e926bb Update .vimrc & .ideavimrc (swap ů/§ and add matchit mapping) 2024-01-24 02:05:38 +01:00
14aa43ede4 Update .vimrc (fix Alt bindings and bring over several Alt mappings from .ideavimrc) 2023-12-05 05:01:08 +01:00
cab52d34b1 Update .ideavimrc (use Alt-V to enter visual block mode) 2023-12-05 04:57:08 +01:00
4203b6e583 Update .ideavimrc (fix comment breaking "gf" mapping) 2023-11-21 09:41:44 +01:00
af2f87c518 Update .vimrc (enable modeline) 2023-11-20 05:13:51 +01:00
daea01656e Update .ideavimrc (update mappings for type navigation & add mapping for String Manipulation) 2023-11-18 12:22:43 +01:00
35ba420d83 Update .bashrc (open multiple files in tabs in vim) 2023-11-18 07:13:22 +01:00
f66f0990ff Update .ideavimrc (remove bindings for navigating tabs) 2023-11-18 07:13:22 +01:00
96e832c9cc Update .ideavimrc (tweak mappings for tab management) 2023-11-18 07:13:22 +01:00
7ca80f443f Update .ideavimrc (add AceJump binding to jump to declaration) 2023-11-17 13:08:39 +01:00
19d10e7428 Update .ideavimrc (migrate from :raction to <Action>) 2023-11-17 13:08:19 +01:00
e0b0194256 Update .ideavimrc (use Ctrl instead of Alt for navigating editor tabs) 2023-11-17 07:18:29 +01:00
b739008bc5 Update .ideavimrc (fix action to "Jump to Source" using a custom IdeaVIM version) 2023-11-15 01:23:23 +01:00
3c66f4c85b Update .ideavimrc (update tab management) 2023-11-14 22:56:25 +01:00
bd5fb52aa7 Update .ideavimrc (add missing handler) 2023-11-14 21:21:42 +01:00
8a7a591d68 Update .ideavimrc (restore square bracket commands & re-add bindings for next/previous method using IDEA action) 2023-11-14 13:50:51 +01:00
7ebb930f0b Add paragraph-motion plugin for vim 2023-11-14 13:37:21 +01:00
61f69a7774 Update .ideavimrc (navigate paragraphs at indentation level) 2023-11-14 13:36:49 +01:00
6c62422353 Update .ideavimrc (remove vim-based bindings to toggle comments) 2023-11-14 13:36:49 +01:00
1d9efca953 Update .ideavimrc (add actions for local/git history) 2023-11-14 13:36:43 +01:00
6ac6c169fa Update .ideavimrc (rebind tab management) 2023-11-09 21:25:21 +01:00
dc68b2d2a0 Update .ideavimrc (migrate from :action to Action) 2023-11-09 21:06:10 +01:00
8dcd87f989 Update .ideavimrc (add new custom g/m bindings) 2023-11-09 20:35:30 +01:00
d1e531074c Update .ideavimrc (add binding to add/remove comment) 2023-11-09 20:03:17 +01:00
50312ccf3b Update .ideavimrc (replace custom binding for curly brackets) 2023-11-09 14:20:25 +01:00
28098843d2 Update .ideavimrc (improve shortcut for previous/next method) 2023-11-09 14:19:52 +01:00
01e92b8cb2 Update .ideavimrc (make increment/decrement rebinds work in other modes) 2023-11-09 13:38:01 +01:00
ea590d93c1 Update .vimrc & .ideavimrc (enter visual block mode by pressing v in visual mode) 2023-11-08 02:49:24 +01:00
3286d65e8d Update .vimrc & .ideavimrc (reduce mappings interfering with select mode) 2023-11-08 02:49:24 +01:00
f700848658 Update .vimrc & .ideavimrc (use Space<char> for easymotion) 2023-11-08 02:49:24 +01:00
adcaeb0403 Update .vimrc & .ideavimrc (use native way of putting without overwriting register) 2023-11-08 01:51:08 +01:00
54284be64b Update .vimrc & .ideavimrc (fix Alt-B mapping in visual mode) 2023-11-08 01:48:10 +01:00
f271ae0d8f Update .ideavimrc (navigate back/forward) 2023-11-08 01:48:10 +01:00
014763826f Update .ideavimrc (navigate to hump ends in visual mode) 2023-11-08 01:48:10 +01:00
40748c3c68 Update .bashrc (rename tmux window for ssh connections & script formatting) 2023-10-29 14:17:12 +01:00
2368dc86c4 Update .ideavimrc (remove workaround for statement completion) 2023-10-20 01:07:23 +02:00
3fe3a9a285 Update .ideavimrc (make tab switching work in insert mode) 2023-10-20 00:02:19 +02:00
14691e4ed9 Update .ideavimrc (disable global mode) 2023-10-20 00:01:57 +02:00
3b7145539e Update .ideavimrc (remove Alt-Shift-N binding for multiple-cursors plugin) 2023-10-19 10:18:13 +02:00
df3e108327 Update .ideavimrc (add new and improved actions) 2023-10-19 06:46:13 +02:00
db429b3b30 Update .vimrc (various options) 2023-10-19 06:34:04 +02:00
569dc0caad Update .vimrc & .ideavimrc (fix alternative way to enter visual block mode in operator-pending mode) 2023-10-19 06:32:56 +02:00
8a5da89d0f Update .vimrc & .ideavimrc (remove navigating to indents) 2023-10-19 06:30:55 +02:00
2bd9758639 Update .vimrc & .ideavimrc (increment/decrement numbers) 2023-10-19 06:30:48 +02:00
9efdf74626 Update .ideavimrc (fix camel humps) 2023-10-19 06:29:00 +02:00
c31dbc308a Update .ideavimrc (IDE keybindings, WSL, comments) 2023-10-19 06:28:58 +02:00
63cd476e43 Update .ideavimrc (maximize scrolloff, enable global mode, enable nerdtree) 2023-10-05 06:05:51 +02:00
309f33a2e3 Update .vimrc (maximize scrolloff) 2023-10-05 06:02:33 +02:00
d0081f9b33 Update .vimrc (navigate soft-wrapped lines) 2023-10-05 06:02:33 +02:00
6 changed files with 492 additions and 213 deletions

28
.bashrc
View File

@@ -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

View File

@@ -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)

View File

@@ -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
View File

@@ -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

View File

@@ -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;
}

View File

@@ -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"