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

Compare commits

..

1 Commits

5 changed files with 155 additions and 338 deletions

View File

@@ -5,10 +5,8 @@ bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
alias gh='history|grep'
alias less='less -R --mouse'
alias zless='zless -R --mouse'
alias less='less --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'

View File

@@ -1,5 +1,3 @@
set clipboard-=ideaput
set hlsearch
set ignorecase
set incsearch
set number
@@ -31,8 +29,8 @@ 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-H> a:ide
sethandler <C-J> a:ide
sethandler <C-K> a:ide
sethandler <C-L> a:ide
@@ -41,49 +39,29 @@ 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 <C-W> a:vim
sethandler <C-S-W> 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 'nerdtree'
Plug 'vim-exchange'
Plug 'vim-highlightedyank'
Plug 'vim-indent-object'
@@ -108,66 +86,52 @@ map í 9
map é 0
" Move some commands closer on Czech keyboard layout
map ů %
nnoremap ú @@
noremap , +
noremap ů ;
map § %
noremap § `
noremap §§ ``
nnoremap m§ m
sunmap ů
sunmap §
" Enter visual block mode
map <A-v> <C-v>
" Navigate camel humps
" Camel humps
noremap L [w
noremap H [b
nnoremap L [w
nnoremap H [b
xnoremap L ]w
xnoremap H ]b
" 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} ]}
" Navigate editor tabs
noremap <C-h> gT
noremap <C-l> gt
inoremap <C-h> <C-o>gT
inoremap <C-l> <C-o>gt
" Increment/decrement numbers
noremap <Bar>+ <C-a>
noremap <Bar>- <C-x>
" 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
" Create lines
nnoremap go o<Esc>$
nnoremap gO O<Esc>$
nnoremap g<CR> i<CR><Esc>l
" Edit current line
" Delete lines
nnoremap C cc
xnoremap C cc
nnoremap D dd
xnoremap D dd
nnoremap < <<
nnoremap > >>
" Enter visual block mode
xnoremap v <C-V>
" Indent keeping selection
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`]
@@ -176,151 +140,147 @@ nnoremap gp `[v`]
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)
nmap <BS> <Action>(Back)
nmap <S-BS> <Action>(Forward)
" Navigate inspection highlights
map ( <Action>(GotoPreviousError)
map ) <Action>(GotoNextError)
nmap ( :raction GotoPreviousError<CR>
nmap ) :raction GotoNextError<CR>
" Navigate to previous/next method
map [ <Action>(MethodUp)
map ] <Action>(MethodDown)
nmap [[ :raction MethodUp<CR>
nmap ]] :raction MethodDown<CR>
" 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)
map <C-w> <Action>(CloseContent)
map <C-S-w> <Action>(ReopenClosedTab)
noremap <C-w>S <C-w>s
noremap <C-w>V <C-w>v
noremap \\ <C-w>
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)
noremap \\m :action MoveEditorToOppositeTabGroup<CR>
noremap \\s :action MoveTabDown<CR>
noremap \\S <C-w>s
noremap \\u :action Unsplit<CR>
noremap \\U :action UnsplitAll<CR>
noremap \\v :action MoveTabRight<CR>
noremap \\V <C-w>v
map \\ <C-w>
map \\\\ <C-w><C-w>
noremap \\\\a :action CloseAllEditors<CR>
noremap \\\\h :action CloseAllToTheLeft<CR>
noremap \\\\l :action CloseAllToTheRight<CR>
noremap \\\\o :action CloseAllEditorsButActive<CR>
" Rebind repurposed commands
noremap g] ]
noremap g[ [
nnoremap GG G
nnoremap dG dG
nnoremap cG cG
nnoremap M m
nnoremap Z z
" Repurpose 'Enter' for statement completion
" Repurpose 'Enter' for statement completion (requires a custom version of IdeaVIM)
nmap <Enter> <Action>(EditorCompleteStatement)
" 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 'g' for navigation (:raction requires a custom version of IdeaVIM)
nmap gb :raction GotoNextBookmark<CR>
nmap gB :raction GotoPreviousBookmark<CR>
nmap gD <Action>(GotoTypeDeclaration)
nmap ge :raction VcsShowNextChangeMarker<CR>
nmap gE :raction VcsShowPrevChangeMarker<CR>
nmap gf <Action>(VimJumpToSource)<Action>(HideActiveWindow) " VimJumpToSource requires a custom version of IdeaVIM
nmap gi <Action>(GotoImplementation)
map gj :raction EditorCloneCaretBelow<CR>
map gk :raction EditorCloneCaretAbove<CR>
nmap gr <Action>(RecentLocations)
nmap gR <Action>(RecentChangedFiles)
nmap gs <Action>(GotoSuperMethod)
nmap gS <Action>(ShowSiblings)
map gt :raction KM.GotoNextTypeInFile<CR>
map gT :raction KM.GotoPreviousTypeInFile<CR>
nmap gu <Action>(ShowUsages)
nmap gU <Action>(FindUsages)
nmap g( :raction KM.GotoPreviousErrorInOtherMode<CR>
nmap g) :raction KM.GotoNextErrorInOtherMode<CR>
" 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 Gt gt
nmap GT gT
map Gz gz
map GZ gZ
" Repurpose 'z' for view actions and debugger
map za <Action>(Annotate)
map zb <Action>(ViewBreakpoints)
map zc <Action>(EditorContextInfo)
map zd <Action>(CompareClipboardWithSelection)
map zd <Action>(QuickJavaDoc)
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)
map zht <Action>(TypeHierarchy)
map zhm <Action>(MethodHierarchy)
if &ide =~? 'rider'
map zhc <Action>(RiderShowIncomingCalls)
else
map zhc <Action>(CallHierarchy)
endif
nmap zhl <Action>(LocalHistory.ShowHistory)
xmap zhl <Action>(LocalHistory.ShowSelectionHistory)
nmap zhg <Action>(Vcs.ShowTabbedFileHistory)
xmap zhg <Action>(Vcs.ShowHistoryForBlock)
" 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)
map zm <Action>(ShowBookmarks)
map zp <Action>(QuickImplementations)
map zP <Action>(QuickTypeDefinition)
" Remap NERDTree bindings
let g:NERDTreeMapOpenVSplit = 'v'
let g:NERDTreeMapPreviewVSplit = 'gv'
let g:NERDTreeMapOpenSplit = 's'
let g:NERDTreeMapPreviewSplit = 'gs'
map zr <Action>(RunToCursor)
map zR <Action>(ForceRunToCursor)
map zt <Action>(ExpressionTypeInfo)
map zx <Action>(EvaluateExpression)
" Repurpose 'm' for refactoring (normal mode)
nmap md <Action>(SafeDelete)
nmap me <Action>(Move)
nmap mg <Action>(Generate)
nmap mi <Action>(Inline)
nmap mn <Action>(RenameElement)
nmap mo <Action>(OverrideMethods)
nmap ms <Action>(ChangeSignature)
nmap mS <Action>(NewScratchFile)
" Repurpose 'm' for refactoring (normal / visual mode)
nmap mc <Action>(IntroduceConstant)
xmap mc <Action>(IntroduceConstant)
nmap mf <Action>(IntroduceField)
xmap mf <Action>(IntroduceField)
nmap mm <Action>(ExtractMethod)
xmap mm <Action>(ExtractMethod)
nmap mM <Action>(ExtractFunction)
xmap mM <Action>(ExtractFunction)
nmap mp <Action>(IntroduceParameter)
xmap mp <Action>(IntroduceParameter)
nmap mP <Action>(IntroduceProperty)
xmap mP <Action>(IntroduceProperty)
nmap mr <Action>(Refactorings.QuickListPopupAction)
xmap mr <Action>(Refactorings.QuickListPopupAction)
nmap mt <Action>(InsertLiveTemplate)
xmap mt <Action>(SurroundWithLiveTemplate)
nmap mv <Action>(IntroduceVariable)
xmap mv <Action>(IntroduceVariable)
nmap mw <Action>(SurroundWith)
xmap mw <Action>(SurroundWith)
" Actions for custom version of AceJump
set acejump
map <Space> <Action>(AceVimAction_JumpAllEditors)
map g<Space> <Action>(AceVimAction_JumpAllEditors_GoToDeclaration)

View File

@@ -6,8 +6,6 @@ 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

166
.vimrc
View File

@@ -1,8 +1,5 @@
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
@@ -10,74 +7,39 @@ set incsearch
set infercase
set laststatus=2
set linebreak
set list
set listchars=lead,trail,tab:→\ ,extends:>,precedes:<
set modeline
set modelines=2
set listchars=space,tab:>·,trail:~,extends:>,precedes:<
set mouse=a
set noerrorbells
set nomodeline
set noshowcmd
set noshowmode
set nrformats-=octal
set number
set nrformats-=octal
set relativenumber
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 showbreak=
set showmatch
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
" Windows paths
set packpath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME
set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME
" Show full description for lines and bytes
set shortmess-=l
" Show search count
set shortmess-=S
" Color scheme
syntax enable
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
@@ -92,21 +54,12 @@ map í 9
map é 0
" Move some commands closer on Czech keyboard layout
map ů %
nnoremap ú @@
noremap , +
noremap § `
noremap §§ ``
nnoremap m§ m
sunmap ů
noremap ů ;
map § %
sunmap §
" Enter visual block mode
noremap <M-v> <C-v>
" Navigate camel humps (https://github.com/vim-scripts/camelcasemotion)
" Camel humps (https://github.com/vim-scripts/camelcasemotion)
map L <Plug>CamelCaseMotion_w
map H <Plug>CamelCaseMotion_b
sunmap L
@@ -118,8 +71,8 @@ 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
noremap <A-b> ge
noremap <A-S-b> gE
" Navigate soft-wrapped lines
nnoremap <expr> j v:count ? 'j' : 'gj'
@@ -127,35 +80,20 @@ 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
" Create lines
nnoremap go o<Esc>$
nnoremap gO O<Esc>$
nnoremap g<CR> i<CR><Esc>l
" Edit current line
" Delete lines
nnoremap C cc
xnoremap C cc
nnoremap D dd
xnoremap D dd
nnoremap < <<
nnoremap > >>
" Enter visual block mode
xnoremap v <C-V>
" Indent keeping selection
xnoremap < <gv
@@ -172,71 +110,6 @@ nnoremap gp `[v`]
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
nmap <Space> <Plug>(easymotion-overwin-f)
xmap <Space> <Plug>(easymotion-s)
@@ -247,3 +120,4 @@ let g:highlightedyank_highlight_duration = 500
" Plugin: https://github.com/luochen1990/rainbow
let g:rainbow_active = 1

View File

@@ -57,10 +57,6 @@
/* Tabs & toolbars */
#navigator-toolbox {
border-bottom: none !important;
}
#toolbar-menubar {
min-height: 21px !important;
}
@@ -108,28 +104,18 @@
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;
}
@@ -154,6 +140,7 @@
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;
}