1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 18:21:07 +01:00
Files
niveum/lib/vim/init.vim

185 lines
5.6 KiB
VimL
Raw Permalink Normal View History

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%' }
colorscheme paramount
2019-04-18 17:12:47 +02:00
set background=dark
" 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>
2019-04-02 23:24:31 +02:00
nnoremap <Leader>a <Plug>(ale_hover)
nnoremap <Leader>d <Plug>(ale_go_to_definition_in_tab)
nnoremap <Leader>rf <Plug>(ale_find_references)
2019-03-22 13:42:12 +01:00
filetype plugin indent on
2019-05-13 07:22:58 +02:00
set notitle
set nospell
2019-03-22 13:42:12 +01:00
set nocompatible
set smartcase ignorecase " you need these two
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
2019-03-22 13:42:12 +01:00
set shortmess+=aI
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
2019-03-22 13:42:12 +01:00
set nohlsearch
set clipboard=unnamedplus
set nopaste
2021-09-16 16:07:12 +02:00
set list listchars=tab:⇥\ ,extends:,precedes:,nbsp:␣,trailshowbreak=¬
2019-03-22 13:42:12 +01:00
set foldlevelstart=30
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
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\+'
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()
" 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-01-04 21:42:39 +01:00
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
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
autocmd bufreadpost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
autocmd bufreadpre * setlocal foldmethod=indent
2019-03-22 13:42:12 +01:00
set completeopt=noinsert,menuone,noselect
2020-05-17 10:21:40 +02:00
set complete+=kspell
let g:SuperTabDefaultCompletionType = 'context'
2019-03-22 13:42:12 +01:00
let g:haskell_enable_quantification = 1
let g:haskell_enable_recursivedo = 1
let g:haskell_enable_arrowsyntax = 1
let g:haskell_enable_pattern_synonyms = 1
let g:pandoc#syntax#conceal#use = 0
let g:pandoc#modules#disabled = []
let g:pandoc#spell#default_langs = ['en', 'de']
2019-03-22 13:42:12 +01:00
let g:ale_linters = {
2019-04-02 23:24:31 +02:00
\ 'css': ['csslint'],
2021-01-15 18:37:37 +01:00
\ 'haskell': ['ghc', 'cabal-ghc', 'hlint', 'ormolu'],
2019-03-22 13:42:12 +01:00
\ 'html': ['tidy', 'proselint'],
\ 'latex': ['lacheck', 'chktex', 'proselint'],
\ 'pandoc': ['proselint'],
2019-03-23 21:48:29 +01:00
\ 'ruby': ['rubocop'],
2019-04-02 23:24:31 +02:00
\ 'json': ['jsonlint'],
2019-04-18 17:10:20 +02:00
\ 'rust': ['cargo'],
2019-04-02 23:24:31 +02:00
\ 'python': ['pyls'],
2019-03-22 13:42:12 +01:00
\}
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'javascript': ['prettier'],
\ 'typescript': ['prettier'],
\ 'css': ['prettier'],
\ 'html': ['prettier'],
\ 'json': ['jq'],
\ 'python': ['black'],
\ 'rust': ['rustfmt']
\}
let g:ale_set_quickfix = 1
2019-03-22 13:42:12 +01:00
let g:ale_fix_on_save = 1
autocmd bufnewfile,bufread elm.json let g:ale_fix_on_save = 0
2019-03-22 13:42:12 +01:00
let g:ale_completion_enabled = 1
2020-05-15 08:06:14 +02:00
let g:vimwiki_list = [{'path': '~/notes/',
2022-01-04 21:42:39 +01:00
\ 'syntax': 'markdown', 'ext': '.md'}]