2019-03-22 13:42:12 +01:00
|
|
|
|
" if tabular
|
2019-03-23 21:48:29 +01:00
|
|
|
|
vnoremap a= :Tabularize /=<CR>
|
|
|
|
|
|
vnoremap a; :Tabularize /::<CR>
|
|
|
|
|
|
vnoremap a- :Tabularize /-><CR>
|
2019-03-22 13:42:12 +01:00
|
|
|
|
|
|
|
|
|
|
nnoremap <C-p> :FZF<CR>
|
2020-04-16 19:28:17 +02:00
|
|
|
|
nnoremap <C-l> :Rg<CR>
|
2019-03-22 13:42:12 +01:00
|
|
|
|
let g:fzf_layout = { 'down': '~15%' }
|
|
|
|
|
|
|
2023-07-09 16:32:57 +02:00
|
|
|
|
|
2022-06-08 09:52:54 +02:00
|
|
|
|
colorscheme dim
|
2020-07-14 23:51:28 +02:00
|
|
|
|
" transparent background
|
|
|
|
|
|
hi Normal guibg=NONE ctermbg=NONE
|
2019-03-22 13:42:12 +01:00
|
|
|
|
|
|
|
|
|
|
let mapleader = ","
|
2020-05-15 08:06:14 +02:00
|
|
|
|
let maplocalleader="\\"
|
2019-03-22 13:42:12 +01:00
|
|
|
|
|
2020-05-15 08:06:14 +02:00
|
|
|
|
" noremap <Leader>h :<C-u>split<CR>
|
|
|
|
|
|
" noremap <Leader>v :<C-u>vsplit<CR>
|
2022-01-19 13:51:30 +01:00
|
|
|
|
noremap <Leader>gs :Git<CR>
|
2022-01-04 21:42:39 +01:00
|
|
|
|
noremap <Leader>gc :Git commit<CR>
|
2019-04-02 23:24:31 +02:00
|
|
|
|
noremap <leader>n :bn<CR>
|
|
|
|
|
|
noremap <leader>p :bp<CR>
|
|
|
|
|
|
noremap <leader>c :bd<CR>
|
2020-04-09 16:59:00 +02:00
|
|
|
|
noremap <leader>b :Buffers<CR>
|
|
|
|
|
|
noremap <leader>t :Tags<CR>
|
2019-04-02 23:24:31 +02:00
|
|
|
|
|
|
|
|
|
|
" reindent whole file
|
|
|
|
|
|
noremap <leader>i mzgg=G`z
|
|
|
|
|
|
|
2020-04-15 20:39:37 +02:00
|
|
|
|
" replace all
|
|
|
|
|
|
nnoremap S :%s//g<Left><Left>
|
|
|
|
|
|
|
2022-03-10 22:29:57 +01:00
|
|
|
|
" Hit `%` on `if` to jump to `else`.
|
|
|
|
|
|
runtime macros/matchit.vim
|
|
|
|
|
|
|
2019-03-22 13:42:12 +01:00
|
|
|
|
filetype plugin indent on
|
2022-03-10 22:29:57 +01:00
|
|
|
|
set autoindent
|
2019-05-13 07:22:58 +02:00
|
|
|
|
set notitle
|
2020-04-09 20:41:27 +02:00
|
|
|
|
set nospell
|
2020-05-19 14:59:25 +02:00
|
|
|
|
set smartcase ignorecase " you need these two
|
2022-03-10 22:29:57 +01:00
|
|
|
|
set backspace=indent,eol,start
|
|
|
|
|
|
set hidden
|
|
|
|
|
|
set ruler
|
2019-03-22 13:42:12 +01:00
|
|
|
|
set shiftwidth=2 tabstop=2 expandtab
|
2019-04-13 22:28:22 +02:00
|
|
|
|
set laststatus=1
|
2019-03-22 13:42:12 +01:00
|
|
|
|
set number
|
2019-04-13 22:28:22 +02:00
|
|
|
|
set path+=**
|
2020-04-15 20:39:37 +02:00
|
|
|
|
set splitbelow splitright
|
|
|
|
|
|
set wildmenu wildmode=longest,list,full
|
2023-07-09 16:32:57 +02:00
|
|
|
|
set shortmess+=ac
|
2019-03-22 13:42:12 +01:00
|
|
|
|
set nowritebackup noswapfile
|
|
|
|
|
|
set mouse=a
|
|
|
|
|
|
set showmatch
|
|
|
|
|
|
set encoding=utf8 ffs=unix,dos,mac
|
|
|
|
|
|
set smartindent
|
2020-05-31 18:25:57 +02:00
|
|
|
|
set wrap
|
2023-07-09 16:32:57 +02:00
|
|
|
|
set hlsearch
|
2019-03-22 13:42:12 +01:00
|
|
|
|
set clipboard=unnamedplus
|
|
|
|
|
|
set nopaste
|
2021-09-16 16:07:12 +02:00
|
|
|
|
set list listchars=tab:⇥\ ,extends:❯,precedes:❮,nbsp:␣,trail:· showbreak=¬
|
2019-03-22 13:42:12 +01:00
|
|
|
|
set foldlevelstart=30
|
|
|
|
|
|
|
2023-07-09 16:32:57 +02:00
|
|
|
|
nnoremap <C-H> :set nohlsearch
|
|
|
|
|
|
|
2019-08-26 16:41:10 +02:00
|
|
|
|
iabbrev ddate <C-R>=strftime("%F")<CR>
|
2022-01-04 21:42:39 +01:00
|
|
|
|
iabbrev dtime <C-R>=strftime("%F %T")<CR>
|
2019-08-26 16:41:10 +02:00
|
|
|
|
|
2023-07-04 21:44:32 +02:00
|
|
|
|
fun! TrimWhitespace()
|
|
|
|
|
|
let l:save = winsaveview()
|
|
|
|
|
|
keeppatterns %s/\s\+$//e
|
|
|
|
|
|
call winrestview(l:save)
|
|
|
|
|
|
endfun
|
|
|
|
|
|
command! TrimWhitespace call TrimWhitespace()
|
|
|
|
|
|
autocmd BufWritePre * if !&binary && &ft !=# 'mail'
|
|
|
|
|
|
\| call TrimWhitespace()
|
|
|
|
|
|
\| endif
|
|
|
|
|
|
|
2019-03-23 21:48:29 +01:00
|
|
|
|
let g:netrw_banner=0
|
|
|
|
|
|
let g:netrw_browse_split=4
|
|
|
|
|
|
let g:netrw_altv=1 " open splits to the right
|
|
|
|
|
|
let g:netrw_liststyle=3 " tree view
|
|
|
|
|
|
let g:netrw_list_hide=netrw_gitignore#Hide()
|
|
|
|
|
|
let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'
|
2023-02-07 22:30:42 +01:00
|
|
|
|
let g:netrw_winsize = 25
|
2019-03-22 13:42:12 +01:00
|
|
|
|
|
2022-01-04 21:42:39 +01:00
|
|
|
|
call matchadd('colorcolumn', '\%101v', 100)
|
|
|
|
|
|
highlight colorcolumn ctermbg=red
|
2019-03-22 13:42:12 +01:00
|
|
|
|
|
|
|
|
|
|
" undofile - This allows you to use undos after exiting and restarting
|
|
|
|
|
|
" This, like swap and backups, uses .vim-undo first, then ~/.vim/undo
|
|
|
|
|
|
" :help undo-persistence
|
|
|
|
|
|
if exists("+undofile")
|
|
|
|
|
|
if isdirectory($HOME . '/.vim/undo') == 0
|
|
|
|
|
|
:silent !mkdir -p ~/.vim/undo > /dev/null 2>&1
|
|
|
|
|
|
endif
|
2022-01-04 21:42:39 +01:00
|
|
|
|
set undodir=~/.vim/undo/
|
2019-03-22 13:42:12 +01:00
|
|
|
|
set undofile
|
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
nnoremap <silent> <Space> @=(foldlevel('.')?'za':"\<Space>")<CR>
|
|
|
|
|
|
vnoremap <Space> zf
|
|
|
|
|
|
|
|
|
|
|
|
command! RandomLine execute 'normal! '.(system('/bin/sh -c "echo -n $RANDOM"') % line('$')).'G'
|
|
|
|
|
|
|
|
|
|
|
|
function! s:DiffWithSaved()
|
|
|
|
|
|
let filetype=&ft
|
|
|
|
|
|
diffthis
|
|
|
|
|
|
vnew | r # | normal! 1Gdd
|
|
|
|
|
|
diffthis
|
|
|
|
|
|
execute "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
|
|
|
|
|
|
endfunction
|
|
|
|
|
|
command! DiffSaved call s:DiffWithSaved()
|
|
|
|
|
|
|
2020-05-19 14:59:25 +02:00
|
|
|
|
" BACKGROUND COLOR TOGGLE
|
|
|
|
|
|
function! s:toggle_background()
|
|
|
|
|
|
if &background ==# "light"
|
|
|
|
|
|
set background=dark
|
|
|
|
|
|
elseif &background ==# "dark"
|
|
|
|
|
|
set background=light
|
|
|
|
|
|
endif
|
|
|
|
|
|
endfunction
|
|
|
|
|
|
command! ToggleBackground call s:toggle_background()
|
|
|
|
|
|
inoremap <F12> <C-O>:ToggleBackground<CR>
|
|
|
|
|
|
nnoremap <F12> :ToggleBackground<CR>
|
|
|
|
|
|
|
2022-03-10 22:29:57 +01:00
|
|
|
|
augroup filetypes
|
|
|
|
|
|
autocmd!
|
|
|
|
|
|
autocmd bufnewfile,bufread *.4th set filetype=forth
|
|
|
|
|
|
autocmd bufnewfile,bufread *.asm set filetype=nasm
|
|
|
|
|
|
autocmd bufnewfile,bufread *.c set keywordprg=man\ 3
|
|
|
|
|
|
autocmd bufnewfile,bufread *.h set keywordprg=man\ 3
|
|
|
|
|
|
autocmd bufnewfile,bufread *.conf set filetype=conf
|
|
|
|
|
|
autocmd bufnewfile,bufread *.nix packadd vim-nix | set filetype=nix | set path+=/var/src
|
|
|
|
|
|
autocmd bufnewfile,bufread *.rust packadd rust-vim
|
|
|
|
|
|
autocmd bufnewfile,bufread *.csv packadd csv.vim | set filetype=csv
|
|
|
|
|
|
autocmd bufnewfile,bufread *.tex packadd vimtex | set filetype=tex
|
2023-05-07 19:36:08 +02:00
|
|
|
|
autocmd bufnewfile,bufread *.typ packadd typst.vim | set filetype=typst
|
2022-03-10 22:29:57 +01:00
|
|
|
|
autocmd bufnewfile,bufread *.ics packadd icalendar.vim | set filetype=icalendar
|
|
|
|
|
|
autocmd bufnewfile,bufread *.ts packadd typescript-vim | set filetype=typescript
|
|
|
|
|
|
autocmd bufnewfile,bufread *.jq packadd jq.vim
|
|
|
|
|
|
autocmd bufnewfile,bufread *.journal packadd vim-ledger | set filetype=ledger shiftwidth=4
|
|
|
|
|
|
autocmd bufnewfile,bufread urls,config set filetype=conf
|
|
|
|
|
|
autocmd bufnewfile,bufread *.elm packadd elm-vim | set filetype=elm shiftwidth=4
|
|
|
|
|
|
autocmd bufnewfile,bufread *.md packadd vim-pandoc | packadd vim-pandoc-syntax | set filetype=pandoc
|
|
|
|
|
|
autocmd filetype haskell packadd haskell-vim | set keywordprg=hoogle\ -i
|
|
|
|
|
|
autocmd filetype javascript packadd vim-javascript
|
|
|
|
|
|
autocmd filetype make setlocal noexpandtab
|
|
|
|
|
|
autocmd filetype html packadd emmet-vim
|
|
|
|
|
|
autocmd filetype gitcommit setlocal spell spelllang=en
|
|
|
|
|
|
autocmd filetype mail setlocal spell spelllang=de textwidth=0
|
|
|
|
|
|
augroup end
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-01-04 21:42:39 +01:00
|
|
|
|
autocmd bufreadpost *
|
|
|
|
|
|
\ if line("'\"") > 0 && line("'\"") <= line("$") |
|
|
|
|
|
|
\ exe "normal! g`\"" |
|
|
|
|
|
|
\ endif
|
|
|
|
|
|
autocmd bufreadpre * setlocal foldmethod=indent
|
2019-03-22 13:42:12 +01:00
|
|
|
|
|
2023-07-09 16:32:57 +02:00
|
|
|
|
set completeopt=menu,menuone,noselect
|
2020-05-17 10:21:40 +02:00
|
|
|
|
set complete+=kspell
|
|
|
|
|
|
|
2020-04-13 20:11:29 +02:00
|
|
|
|
let g:pandoc#syntax#conceal#use = 0
|
|
|
|
|
|
let g:pandoc#modules#disabled = []
|
|
|
|
|
|
let g:pandoc#spell#default_langs = ['en', 'de']
|