diff --git a/editors/vim/vimrc b/editors/vim/vimrc index 1011045..e69de29 100644 --- a/editors/vim/vimrc +++ b/editors/vim/vimrc @@ -1,372 +0,0 @@ -" vundle -" set vIM mode -set nocompatible -filetype off -set rtp+=~/.vim/bundle/Vundle.vim - -source ~/.vim/plugins.vim - -filetype plugin indent on - -" Get the defaults that most users want. -source $VIMRUNTIME/defaults.vim - -if has("vms") - set nobackup -else - " set backup - if has('persistent_undo') - set undofile - endif -endif - -" encrypt files using blowfish -set cryptmethod=blowfish2 - -syntax on -colorscheme onedark - -" files and backups -" set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp -" set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp -set directory=$HOME/.vim/swapfiles// -" set backupdir=$HOME/.vim/backupdir// -set undodir=$HOME/.vim/undofiles// -" search tags file downwards from the direcotry of the edited file -set tags=./tags; - -set clipboard=unnamedplus " yank into system clipboard -" Only do this part when compiled with support for autocommands. -if has("autocmd") - - " Put these in an autocmd group, so that we can delete them easily. - augroup vimrcEx - au! - - " For all text files set 'textwidth' to 78 characters. - autocmd FileType text setlocal textwidth=78 - - augroup END - - " remember curser position - autocmd BufReadPost * - \ if line("'\"") > 1 && line("'\"") <= line("$") | - \ exe "normal! g`\"" | - \ endif - -endif " has("autocmd") - -" Add optional packages. -" -" The matchit plugin makes the % command work better, but it is not backwards -" compatible. -if has('syntax') && has('eval') - packadd matchit -endif - -set autoindent " always set autoindenting on -set smartindent " smart indent; stop indent when closing brackets etc - -" searching -set hlsearch " highlight search result -set ignorecase " ignore case -set smartcase " case-sensitive if expression contains capital letters -set incsearch " incremental search -set nolazyredraw - -" delete whitespace, line break and char using -set backspace=indent,eol,start -set ruler " always show curser position -set history=1000 " keep 1000 lines of history -" set textwidth=120 -set number " display absolute number of current line -set relativenumber " display relative line numbers -set cursorline " highlight current line -" encoding -set fileencoding=utf-8 -" break at last word instead of last char -set linebreak - -" tab control -set noexpandtab " insert tabs -set smarttab -set tabstop=4 -set softtabstop=4 -set shiftwidth=4 -set shiftround -set completeopt+=longest - -" invisible characters -set list -set listchars=tab:→\ ,eol:¬,trail:⋅,extends:❯,precedes:❮ -set showbreak=↪ - -" code folding settings -set foldmethod=syntax " fold based on indent -set foldnestmax=10 " deepest fold is 10 levels -set nofoldenable " don't fold by default -set foldlevel=1 - -set ttyfast " faster redrawing -set diffopt+=vertical -set laststatus=2 " show the status line all the time -set so=7 " set 7 lines to the cursors - when moving vertical -set wildmenu " enhanced command line completion -" Search down into subfolders -" Provides tab-completion for all file-related tasks -set path+=** -set hidden " current buffer can be put into background -set showcmd " show incomplete commands -set noshowmode " don't show which mode disabled for PowerLine -set wildmode=list:longest " complete files like a shell -set scrolloff=3 " lines of text around cursor -set shell=$SHELL -set cmdheight=1 " command bar height -set title " set terminal title - -set magic " set magic on, for regex - -set showmatch " show matching braces -set mat=2 " how many tenths of a second to blink -set complete +=kspell " autocomplete from the dictionary when spellchecking is enabled -set spelllang=de,en " set spell langs - -" user commands - -" create tags file -" ^] jump to tag under cursor -" g^] for ambiguous tags -" ^t jump back in the tag stack -command! MakeTags !ctags -R . - -" error bells -set noerrorbells -set visualbell -set t_vb= -set tm=500 - -" turn on manpages (:Man) -runtime ftplugin/man.vim - -" make comments and HTML attributes italic -highlight Comment cterm=italic -highlight htmlArg cterm=italic - -" set a map leader for more key combos -let mapleader = ',' - -" clear highlighted search -" nnoremap :set hlsearch! hlsearch? -noremap :nohlsearch - -" enable . command in visual mode -vnoremap . :normal . - -map :call functions#WinMove('h') -map :call functions#WinMove('j') -map :call functions#WinMove('k') -map :call functions#WinMove('l') - -" count wraped lines as one line when doing relative jumps -noremap j (v:count == 0 ? 'gj' : 'j') -noremap k (v:count == 0 ? 'gk' : 'k') - -" scroll the viewport faster -nnoremap 3 -nnoremap 3 - -" moving up and down work as you would expect -nnoremap j gj -nnoremap k gk -nnoremap ^ g^ -nnoremap $ g$ - -" cool resizing -nnoremap :vertical resize +2 -nnoremap :vertical resize -2 -nnoremap :resize -2 -nnoremap :resize +2 - -" search for word under the cursor -nnoremap / "fyiw :/f - -" helpers for dealing with other people's code -nmap \t :set ts=4 sts=4 sw=4 noet -nmap \s :set ts=4 sts=4 sw=4 et - -" highlight conflicts -match ErrorMsg '^\(<\|=\|>\)\{7\}\([^=].\+\)\?$' - -" make the highlighting of tabs and other non-text less annoying -highlight SpecialKey ctermbg=none ctermfg=8 -highlight NonText ctermbg=none ctermfg=8 - -" Section AutoGroups {{{ -" file type specific settings -augroup configgroup - autocmd! - - " automatically resize panes on resize - autocmd VimResized * exe 'normal! \=' - autocmd BufWritePost .vimrc,.vimrc.local,init.vim source % - autocmd BufWritePost .vimrc.local source % - " save all files on focus lost, ignoring warnings about untitled buffers - autocmd FocusLost * silent! wa - - " make quickfix windows take all the lower section of the screen - " when there are multiple windows open - autocmd FileType qf wincmd J - - autocmd BufNewFile,BufReadPost *.md set filetype=markdown - let g:markdown_fenced_languages = ['css', 'javascript', 'js=javascript', 'json=javascript', 'stylus', 'html'] - - " autocmd! BufEnter * call functions#ApplyLocalSettings(expand(':p:h')) - - autocmd BufNewFile,BufRead,BufWrite *.md syntax match Comment /\%^---\_.\{-}---$/ - - autocmd! BufWritePost * Neomake -augroup END - -" }}} - -" detect filetypes, use filetype plugins and autoindent -filetype plugin indent on - - -" paste without indention -function! WrapForTmux(s) - if !exists('$TMUX') - return a:s - endif - - let tmux_start = "\Ptmux;" - let tmux_end = "\\\" - - return tmux_start . substitute(a:s, "\", "\\", 'g') . tmux_end -endfunction - -let &t_SI .= WrapForTmux("\[?2004h") -let &t_EI .= WrapForTmux("\[?2004l") - -function! XTermPasteBegin() - set pastetoggle=[201~ - set paste - return "" -endfunction - -inoremap [200~ XTermPasteBegin() - -" ctrlp -set runtimepath^=~/.vim/bundle/ctrlp.vim - -" make true colors in tmux work -" set t_8f=[38;2;%lu;%lu;%lum -" set t_8b=[48;2;%lu;%lu;%lum -" true color -set termguicolors -let &t_8f = "\[38;2;%lu;%lu;%lum" -let &t_8b = "\[48;2;%lu;%lu;%lum" - -highlight Normal ctermbg=NONE guibg=NONE -highlight NonText ctermbg=NONE guibg=NONE - -" airline options -if !exists('g:airline_symbols') - let g:airline_symbols = {} -endif -let g:airline_powerline_fonts=1 -let g:airline_left_sep = '' -let g:airline_left_alt_sep = '' -let g:airline_right_sep = '' -let g:airline_right_alt_sep = '' -let g:airline_theme='onedark' -let g:airline_symbols.branch = '' -let g:airline_symbols.readonly = '' -let g:airline_symbols.linenr = '' -let g:airline#extensions#tabline#enabled = 1 " enable airline tabline -let g:airline#extensions#tabline#tab_min_count = 2 " only show tabline if tabs are being used (more than 1 tab open) -let g:airline#extensions#tabline#show_buffers = 0 " do not show open buffers in tabline -let g:airline#extensions#tabline#show_splits = 0 - -" Toggle NERDTree -nmap k :NERDTreeToggle -" expand to the path of the file in the current buffer -nmap y :NERDTreeFind -" autocmd BufWinEnter * NERDTreeMirror - -let NERDTreeShowHidden=1 -let NERDTreeDirArrowExpandable = '▷' -let NERDTreeDirArrowCollapsible = '▼' - -" Append modeline after last line in buffer. -" Use substitute() instead of printf() to handle '%%s' modeline in LaTeX -" files. -function! AppendModeline() - let l:modeline = printf(" vim: set filetype=%s ts=%d sw=%d tw=%d %set :", - \ &filetype, &tabstop, &shiftwidth, &textwidth, &expandtab ? '' : 'no') - let l:modeline = substitute(&commentstring, "%s", l:modeline, "") - call append(line("$"), l:modeline) -endfunction -nnoremap ml :call AppendModeline() - -" delimate config -let delimitMate_expand_cr = 1 - -" set textwidth for mails -" au BufRead /tmp/mutt-* set tw=72 -autocmd FileType mail setlocal textwidth=72 - -" netrw settings -" (vim builtin filebrowser which ist also just a plugin bundled with vim) -let g:netrw_banner = 0 " disable banner -let g:netrw_browse_split= 4 " open in prior window -let g:netrw_altv = 1 " open splits to the right -let g:netrw_liststyle = 3 " treeview -let g:netrw_list_hide = netrw_gitignore#Hide() -let g:netrw_list_hide .= ',\(^\|\s\s\)\zs\.\S\+' - -" racer config (rust autocomplete) -let g:racer_cmd = "/home/me/.cargo/bin/racer" -let g:racer_experimental_completer = 1 -au FileType rust nmap gd (rust-def) -au FileType rust nmap gs (rust-def-split) -au FileType rust nmap gx (rust-def-vertical) -au FileType rust nmap gd (rust-doc) - -" close Goyo *and* vim with :q -function! s:goyo_enter() - let b:quitting = 0 - let b:quitting_bang = 0 - autocmd QuitPre let b:quitting = 1 - cabbrev q! let b:quitting_bang = 1 q! -endfunction - -function! s:goyo_leave() - " Quit Vim if this is the only remaining buffer - if b:quitting && len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) == 1 - if b:quitting_bang - qa! - else - qa - endif - endif -endfunction - -autocmd! User GoyoEnter call goyo_enter() -autocmd! User GoyoLeave call goyo_leave() - -" vimux mappings -" Prompt for a command -map vp :VimuxPromptCommand -" Prompt for a make command -map vm :VimuxPromptCommand("make ") -" Inspect runner pane -map vi :VimuxInspectRunner -" Close runner -map vq :VimuxCloseRunner -" Rerun last command -map vl :VimuxRunLastCommand -" Stop running command -map vs :VimuxInterruptRunner - -" vim: set filetype=vim ts=8 sw=2 tw=120 noet :