From c08116ae5e8aa2578cbb0cc7c135400f23cfe3e2 Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Tue, 11 May 2021 16:59:23 +0200 Subject: [PATCH] Restructure vimrc --- home/.config/vim/vimrc | 131 ++++++++++++++++++++++------------------- 1 file changed, 72 insertions(+), 59 deletions(-) diff --git a/home/.config/vim/vimrc b/home/.config/vim/vimrc index 53218d5..8dac66d 100755 --- a/home/.config/vim/vimrc +++ b/home/.config/vim/vimrc @@ -1,31 +1,3 @@ -set encoding=utf-8 " Use UTF-8 -set showmatch " Show matching brackets -set ignorecase " Do case insensitive matching -set incsearch " Show partial matches for a search phrase -set number " Show numbers -set relativenumber " Show relative numbersi -set undolevels=999 " Lots of these -set history=1000 " More history -set hlsearch " Highlight Search -set expandtab " Expand tabs to spaces (inverse: noexpandtab) -set tabstop=4 " Tab size -set shiftwidth=4 " Indentation size -set softtabstop=4 " Tabs/Spaces interrop -set tabpagemax=50 " More tabs -set autoindent " Enable autoindent -set ruler " Show cursor position -set cursorline " Highlight cursor line -set backspace=indent,eol,start " Delete everything -set laststatus=2 " Always show status line -set wildmode=longest,list,full " Enable autocompletion -set splitbelow splitright " Split in more natural way -set formatoptions+=j " Delete comment character when joining commented lines -set autoread " Reload files on change -set mouse=a " Enable mouse mode -set encoding=utf-8 " Use UTF-8, not ASCII (May cause issues on TTY) -"set termguicolors " Use true colors (256) (May cause issues on TTY) -syntax enable " Turn on syntax highlighting - " XDG Support " Avoid using this with root, sudo causes issues with this if empty($MYVIMRC) | let $MYVIMRC = expand(':p') | endif @@ -49,11 +21,66 @@ set backupdir=$XDG_CACHE_HOME/vim/backup | call mkdir(&backupdir, 'p') set directory=$XDG_CACHE_HOME/vim/swap | call mkdir(&directory, 'p') set undodir=$XDG_CACHE_HOME/vim/undo | call mkdir(&undodir, 'p') -" Have Vim jump to the last position when reopening a file -if has("autocmd") - au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" +" Install plugins automatically +if ! filereadable(system('echo -n "${HOME}/.local/share/vim/autoload/plug.vim"')) + echo "Downloading junegunn/vim-plug to manage plugins..." + silent !mkdir -p ~/.local/share/vim/autoload + silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.local/share/vim/autoload/plug.vim + autocmd VimEnter * PlugInstall endif +" Vim-Plug (Plugins) +call plug#begin('~/.local/share/vim/plugged') +Plug 'airblade/vim-gitgutter' " Shows Git diff +Plug 'preservim/nerdcommenter' " Language based comment syntax +Plug 'preservim/nerdtree' " File manager (nerdtree) +Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " Highlighting for nerdtree +Plug 'joshdick/onedark.vim' " OneDark theme +Plug 'ryanoasis/vim-devicons' " Icons for nerdtree and airline +Plug 'vim-airline/vim-airline' " AirLine statusline +Plug 'vim-airline/vim-airline-themes' " AirLine statusline themes +Plug 'jiangmiao/auto-pairs' " Quote and bracket completion +Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } " Auto-completion [NVIM only] +Plug 'neomake/neomake' " Syntax checking +Plug 'zchee/deoplete-jedi' " Python jedi autocompletion +Plug 'davidhalter/jedi-vim' " Python implementation check +Plug 'vim-python/python-syntax' " Autodetect python syntax +Plug 'PotatoesMaster/i3-vim-syntax' " Autodetect i3 config syntax +Plug 'wakatime/vim-wakatime' " Wakatime integration for coding stats +call plug#end() + +" Some basics +filetype plugin on " Enable filetype detection +syntax on " Turn on syntax highlighting +set number relativenumber " Show relative line numbers +set wildmode=longest,list,full " Enable autocompletion +set undolevels=999 " Lots of these +set history=1000 " More history +set expandtab " Expand tabs to spaces (inverse: noexpandtab) +set tabstop=4 " Tab size +set shiftwidth=4 " Indentation size +set softtabstop=4 " Tabs/Spaces interrop +set tabpagemax=50 " More tabs +set autoindent " Enable autoindent +set cursorline " Highlight cursor line +set noruler " Don't show ruler, line is highlighted by above +set showmatch " Show matching brackets +set ignorecase " Do case insensitive matching +set incsearch " Show partial matches for a search phrase +set hlsearch " Highlight Search +set laststatus=2 " Always show status line +set splitbelow splitright " Split in more natural way +set autoread " Reload files on change +set mouse=a " Enable mouse mode +set encoding=utf-8 " Use UTF-8, not ASCII (May cause issues on TTY) +"set termguicolors " Use true colors (256) (May cause issues on TTY) + +" Disable automatic commenting on newline +autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o + +" Have Vim jump to the last position when reopening a file +autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" + " Automatically deletes all trailing whitespace on save autocmd BufWritePre * %s/\s\+$//e @@ -63,39 +90,18 @@ nnoremap j nnoremap k nnoremap l -" Make adjusing split sizes a bit more friendly +" Make adjusting split sizes a bit more friendly noremap :vertical resize +3 noremap :vertical resize -3 noremap :resize +3 noremap :resize -3 -" System clipboard interractions +" System clipboard interactions map "+y vnoremap "+p -" Vim-Plug (Plugins) -call plug#begin('~/.local/share/vim/plugged') - -Plug 'airblade/vim-gitgutter' " Shows Git diff -Plug 'jiangmiao/auto-pairs' " Quote and bracket completion -Plug 'neomake/neomake' " Syntax checking -Plug 'zchee/deoplete-jedi' " Pyhon jedi autocompletion -Plug 'davidhalter/jedi-vim' " Python implementation check -Plug 'preservim/nerdcommenter' " Comment plugin -Plug 'preservim/nerdtree' " File manager -Plug 'joshdick/onedark.vim' " OneDark theme -Plug 'vim-airline/vim-airline' " AirLine statusline -Plug 'vim-airline/vim-airline-themes' " AirLine statusline themes -Plug 'wakatime/vim-wakatime' " Wakatime integration for coding stats -if has('nvim') - Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } " Auto-completion -else - Plug 'Shougo/deoplete.nvim' - Plug 'roxma/nvim-yarp' - Plug 'roxma/vim-hug-neovim-rpc' -endif - -call plug#end() +" Spell-check set to o, 'o' for 'orthography' +map o :setlocal spell! spelllang=en_US " User interface / Theme colorscheme onedark @@ -108,21 +114,26 @@ set guioptions-=L " remove left-hand scrollbar let g:airline_theme='onedark' let g:airline#extensions#tabline#enabled = 1 let g:airline#tabline#formatter = 'unique_tail' +let g:webdevicons_enable_airline_statusline = 0 if empty($DISPLAY) " Automatically apply ASCII only config if we don't have DISPLAY (TTY) - let g:airline_left_sep = '►' - let g:airline_right_sep = '◄' + let g:airline_left_sep = '>' " Alternatively: '►' + let g:airline_right_sep = '<' " Alternatively: '◄' let g:airline_symbols_ascii = 1 + let g:webdevicons_enable_airline_tabline = 0 " don't use symbols from vim-devicons else let g:airline_left_sep = "\uE0B0" let g:airline_right_sep = "\uE0B2" + let g:airline_powerline_fonts = 1 " use nice symbols from powerline fonts endif " Neomake +" Requires: pip install flake8 let g:neomake_python_enabled_makers = ['flake8'] let g:neomake_python_flake8_maker = {'args': ['--ignore=E501', '--format=default']} call neomake#configure#automake('nrwi', 500) " Deoplete +" Requires: pip install pynvim let g:deoplete#enable_at_startup = 1 " Jedi-vim @@ -137,4 +148,6 @@ let NERDTreeShowLineNumbers=1 let NERDTreeShowHidden=1 let NERDTreeMinimalUI = 1 let g:NERDTreeWinSize=38 - +if empty($DISPLAY) " Disable devicons for nerdtree in TTY + let g:webdevicons_enable_nerdtree = 0 +endif