diff --git a/home/.vimrc b/home/.vimrc index 9f7f10d..d54a0c2 100644 --- a/home/.vimrc +++ b/home/.vimrc @@ -1,40 +1,52 @@ +" GENERAL CONFIGS ---------------------------------------------------------------------------------- syntax on " syntax highlighting - set nocompatible " disable compatibility to old-time vi -set mouse=v " middle-click paste with set number set nocompatible set hlsearch " highlight search set incsearch " incremental search set tabstop=4 " number of columns occupied by a tab -set softtabstop=4 " see multiple spaces as tabstops so does the right thing +set softtabstop=4 " see multiple spaces as tab stops so does the right thing set expandtab " converts tabs to white space -set shiftwidth=4 " width for autoindents +set shiftwidth=4 " width for auto indents set autoindent " indent a new line the same amount as the line just typed set number " add line numbers set wildmode=longest,list " get bash-like tab completions set cc=100 " set an 100 column border for good coding style -set mouse=a " enable mouse click -set cursorline " highlight current cursorline +set mouse=a " enable mouse for help file editing and hitting prompts +set cursorline " highlight current cursor line set ttyfast " Speed up scrolling in Vim -set fdm=indent " foldingmethod syntax -set foldlevel=10 " only fold when a certain complexity is reached by default. This applies only at startup. -"set spell " enable spell check (may need to download language package) -set timeout timeoutlen=400 +set fdm=indent " folding method syntax +set foldlevel=10 " only fold when a certain complexity is reached by default. + " This applies only at startup. +set numberwidth=4 " How much space the line numbers should take +set signcolumn=yes " Show extra icons in the line numbers (like git marks, errors) +set timeout timeoutlen=400 " How long to wait for non prefix free hotkey melodies set ttimeoutlen=0 -" Avoid showing message extra message when using completion" +" Avoid showing message extra message when using completion set shortmess+=c -" set timeout to wait for shortcuts with a prefix + +"allow auto-indenting depending on file type +filetype plugin indent on +filetype plugin on + + +let g:indentLine_char = '│' + +" HOTKEYS ------------------------------------------------------------------------------------------ +" add lines with double o noremap oo o noremap OO O " H and L for end and beginning nmap H ^ nmap L $ +vmap H ^ +vmap L $ -" usefull functions for arrow keys -" (and force the user to use hjkl) +" useful functions for arrow keys +" (and force the user to use `hjkl`) " right/left to add/remove a tab in the beginning of the line. nmap << @@ -44,13 +56,19 @@ vmap >gv " up and down move lines up and down -nmap :m -1 +nmap :m -2 nmap :m +1 " same for visual mode (plus reselecting stuff for visual mode) -vmap :m -1 +vmap :m -2 vmap :m +1 -" hit f3 to toggle search highlighting" +" resize windows +nnoremap :vertical resize -1 +nnoremap :vertical resize +1 +nnoremap :resize -1 +nnoremap :resize +1 + +" hit F3 to toggle search highlighting" nnoremap :set hlsearch! nnoremap @@ -58,7 +76,7 @@ let mapleader=" " map t :echo "leader tested!" map h :noh -" copy to wayland clipboard when leader is used. (note, install gvim for this) +" copy to Wayland clipboard when leader is used. (note, install gvim for this) vnoremap wy y :call system("wl-copy", @") nnoremap wY Y :call system("wl-copy", @") nnoremap wy y :call system("wl-copy", @") @@ -70,31 +88,64 @@ nnoremap Y "+Y nnoremap y "+y nnoremap yy "+yy -" dont write the pastet upon stuff in visual mode into the register +" don't write the pasted upon stuff in visual mode into the register vnoremap p pgvy " open terminal with F12 nnoremap :terminal -" automatically set closed braces aswell when making opened ones. -"inoremap " "" -"inoremap ' '' -"inoremap ( () -"inoremap [ [] -"inoremap { {} -"inoremap { {}O -"inoremap {; {};O - " vsplit with , then " map " :vsplit " split with , then %" map % :split -" enter normal mode from terminal-emulator width -tnoremap +" join with j +nnoremap j :join +" join up with J +nnoremap J :move .-2 :join -" :W to write file as root" -command W :w ! sudo tee % -" Set completeopt to have a better completion experience" -set completeopt=menuone,noinsert,noselect +" split lines with s +nnoremap s i +" split lines up with S +nnoremap S i V:m -2 + +" move screen a line up/down with alt U/D +nmap kzz +nmap jzz + +" spell checking ----------------------------------------------------------------------------------- +set spell spelllang=en + +" set a location +set spellfile=~/.config/nvim/spell/en.utf-8.add + +" go to last or next misspelled word +nnoremap zn ]s +nnoremap zN [s + +" same as above but only with bad words (unrecognized) +nnoremap Zn ]S +nnoremap ZN [S + +" mark correct with zg, mark bad with zw, undo with zug/zuw + +" fancy fzf correct with zc, default is z= but that sucks for qwertz keyboards +function! FzfSpellSink(word) + exe 'normal! "_ciw'.a:word +endfunction +function! FzfSpell() + let suggestions = spellsuggest(expand("")) + return fzf#run({'source': suggestions, 'sink': function("FzfSpellSink"), 'down': 10 }) +endfunction +nnoremap z :call FzfSpell() + +" don't make things written as `something` a typo +syntax region cBackTickNoSpell start=+`+ end=+`+ + \ contained containedin=cComment,cCommentL transparent + \ contains=@NoSpell + +" don't make lines starting with `//!` a typo (used by rust docs) +syntax region cRusDocCommentNoSpell start=+//!+ end='\z1' contained extend + \ contained containedin=cComment,cCommentL transparent + \ contains=@NoSpell diff --git a/home/.zsh-distrobox/zshrc b/home/.zsh-distrobox/zshrc index de5fd0f..5f5d6d1 100644 --- a/home/.zsh-distrobox/zshrc +++ b/home/.zsh-distrobox/zshrc @@ -8,6 +8,7 @@ fi ### ENVVARS export EDITOR=nvim export editor=nvim +export XDG_CONFIG_HOME=~/.config # configure `time` format TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S\ncpu\t%P' diff --git a/home/.zsh-kali/zshrc b/home/.zsh-kali/zshrc index 1db69c6..9f2449e 100644 --- a/home/.zsh-kali/zshrc +++ b/home/.zsh-kali/zshrc @@ -9,6 +9,7 @@ fi export PATH=/usr/local/sbin:/usr/sbin/:/usr/local/bin:/usr/bin:/var/lib/flatpak/exports/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:~/.local/bin:~/.cargo/bin export EDITOR=nvim export editor=nvim +export XDG_CONFIG_HOME=~/.config # configure `time` format TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S\ncpu\t%P' diff --git a/home/.zsh-server/zshrc b/home/.zsh-server/zshrc index 7cae768..b123062 100644 --- a/home/.zsh-server/zshrc +++ b/home/.zsh-server/zshrc @@ -2,6 +2,7 @@ export PATH=/usr/local/sbin:/usr/sbin/:/usr/local/bin:/usr/bin:~/.local/bin:~/.cargo/bin export EDITOR=vim export editor=vim +export XDG_CONFIG_HOME=~/.config # configure `time` format TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S\ncpu\t%P' diff --git a/home/.zsh/zshrc b/home/.zsh/zshrc index adaa98c..885c365 100644 --- a/home/.zsh/zshrc +++ b/home/.zsh/zshrc @@ -8,6 +8,7 @@ fi ### ENVVARS export PATH=/usr/local/sbin:/usr/sbin/:/usr/local/bin:/usr/bin:/var/lib/flatpak/exports/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:~/.local/bin:~/.cargo/bin export EDITOR=nvim +export XDG_CONFIG_HOME=~/.config export editor=nvim # configure `time` format diff --git a/kali-config.sh b/kali-config.sh index b2d1834..7ba9174 100755 --- a/kali-config.sh +++ b/kali-config.sh @@ -12,6 +12,8 @@ cp -r $(pwd)/home/.config ~ cp -r $(pwd)/home/.tmux-server.conf ~/.tmux.conf touch ~/.local.zsh -if [ tail -n 1 ~/.zshrc != "source ~/.zsh-kali/zshrc" ]; then +last_line=$(tail -n 1 ~/.zshrc) + +if [ $last_line != "source ~/.zsh-kali/zshrc" ]; then echo "source ~/.zsh-kali/zshrc" >> ~/.zshrc fi