Rearranged and added descriptions what most of the stuff does.

This commit is contained in:
Sebastian 2021-03-18 20:55:33 +01:00
parent eec591f5dd
commit 09639488d6

View file

@ -1,7 +1,10 @@
set encoding=utf-8
"vim-plug installation
set nocompatible " be iMproved, required
"vim-plug installation (auto installs on new machines)
if empty(glob('~/.vim/autoload/plug.vim'))
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
@ -10,34 +13,80 @@ if empty(glob('~/.vim/autoload/plug.vim'))
endif
set nocompatible " be iMproved, required
call plug#begin('~/.vim/bundle')
" Add git changes to fron of the line
Plug 'airblade/vim-gitgutter'
" Java autocomplete
Plug 'artur-shaik/vim-javacomplete2'
" Generates a lift of todo comments
Plug 'chauncey-garrett/vim-tasklist'
" Fuzzy file finder
Plug 'ctrlpvim/ctrlp.vim'
" I need thsi for python
Plug 'davidhalter/jedi-vim'
" Linter and analyse tool
Plug 'dense-analysis/ale'
" Forces <Tab> to do what I want (autocomplete etc.)
Plug 'ervandew/supertab'
" Adds the closing equivalent of everything that opens: ""[]()....
Plug 'jiangmiao/auto-pairs'
" Git commit browser
Plug 'junegunn/gv.vim'
" When pressing " or @, it shows a popup with the register content.
Plug 'junegunn/vim-peekaboo'
" The package manager itself.
Plug 'junegunn/vim-plug'
" Add swift support
Plug 'keith/swift.vim'
" Latex, I guess? Have to check if I actually need this.
Plug 'LaTeX-Box-Team/LaTeX-Box'
" I use it as my snippet manager, but it is actually for HTML.
Plug 'mattn/emmet-vim'
" Necessary to use my emmet json snippet file
Plug 'mattn/webapi-vim'
" vue support
Plug 'posva/vim-vue'
" Makes (un)commenting out stuff much easier.
Plug 'preservim/nerdcommenter'
" My light theme.
Plug 'NLKNguyen/papercolor-theme'
" File browser
Plug 'scrooloose/nerdtree'
" Language pack for most languages I use.
Plug 'sheerun/vim-polyglot'
" Git support for vim
Plug 'tpope/vim-fugitive'
" Change surrounding stuff fast and reliable
Plug 'tpope/vim-surround'
" Status line for the bottom of the screen (and a themes pack)
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'Yilin-Yang/vim-markbar'
" Shows vertical lines to make indents more visible
Plug 'Yggdroot/indentLine'
call plug#end()
@ -107,8 +156,8 @@ augroup END
" Softtabs, 4 spaces
set tabstop=4
set shiftwidth=4
set shiftround
set expandtab
set shiftround " Tabs are rounded to multiples of shiftwidth
set expandtab " Tabs are spaces
" Display extra whitespace
set list listchars=tab:»·,trail,nbsp
@ -116,27 +165,23 @@ set list listchars=tab:»·,trail:·,nbsp:·
" Use one space, not two, after punctuation.
set nojoinspaces
" Use The Silver Searcher https://github.com/ggreer/the_silver_searcher
"if executable('ag')
" " Use Ag over Grep
" set grepprg=ag\ --nogroup\ --nocolor
" Make it obvious where 80 characters is (Python only)
autocmd FileType python setlocal colorcolumn=81
" " Use ag in fzf for listing files. Lightning fast and respects .gitignore
" let $FZF_DEFAULT_COMMAND = 'ag --literal --files-with-matches --nocolor --hidden -g ""'
" Highlight "self." in different color in python files:
augroup python_syntax_extra
autocmd!
autocmd! Syntax python :syn keyword Keyword self
augroup END
" if !exists(":Ag")
" command -nargs=+ -complete=file -bar Ag silent! grep! <args>|cwindow|redraw!
" nnoremap \ :Ag<SPACE>
" endif
"endif
" Make it obvious where 80 characters is
autocmd FileType python setlocal textwidth=80 colorcolumn=+1
" Numbers
" Line numbers with the width of 5 digits
set number
set numberwidth=5
" Relative line numbers, but real line number for current line
set number relativenumber
set nu rnu
" Autocomplete menu for command mode
set wildmenu
set wildmode=longest:full,full
@ -157,15 +202,6 @@ set complete+=kspell
"Autocompletion syntax:
set omnifunc=syntaxcomplete#Complete
" Local config
if filereadable($HOME . "/.vimrc.local")
source ~/.vimrc.local
endif
" Relative line numbers, but real line number for current line
set number relativenumber
set nu rnu
" Keep 8 rows above and below the kk
set scrolloff=8
@ -173,6 +209,10 @@ set scrolloff=8
nnoremap j gj
nnoremap k gk
" Use e and E to jump to start or end of a line.
nnoremap e ^
nnoremap E $
" Do not cut words when breaking lines.
set linebreak
@ -181,6 +221,12 @@ set ignorecase
set smartcase
set hlsearch
" Stop highlighting search results.
nnoremap <leader><space> :nohlsearch<CR>
" Search replace bind:
nnoremap S :%s//g<Left><Left>
" Strip trailing whitespaces on each save
fun! <SID>StripTrailingWhitespaces()
let l = line(".")
@ -191,27 +237,17 @@ endfun
autocmd BufWritePre * :call <SID>StripTrailingWhitespaces()
" Indent and unindent with tab.
nnoremap <Tab> >>_
nnoremap <S-Tab> <<_
inoremap <S-Tab> <C-D>
vnoremap <Tab> >gv
vnoremap <S-Tab> <gv
" Fuzzy file search by default:
set path+=**
"Python paths (installed with "pip3 install <package> --user)
"let $PATH.=':' . $HOME . '/Library/Python/3.7/'
" Remap buffer navigation:
map gn :bn<cr>
map gN :bp<cr>
map gp :bp<cr>
" indent for curly brackets:
"inoremap {<cr> {<cr>}<c-o><s-o>
" Toggle through splits:
nnoremap <leader>w <C-w>w
nnoremap <leader>W <C-w>W
@ -221,20 +257,16 @@ let g:user_emmet_leader_key=','
let g:user_emmet_settings = webapi#json#decode(join(readfile(expand('~/.vim/customizations/vim-emmet-mysnippets.json')), "\n"))
" jedi-vim:
let g:jedi#popup_on_dot = 0
let g:jedi#popup_on_dot = 1
" Peekaboo window width
let g:peekaboo_window = 'vert bo 65new'
" javacomplete2
autocmd FileType java setlocal omnifunc=javacomplete#Complete
" tasklist settings
let g:tlTokenList = ["FIXME", "TODO", "todo"]
let g:tlTokenList = ["FIXME", "TODO", "todo"] " keywords for todos
let g:tlWindowPosition = 1 "Open window on bottom, 0 would be top
let g:tlRememberPosition = 0
map <leader>t <Plug>TaskList
@ -246,28 +278,23 @@ map <C-n> :NERDTreeToggle<CR>
let g:airline#extensions#tabline#enabled = 1 " Show buffers as tabs
" ale settings
let g:ale_linters = {'python': ['flake8', 'mypy', 'pylint', 'prospector']}
let g:ale_fixers = {'python': ['isort', 'black'],
\'json': ['fixjson'],
\'java': ['uncrustify'],
\'tex': ['latexindent']}
" Install the linter and fixer for a specific language automatically
command InstallLinterFixPython python3 import pip; [pip.main(["install", singlepackage, "--user"]) for singlepackage in "flake8 pylint mypy prospector black isort".split(" ")]
" colorscheme toggle:
" colorscheme toggle dark/light:
function! s:SwitchColorscheme()
if g:colors_name == 'darcula'
colorscheme default
set background=light
colorscheme PaperColor
AirlineTheme papercolor
else
colorscheme darcula
set background=dark
AirlineTheme dark
endif
endfunction
map <silent> <F4> :call <SID>SwitchColorscheme()<CR>
@ -275,7 +302,6 @@ map <silent> <F4> :call <SID>SwitchColorscheme()<CR>
colorscheme darcula
" Highlight whole todo comment, not just the keyword itself:
augroup myTodo
autocmd!
autocmd Syntax * syntax match myTodo /\v\_.<(TODO|FIXME|todo|fixme).*/hs=s+1 containedin=.*Comment
@ -296,3 +322,28 @@ augroup END
" Bind ctrl+u to jump list jump (opposite of ctrl+o)
nnoremap <C-u> <C-i>
" Load changes to a file automatically from drive if the file has not been
" changed yet
set autoread
" Generate help tags to find the docs with :help
"if !empty((globpath(&rtp, '~/.vim/doc/**'))
" helptags ~/.vim/doc
"endif
" Use persistent history. (so undo from older sessions can be used)
if !isdirectory("$HOME/.vim/.vim-undo-dir")
silent !mkdir -p $HOME/.vim/.vim-undo-dir
endif
set undodir=$HOME/.vim/.vim-undo-dir
set undofile
" Set the character which is used as tab indent marker
let g:indentLine_char = '┊'
" Load local config if there is one
if filereadable($HOME . "/.vimrc.local")
source ~/.vimrc.local
endif