Created
December 5, 2022 04:28
-
-
Save ourway/aacc30279854350b0efd822079de1915 to your computer and use it in GitHub Desktop.
my latest vimrc file - Dec 2022
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" Helps force plugins to load correctly when it is turned back on below | |
filetype off | |
" Install vim plug if not installed | |
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' | |
if empty(glob(data_dir . '/autoload/plug.vim')) | |
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' | |
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC | |
endif | |
" Plugs | |
call plug#begin('~/.vim/plugged') | |
Plug 'elixir-editors/vim-elixir' | |
Plug 'mhinz/vim-mix-format' | |
Plug 'maralla/completor.vim' | |
Plug 'davidhalter/jedi-vim' | |
Plug 'SirVer/ultisnips' | |
Plug 'rust-lang/rust.vim' | |
Plug 'bfrg/vim-cpp-modern' | |
Plug 'honza/vim-snippets' | |
Plug 'beautify-web/js-beautify' | |
Plug 'mattn/webapi-vim' | |
Plug 'towolf/vim-helm' | |
Plug 'stephpy/vim-yaml' | |
Plug 'morhetz/gruvbox' | |
Plug 'cormacrelf/vim-colors-github' | |
Plug 'evanleck/vim-svelte' | |
Plug 'xavierd/clang_complete' | |
Plug 'preservim/nerdtree' | |
Plug 'mxw/vim-jsx' | |
Plug 'pangloss/vim-javascript' | |
Plug 'vim-erlang/vim-erlang-compiler' | |
Plug 'vim-erlang/vim-erlang-omnicomplete' | |
Plug 'vim-erlang/vim-erlang-runtime' | |
Plug 'vim-erlang/vim-erlang-skeletons' | |
Plug 'vim-erlang/vim-erlang-tags' | |
"Plug 'camspiers/animate.vim' | |
"Plug 'camspiers/lens.vim' | |
Plug 'vim-erlang/erlang-motions.vim' | |
"Plug 'ycm-core/YouCompleteMe' | |
Plug 'fatih/vim-go' | |
"Plug 'neoclide/coc.nvim', {'branch': 'release'} | |
"Plug 'ervandew/supertab' | |
"Plug 'skywind3000/asyncrun.vim' | |
"Plug 'nvie/vim-flake8' | |
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } | |
Plug 'junegunn/fzf.vim' | |
"Plug 'pangloss/vim-javascript' | |
"Plug 'leafgarland/typescript-vim' | |
"Plug 'MaxMEllon/vim-jsx-pretty' | |
"Plug 'chriskempson/base16-vim' | |
"Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } | |
"Plug 'deoplete-plugins/deoplete-jedi' | |
Plug 'vim-python/python-syntax' | |
Plug 'psf/black', { 'tag': '22.10.0' } | |
"Plug 'tpope/vim-sensible' | |
"Plug 'prettier/vim-prettier', { 'do': 'yarn install' } | |
call plug#end() | |
" sets | |
set shell=/bin/zsh | |
set tabstop=4 | |
set softtabstop=4 | |
set noet | |
set shiftwidth=4 | |
set textwidth=79 | |
filetype indent on | |
set modeline | |
set foldmethod=syntax | |
set foldlevelstart=99 | |
set nocompatible | |
set hidden | |
set ttyfast | |
set lazyredraw " don't redraw everytime | |
set synmaxcol=200 " avoid slow rendering for long lines | |
set report =0 " Always report changed lines. | |
set wrapscan | |
set noruler | |
set splitbelow " Open new windows below the current window. | |
set splitright " Open new windows right of the current window. | |
set relativenumber | |
"set number | |
set noswapfile | |
set exrc | |
set secure | |
set noerrorbells | |
"set clipboard+=unnamedplus | |
set wildmode=longest:full,full | |
set timeout | |
set ttimeout | |
set timeoutlen=500 | |
set ttimeoutlen=50 | |
set autoindent | |
set fileformat=unix | |
set listchars=eol:¬,tab:▷\ , | |
set indentkeys=o,O | |
set mouse=a | |
set shiftround | |
set showbreak= | |
set backupcopy=yes | |
set breakindent | |
set autoread | |
set display=lastline | |
set backspace=indent,eol,start | |
set laststatus =2 " Always show statusline. | |
set virtualedit=onemore | |
"set fillchars=vert:\ ,fold:-,diff:· " Spaces are enough for vertical split separators. | |
"set diffopt=filler,foldcolumn:0,vertical " Show lines where missing, no need for a foldcolumn during diff, split vertically by default | |
set updatetime=1000 | |
autocmd CursorHoldI * call feedkeys("\<C-G>u", "nt") | |
nnoremap j gj | |
nnoremap k gk | |
if has('persistent_undo') "check if your vim version supports | |
set undodir=$HOME/.vim/undo "directory where the undo files will be stored | |
set undofile "turn on the feature | |
endif | |
" Searching | |
"nnoremap / /\v | |
"vnoremap / /\v | |
set hlsearch | |
set incsearch | |
set showmode | |
set showcmd | |
set ignorecase | |
set smartcase | |
set smarttab | |
set showmatch | |
map <leader><space> :let @/=''<cr> " clear search | |
" Return to last edit position when opening files (You want this!) | |
" | |
autocmd BufReadPost * | |
\ if line("'\"") > 0 && line("'\"") <= line("$") | | |
\ exe "normal! g`\"" | | |
\ endif | |
let $NVIM_TUI_ENABLE_CURSOR_SHAPE=1 | |
" config | |
let g:mix_format_on_save = 1 | |
let g:jsx_ext_required = 0 | |
let mapleader = "," | |
noremap ,e :Files <CR> | |
if exists(':terminal') | |
let g:terminal_color = 'xterm' | |
" allow terminal buffer size to be very large | |
let g:terminal_scrollback_buffer_size = 100000 | |
endif | |
nnoremap <silent> ,n :call ToggleRelativeNumber()<CR> | |
function! ToggleRelativeNumber() | |
if(&relativenumber == 1) && (&number == 1) | |
set nonumber | |
set norelativenumber | |
elseif(&number == 1) | |
set number | |
set relativenumber | |
else | |
set norelativenumber | |
set number | |
endif | |
endfunc | |
nnoremap <C-N> :bnext<CR> | |
"nnoremap <TAB> :bnext<CR> | |
nnoremap <C-P> :bprev<CR> | |
autocmd BufWritePre *.py execute ':Black' | |
let g:black_linelength = 99 | |
"nnoremap ,f :Black<CR> | |
let g:jedi#completions_enabled = 1 | |
let g:jedi#show_call_signatures = 0 | |
"let g:jedi#use_splits_not_buffers = "left" | |
autocmd FileType python setlocal completeopt-=preview | |
autocmd FileType *.go execute ':!go fmt %' | |
let g:python3_host_prog = 'python3' | |
let g:UltiSnipsExpandTrigger="<tab>" | |
let g:UltiSnipsJumpForwardTrigger="<c-b>" | |
let g:UltiSnipsJumpBackwardTrigger="<c-z>" | |
" If you want :UltiSnipsEdit to split your window. | |
let g:UltiSnipsEditSplit="vertical" | |
"set guicursor=i:blinkwait700-blinkon400-blinkoff250 | |
tnoremap <expr> <Esc> (&filetype == "fzf") ? "<Esc>" : "<c-\><c-n>" | |
nnoremap <silent> <Tab> :tabnext<CR> | |
nnoremap <silent> <S-Tab> :tabprevious<CR> | |
nnoremap <leader>t <Esc>:tabnew<CR> | |
let g:rg_command = 'rg --vimgrep -S' | |
let g:python_highlight_all = 1 | |
"hi Visual term=reverse cterm=reverse guibg=Grey | |
" colors | |
"set termguicolors | |
let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum" | |
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum" | |
set t_Co=256 | |
"let base16colorspace=256 " Access colors present in 256 colorspace | |
set background=dark | |
if has("gui_running") | |
set guifont=Menlo:h14 | |
set linespace=1 | |
endif | |
colorscheme gruvbox | |
highlight Comment ctermfg=grey ctermbg=black | |
highlight Pmenu ctermfg=green ctermbg=black guibg=black | |
highlight PmenuSel ctermfg=black ctermbg=darkgreen guibg=darkgreen | |
highlight TabLineFill ctermfg=darkgrey ctermbg=black | |
highlight TabLine ctermfg=grey ctermbg=black | |
highlight TabLineSel ctermfg=white ctermbg=darkgrey | |
let g:rustfmt_autosave = 1 | |
let g:rust_clip_command = 'pbcopy' | |
let g:UltiSnipsExpandTrigger="<tab>" | |
let g:UltiSnipsJumpForwardTrigger="<c-b>" | |
let g:UltiSnipsJumpBackwardTrigger="<c-z>" | |
"nnoremap <leader>n :NERDTreeFocus<CR> | |
"nnoremap <C-t> :NERDTree<CR> | |
nnoremap <C-t> :NERDTreeToggle<CR> | |
nnoremap <C-f> :NERDTreeFind<CR> | |
autocmd BufEnter *.{js,jsx,ts,tsx} :syntax sync fromstart | |
autocmd BufLeave *.{js,jsx,ts,tsx} :syntax sync clear | |
autocmd Filetype python set et smarttab ts=4 sw=4 list lcs=tab:>-,trail:.,nbsp:_ | |
" Put all temporary files under the same directory. | |
" https://github.com/mhinz/vim-galore#temporary-files | |
set backup | |
set backupdir =$HOME/.vim/files/backup/ | |
set backupext =-vimbackup | |
set backupskip = | |
set directory =$HOME/.vim/files/swap/ | |
set updatecount =100 | |
set undofile | |
set undodir =$HOME/.vim/files/undo/ | |
set viminfo ='100,n$HOME/.vim/files/info/viminfo | |
autocmd! GUIEnter * set vb t_vb= | |
autocmd FileType c,cpp setlocal equalprg=clang-format | |
" path to directory where library can be found | |
let g:clang_library_path='/opt/homebrew/opt/llvm/lib' | |
let skip_defaults_vim=1 | |
set viminfo="" | |
let g:erlang_tags_auto_update_current=0 | |
let g:erlang_tags_otp=1 | |
set foldcolumn=1 | |
highlight FoldColumn ctermbg=0 | |
highlight FoldColumn ctermfg=0 | |
highlight VertSplit cterm=NONE | |
highlight StatusLineNC ctermbg=black ctermfg=darkgrey | |
highlight StatusLine ctermbg=black ctermfg=grey | |
highlight Visual cterm=NONE ctermbg=red ctermfg=white | |
fu! SaveSess() | |
execute 'mksession! ' . getcwd() . '/Session.vim' | |
endfunction | |
fu! RestoreSess() | |
if filereadable(getcwd() . '/Session.vim') | |
execute 'so ' . getcwd() . '/Session.vim' | |
if bufexists(1) | |
for l in range(1, bufnr('$')) | |
if bufwinnr(l) == -1 | |
exec 'sbuffer ' . l | |
endif | |
endfor | |
endif | |
endif | |
endfunction | |
autocmd VimLeave * call SaveSess() | |
autocmd VimEnter * nested call RestoreSess() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment