1
0
mirror of https://github.com/chylex/dotfiles.git synced 2026-02-14 15:06:13 +01:00

Compare commits

..

33 Commits

Author SHA1 Message Date
87894a11b5 Update .vimrc (prevent deleting whitespace on empty lines when exiting Normal mode) 2026-01-31 05:32:47 +01:00
d476fb1e73 Update .bashrc (fix tmux mouse and keyboard issues after exiting ssh) 2026-01-15 06:41:14 +01:00
f5c5ce694c Update .vimrc (disable fuzzy completion on old Vim versions) 2026-01-15 05:12:28 +01:00
a2d3fc277d Update .bashrc (improve history with multiple sessions) 2026-01-15 04:52:13 +01:00
ca62ab26f8 Update .bashrc (fix bind warning in non-interactive shells) 2026-01-15 04:33:49 +01:00
31f48f8934 Update .vimrc (disable joinspaces) 2025-12-09 13:36:47 +01:00
fccc21fd41 Update .vimrc (completion bindings) 2025-12-09 13:04:59 +01:00
b7c2d47407 Update .ideavimrc (add binding to pin editor tab) 2025-11-24 09:48:08 +01:00
c17b6235ac Update .ideavimrc (add binding to add caret on all selected lines) 2025-11-24 09:47:43 +01:00
c9c8216e64 Update .ideavimrc (change binding to extend/shrink selection) 2025-09-30 15:37:36 +02:00
21904bbb62 Update .vimrc & .ideavimrc (change binding to navigate to the end of previous word) 2025-09-30 15:37:36 +02:00
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
3 changed files with 183 additions and 48 deletions

15
.bashrc
View File

@@ -1,8 +1,14 @@
bind "set completion-ignore-case on" if [[ $- = *i* ]]; then
bind "set show-all-if-ambiguous on" bind "set completion-ignore-case on"
bind "set show-all-if-ambiguous on"
bind '"\e[A": history-search-backward' bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward' bind '"\e[B": history-search-forward'
fi
shopt -s histappend
HISTCONTROL=ignoreboth
PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
alias gh='history|grep' alias gh='history|grep'
alias less='less -R --mouse' alias less='less -R --mouse'
@@ -34,6 +40,7 @@ function ssh() {
tmux rename-window -t"${TMUX_PANE}" "$*" tmux rename-window -t"${TMUX_PANE}" "$*"
command ssh "$@" command ssh "$@"
tmux set-window-option automatic-rename "on" tmux set-window-option automatic-rename "on"
vim +q # Fix terminal
else else
command ssh "$@" command ssh "$@"
fi fi

View File

@@ -47,12 +47,22 @@ sethandler <C-Y> a:ide
sethandler <C-\> a:ide sethandler <C-\> a:ide
sethandler <A-B> a:vim sethandler <A-B> a:vim
sethandler <A-E> a:vim
sethandler <A-H> a:vim sethandler <A-H> a:vim
sethandler <A-J> a:vim
sethandler <A-K> a:vim
sethandler <A-L> a:vim sethandler <A-L> a:vim
sethandler <A-M> a:vim
sethandler <A-N> a:vim sethandler <A-N> a:vim
sethandler <A-O> a:vim sethandler <A-O> a:vim
sethandler <A-P> a:vim sethandler <A-P> a:vim
sethandler <A-S-B> a:vim sethandler <A-S-B> a:vim
sethandler <A-S-E> 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-M> a:vim
sethandler <A-S-O> a:vim sethandler <A-S-O> a:vim
sethandler <A-V> a:vim sethandler <A-V> a:vim
sethandler <A-X> a:vim sethandler <A-X> a:vim
@@ -65,6 +75,17 @@ sethandler <C-S-W> a:vim
sethandler <C-U> a:vim sethandler <C-U> a:vim
sethandler <S-BS> 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) " Enable plugins (https://github.com/JetBrains/ideavim/wiki/IdeaVim-Plugins)
Plug 'argtextobj.vim' Plug 'argtextobj.vim'
Plug 'vim-exchange' Plug 'vim-exchange'
@@ -91,24 +112,35 @@ map í 9
map é 0 map é 0
" Move some commands closer on Czech keyboard layout " Move some commands closer on Czech keyboard layout
nnoremap ú @@
noremap § ;
map ů % map ů %
map gů g% nnoremap ú @@
noremap , +
" Camel humps noremap § `
noremap §§ ``
nnoremap m§ m
sunmap ů
sunmap §
" Enter visual block mode
map <A-v> <C-v>
" Navigate camel humps
noremap L [w noremap L [w
noremap H [b noremap H [b
nnoremap L [w nnoremap L [w
nnoremap H [b nnoremap H [b
" Navigate to end of previous word " Navigate to end of previous word
noremap <A-b> ge noremap <A-e> ge
noremap <A-S-b> gE noremap <A-S-e> gE
" Increment/decrement numbers " Navigate unmatched parentheses/braces
noremap <Bar>+ <C-a> noremap g( [(
noremap <Bar>- <C-x> noremap g) ])
noremap g{ [{
noremap g} ]}
" Edit from cursor to start/end of parenthesized block " Edit from cursor to start/end of parenthesized block
nnoremap c) c]) nnoremap c) c])
@@ -117,23 +149,27 @@ nnoremap c( c[((
nnoremap d( c[((<Esc>l nnoremap d( c[((<Esc>l
" Create lines " Create lines
nnoremap <A-o> o<Esc>$ nnoremap go o<Esc>$
nnoremap <A-S-o> O<Esc>$ nnoremap gO O<Esc>$
nnoremap g<CR> i<CR><Esc>l
" Delete lines " Edit current line
nnoremap C cc nnoremap C cc
xnoremap C cc xnoremap C cc
nnoremap D dd nnoremap D dd
xnoremap D dd xnoremap D dd
nnoremap < <<
" Enter visual block mode nnoremap > >>
map <A-v> <C-v>
" Indent keeping selection " Indent keeping selection
xnoremap < <gv xnoremap < <gv
xnoremap > >gv xnoremap > >gv
xnoremap = =gv xnoremap = =gv
" Extend selection
map <A-m> <Action>(EditorSelectWord)
map <A-S-m> <Action>(EditorUnSelectWord)
" Turn capital letters into opposite actions " 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
@@ -147,6 +183,11 @@ xnoremap P p
" Clear search highlights " Clear search highlights
nnoremap <Esc> :nohlsearch<Return><Esc> nnoremap <Esc> :nohlsearch<Return><Esc>
" Code completion
if &ide !~? 'rider'
imap <expr> ! pumvisible() ? '<Action>(EditorChooseLookupItem)<Esc>mzF.bi!<Esc>`zla' : '!'
endif
" Show parameter info " Show parameter info
nmap <A-p> <Action>(ParameterInfo) nmap <A-p> <Action>(ParameterInfo)
imap <A-p> <Action>(ParameterInfo) imap <A-p> <Action>(ParameterInfo)
@@ -167,12 +208,29 @@ map ] <Action>(MethodDown)
map { <Plug>(ParagraphPrevMotion)$ map { <Plug>(ParagraphPrevMotion)$
map } <Plug>(ParagraphNextMotion)$ 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)'
xmap gl <Action>(EditorAddCaretPerSelectedLine)
" Manage editor tabs " Manage editor tabs
map <C-w>m <Action>(MoveEditorToOppositeTabGroup) map <C-w>m <Action>(MoveEditorToOppositeTabGroup)
map <C-w>s <Action>(MoveTabDown) map <C-w>s <Action>(MoveTabDown)
map <C-w>u <Action>(Unsplit) map <C-w>u <Action>(Unsplit)
map <C-w>U <Action>(UnsplitAll) map <C-w>U <Action>(UnsplitAll)
map <C-w>v <Action>(MoveTabRight) map <C-w>v <Action>(MoveTabRight)
map <C-w>p <Action>(PinActiveEditorTab)
noremap <C-w>S <C-w>s noremap <C-w>S <C-w>s
noremap <C-w>V <C-w>v noremap <C-w>V <C-w>v
@@ -203,8 +261,6 @@ map ge <Action>(VcsShowNextChangeMarker)
map gE <Action>(VcsShowPrevChangeMarker) map gE <Action>(VcsShowPrevChangeMarker)
map gf <Action>(VimJumpToSource)<Action>(HideActiveWindow) map gf <Action>(VimJumpToSource)<Action>(HideActiveWindow)
map gi <Action>(GotoImplementation) map gi <Action>(GotoImplementation)
map gj <Action>(EditorCloneCaretBelow)
map gk <Action>(EditorCloneCaretAbove)
map gr <Action>(RecentLocations) map gr <Action>(RecentLocations)
map gR <Action>(RecentChangedFiles) map gR <Action>(RecentChangedFiles)
map gs <Action>(GotoSuperMethod) map gs <Action>(GotoSuperMethod)
@@ -213,8 +269,6 @@ map gt gg<Action>(KM.GotoNextTypeInFile)
map gT <Action>(KM.GotoNextTypeInFile) map gT <Action>(KM.GotoNextTypeInFile)
map gu <Action>(ShowUsages) map gu <Action>(ShowUsages)
map gU <Action>(FindUsages) map gU <Action>(FindUsages)
map g( <Action>(KM.GotoPreviousErrorInOtherMode)
map g) <Action>(KM.GotoNextErrorInOtherMode)
" Repurpose 'z' for view actions and debugger " Repurpose 'z' for view actions and debugger
map za <Action>(Annotate) map za <Action>(Annotate)

124
.vimrc
View File

@@ -1,5 +1,9 @@
set autoindent set autoindent
set backspace=indent,eol,start
set completeopt=menuone,preview
set encoding=utf-8 set encoding=utf-8
set guifont=Cascadia_Mono:h12:cANSI:qDRAFT
set guioptions-=t " Remove menu tearoff
set history=1024 set history=1024
set hlsearch set hlsearch
set ignorecase set ignorecase
@@ -7,19 +11,23 @@ set incsearch
set infercase set infercase
set laststatus=2 set laststatus=2
set linebreak set linebreak
set listchars=space,tab:>·,trail:~,extends:>,precedes:< set list
set listchars=lead,trail,tab:→\ ,extends:>,precedes:<
set modeline set modeline
set modelines=2 set modelines=2
set mouse=a set mouse=a
set noerrorbells set noerrorbells
set nojoinspaces
set noshowcmd set noshowcmd
set noshowmode set noshowmode
set number
set nrformats-=octal set nrformats-=octal
set number
set relativenumber set relativenumber
set scrolloff=999 set scrolloff=999
set shiftwidth=0 set shiftwidth=0
set showbreak= set shortmess-=S " Show search count
set shortmess-=l " Show full description for lines and bytes
set showbreak=↪\
set showmatch set showmatch
set sidescrolloff=999 set sidescrolloff=999
set smartcase set smartcase
@@ -27,22 +35,44 @@ set tabstop=4
set ttimeout set ttimeout
set ttimeoutlen=50 set ttimeoutlen=50
set ttymouse=xterm2 set ttymouse=xterm2
set virtualedit=onemore
set wildmenu set wildmenu
set winaltkeys=no
set wrap set wrap
" Show full description for lines and bytes if has("patch-9.1.0463")
set shortmess-=l set completeopt+=fuzzy
endif
" Show search count " Windows paths
set shortmess-=S set packpath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME
set runtimepath=$HOME/.vim,$VIM/vimfiles,$VIMRUNTIME
" Color scheme " Color scheme
syntax enable syntax enable
colorscheme custom
highlight LineNr ctermfg=244 if has("gui_running")
highlight IncSearch ctermfg=251 ctermbg=238 colorscheme retrobox
highlight Search ctermfg=251 ctermbg=238 highlight NonText ctermfg=14 guifg=#7c6f64
highlight Visual ctermfg=240 ctermbg=250 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) " Fix Alt mappings (https://github.com/vim/vim/issues/2588#issuecomment-697959290)
for ord in range(65, 90) + range(97, 122) for ord in range(65, 90) + range(97, 122)
@@ -68,13 +98,21 @@ map í 9
map é 0 map é 0
" Move some commands closer on Czech keyboard layout " Move some commands closer on Czech keyboard layout
nnoremap ú @@
noremap § ;
map ů % map ů %
map g% nnoremap ú @@
sunmap ů noremap , +
" Camel humps (https://github.com/vim-scripts/camelcasemotion) noremap § `
noremap §§ ``
nnoremap m§ m
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 L <Plug>CamelCaseMotion_w
map H <Plug>CamelCaseMotion_b map H <Plug>CamelCaseMotion_b
sunmap L sunmap L
@@ -86,8 +124,8 @@ omap iH <Plug>CamelCaseMotion_ib
xmap iH <Plug>CamelCaseMotion_ib xmap iH <Plug>CamelCaseMotion_ib
" Navigate to end of previous word " Navigate to end of previous word
noremap <M-b> ge noremap <M-e> ge
noremap <M-S-b> gE noremap <M-S-e> gE
" Navigate soft-wrapped lines " Navigate soft-wrapped lines
nnoremap <expr> j v:count ? 'j' : 'gj' nnoremap <expr> j v:count ? 'j' : 'gj'
@@ -95,6 +133,17 @@ xnoremap <expr> j v:count ? 'j' : 'gj'
nnoremap <expr> k v:count ? 'k' : 'gk' nnoremap <expr> k v:count ? 'k' : 'gk'
xnoremap <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 " Edit from cursor to start/end of parenthesized block
nnoremap c) c]) nnoremap c) c])
nnoremap d) d]) nnoremap d) d])
@@ -102,17 +151,17 @@ nnoremap c( c[((
nnoremap d( c[((<Esc>l nnoremap d( c[((<Esc>l
" Create lines " Create lines
nnoremap <M-o> o<Esc>$ nnoremap go o<Esc>$
nnoremap <M-S-o> O<Esc>$ " TODO does not leave insert mode properly? nnoremap gO O<Esc>$
nnoremap g<CR> i<CR><Esc>l
" Delete lines " Edit current line
nnoremap C cc nnoremap C cc
xnoremap C cc xnoremap C cc
nnoremap D dd nnoremap D dd
xnoremap D dd xnoremap D dd
nnoremap < <<
" Enter visual block mode nnoremap > >>
map <M-v> <C-v>
" Indent keeping selection " Indent keeping selection
xnoremap < <gv xnoremap < <gv
@@ -132,6 +181,31 @@ xnoremap P p
" Clear search highlights " Clear search highlights
nnoremap <Esc> :nohlsearch<Return><Esc> nnoremap <Esc> :nohlsearch<Return><Esc>
" Prevent deleting whitespace on empty lines when exiting Normal mode
inoremap <silent> <Esc> <C-O>:stopinsert<CR>
" Completion
inoremap <C-Space> <C-n>
inoremap <expr> j pumvisible() ? '<C-n>' : 'j'
inoremap <expr> k pumvisible() ? '<C-p>' : 'k'
inoremap <expr> <Esc> pumvisible() ? '<C-e>' : '<Esc>'
inoremap <expr> <Enter> pumvisible() ? '<C-y>' : '<Enter>'
" 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 " Update search register when using f/t
function FindChar(action, reverse, search_affix) function FindChar(action, reverse, search_affix)
let t:reverse_search = a:reverse let t:reverse_search = a:reverse