Last active
October 5, 2021 19:53
-
-
Save dlwalter/05843bb1abd61217bcb38d4ff67e085e to your computer and use it in GitHub Desktop.
vim dotfile
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
"______ _ _ _ | |
"| _ \ | | | | | Dave Walter | |
"| | | | | | | | | [email protected] | |
"| | | | | | |/\| | github.com/dlwalter | |
"| |/ /| |___\ /\ / | |
"|___/ \_____/\/ \/ | |
" | |
" A customized init.vim for neovim (https://neovim.io/) | |
set nocompatible " be iMproved, required | |
filetype off " required | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Vundle For Managing Plugins | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() " required, all plugins must appear after this line. | |
"{{ The Basics }} | |
Plugin 'gmarik/Vundle.vim' " Vundle | |
Plugin 'itchyny/lightline.vim' " Lightline statusbar | |
Plugin 'suan/vim-instant-markdown', {'rtp': 'after'} " Markdown Preview | |
Plugin 'frazrepo/vim-rainbow' | |
"{{ File management }} | |
Plugin 'vifm/vifm.vim' " Vifm | |
Plugin 'scrooloose/nerdtree' " Nerdtree | |
Plugin 'tiagofumo/vim-nerdtree-syntax-highlight' " Highlighting Nerdtree | |
Plugin 'ryanoasis/vim-devicons' " Icons for Nerdtree | |
Plugin 'junegunn/fzf' | |
Plugin 'junegunn/fzf.vim' | |
"{{ Productivity }} | |
Plugin 'vimwiki/vimwiki' " VimWiki | |
Plugin 'jreybert/vimagit' " Magit-like plugin for vim | |
Plugin 'airblade/vim-gitgutter' | |
Plugin 'python-mode/python-mode' | |
Plugin 'itchyny/vim-gitbranch' | |
Plugin 'Shougo/deoplete.nvim' | |
Plugin 'zchee/deoplete-clang' | |
"{{ Tim Pope Plugins }} | |
Plugin 'tpope/vim-surround' " Change surrounding marks | |
"{{ Syntax Highlighting and Colors }} | |
Plugin 'PotatoesMaster/i3-vim-syntax' " i3 config highlighting | |
Plugin 'kovetskiy/sxhkd-vim' " sxhkd highlighting | |
Plugin 'vim-python/python-syntax' " Python highlighting | |
Plugin 'ap/vim-css-color' " Color previews for CSS | |
Plugin 'rafalbromirski/vim-aurora' | |
"{{ Junegunn Choi Plugins }} | |
Plugin 'junegunn/goyo.vim' " Distraction-free viewing | |
Plugin 'junegunn/limelight.vim' " Hyperfocus on a range | |
Plugin 'junegunn/vim-emoji' " Vim needs emojis! | |
"{{ Others }} | |
Plugin 'stevearc/vim-arduino' " Arduino compile/upload | |
Plugin 'sakhnik/nvim-gdb', { 'do': ':!./install.sh \| UpdateRemotePlugins' } | |
Plugin 'mandlm/vim-split-open' " Split open cpp and h files | |
echom "loaded vimrc" | |
call vundle#end() " required, all plugins must appear before this line. | |
filetype plugin indent on " required | |
" To ignore plugin indent changes, instead use: | |
" filetype plugin on | |
" Brief help | |
" :PluginList - lists configured plugins | |
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate | |
" :PluginSearch foo - searches for foo; append `!` to refresh local cache | |
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal | |
" see :h vundle for more details or wiki for FAQ | |
" Put your non-Plugin stuff after this line | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => General Settings | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
set path+=** " Searches current directory recursively. | |
set wildmenu " Display all matches when tab complete. | |
set incsearch " Incremental search | |
set nobackup " No auto backups | |
set noswapfile " No swap | |
set t_Co=256 " Set if term supports 256 colors. | |
set number relativenumber " Display line numbers | |
set guifont=Cascadia:h14 | |
syntax enable | |
let g:rehash256 = 1 | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Remap Keys | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Remap ESC to ii | |
:imap ii <Esc> | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Status Line | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" The lightline.vim theme | |
"let g:lightline = { | |
" \ 'colorscheme': 'darcula', | |
" \ 'active': { | |
" \ 'left': [ [ 'mode', 'paste' ], | |
" \ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ] | |
" \ }, | |
" \ 'component_function': { | |
" \ 'gitbranch': 'gitbranch#name' | |
" \ }, | |
" \ } | |
" Always show statusline | |
set laststatus=2 | |
" Uncomment to prevent non-normal modes showing in powerline and below powerline. | |
set noshowmode | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Text, tab and indent related | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
set expandtab " Use spaces instead of tabs. | |
set smarttab " Be smart using tabs ;) | |
set shiftwidth=4 " One tab == four spaces. | |
set tabstop=4 " One tab == four spaces. | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => NERDTree | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Uncomment to autostart the NERDTree | |
" autocmd vimenter * NERDTree | |
map <C-n> :NERDTreeToggle<CR> | |
let g:NERDTreeDirArrowExpandable = '►' | |
let g:NERDTreeDirArrowCollapsible = '▼' | |
let NERDTreeShowLineNumbers=1 | |
let NERDTreeShowHidden=1 | |
let NERDTreeMinimalUI = 1 | |
let g:NERDTreeWinSize=38 | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => deoplete | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
let g:deoplete#enable_at_startup=1 | |
let g:deoplete#sources#clang#libclang_path = '/usr/lib/llvm-6.0/libclang.so.1' | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Colors and Theming | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
highlight LineNr ctermfg=8 ctermbg=none cterm=none | |
highlight CursorLineNr ctermfg=7 ctermbg=8 cterm=none | |
highlight VertSplit ctermfg=0 ctermbg=8 cterm=none | |
highlight Statement ctermfg=2 ctermbg=none cterm=none | |
highlight Directory ctermfg=4 ctermbg=none cterm=none | |
highlight StatusLine ctermfg=7 ctermbg=8 cterm=none | |
highlight StatusLineNC ctermfg=7 ctermbg=8 cterm=none | |
highlight NERDTreeClosable ctermfg=2 | |
highlight NERDTreeOpenable ctermfg=8 | |
highlight Comment ctermfg=4 ctermbg=none cterm=none | |
highlight Constant ctermfg=12 ctermbg=none cterm=none | |
highlight Special ctermfg=4 ctermbg=none cterm=none | |
highlight Identifier ctermfg=6 ctermbg=none cterm=none | |
highlight PreProc ctermfg=5 ctermbg=none cterm=none | |
highlight String ctermfg=12 ctermbg=none cterm=none | |
highlight Number ctermfg=1 ctermbg=none cterm=none | |
highlight Function ctermfg=1 ctermbg=none cterm=none | |
" highlight WildMenu ctermfg=0 ctermbg=80 cterm=none | |
" highlight Folded ctermfg=103 ctermbg=234 cterm=none | |
" highlight FoldColumn ctermfg=103 ctermbg=234 cterm=none | |
" highlight DiffAdd ctermfg=none ctermbg=23 cterm=none | |
" highlight DiffChange ctermfg=none ctermbg=56 cterm=none | |
" highlight DiffDelete ctermfg=168 ctermbg=96 cterm=none | |
" highlight DiffText ctermfg=0 ctermbg=80 cterm=none | |
" highlight SignColumn ctermfg=244 ctermbg=235 cterm=none | |
" highlight Conceal ctermfg=251 ctermbg=none cterm=none | |
" highlight SpellBad ctermfg=168 ctermbg=none cterm=underline | |
" highlight SpellCap ctermfg=80 ctermbg=none cterm=underline | |
" highlight SpellRare ctermfg=121 ctermbg=none cterm=underline | |
" highlight SpellLocal ctermfg=186 ctermbg=none cterm=underline | |
" highlight Pmenu ctermfg=251 ctermbg=234 cterm=none | |
" highlight PmenuSel ctermfg=0 ctermbg=111 cterm=none | |
" highlight PmenuSbar ctermfg=206 ctermbg=235 cterm=none | |
" highlight PmenuThumb ctermfg=235 ctermbg=206 cterm=none | |
" highlight TabLine ctermfg=244 ctermbg=234 cterm=none | |
" highlight TablineSel ctermfg=0 ctermbg=247 cterm=none | |
" highlight TablineFill ctermfg=244 ctermbg=234 cterm=none | |
" highlight CursorColumn ctermfg=none ctermbg=236 cterm=none | |
" highlight CursorLine ctermfg=none ctermbg=236 cterm=none | |
" highlight ColorColumn ctermfg=none ctermbg=236 cterm=none | |
" highlight Cursor ctermfg=0 ctermbg=5 cterm=none | |
" highlight htmlEndTag ctermfg=114 ctermbg=none cterm=none | |
" highlight xmlEndTag ctermfg=114 ctermbg=none cterm=none | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Vifm | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
map <Leader>vv :Vifm<CR> | |
map <Leader>vs :VsplitVifm<CR> | |
map <Leader>sp :SplitVifm<CR> | |
map <Leader>dv :DiffVifm<CR> | |
map <Leader>tv :TabVifm<CR> | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => VimWiki | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
let g:vimwiki_list = [{'path': '~/vimwiki/', | |
\ 'syntax': 'markdown', 'ext': '.md'}] | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Vim-Instant-Markdown | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
let g:instant_markdown_autostart = 0 " Turns off auto preview | |
let g:instant_markdown_browser = "surf" " Uses surf for preview | |
map <Leader>md :InstantMarkdownPreview<CR> " Previews .md file | |
map <Leader>ms :InstantMarkdownStop<CR> " Kills the preview | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Open terminal inside Vim | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
set shell=zsh\ -i | |
map <Leader>tt :vnew term://zsh<CR> | |
tnoremap <Esc> <C-\><C-n> | |
tnoremap <special> jk <C-\><C-n> | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Mouse Scrolling | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
set mouse=nicr | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Splits and Tabbed Files | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
set splitbelow splitright | |
" Remap splits navigation to just CTRL + hjkl | |
nnoremap <C-h> <C-w>h | |
nnoremap <C-j> <C-w>j | |
nnoremap <C-k> <C-w>k | |
nnoremap <C-l> <C-w>l | |
" Make adjusing split sizes a bit more friendly | |
noremap <silent> <C-Left> :vertical resize +3<CR> | |
noremap <silent> <C-Right> :vertical resize -3<CR> | |
noremap <silent> <C-Up> :resize +3<CR> | |
noremap <silent> <C-Down> :resize -3<CR> | |
" Change 2 split windows from vert to horiz or horiz to vert | |
map <Leader>th <C-w>t<C-w>H | |
map <Leader>tk <C-w>t<C-w>K | |
" Removes pipes | that act as seperators on splits | |
set fillchars+=vert:\ | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Other Stuff | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
let g:python_highlight_all = 1 | |
au! BufRead,BufWrite,BufWritePost,BufNewFile *.org | |
au BufEnter *.org call org#SetOrgFileType() | |
set guioptions-=m "remove menu bar | |
set guioptions-=T "remove toolbar | |
set guioptions-=r "remove right-hand scroll bar | |
set guioptions-=L "remove left-hand scroll bar | |
" ~~~~~ gitgutter Colorizing | |
highlight GitGutterAdd ctermfg=Green | |
highlight GitGutterChange ctermfg=Yellow | |
highlight GitGutterDelete ctermfg=Red | |
inoremap <special> jk <ESC> | |
set listchars=eol:¬,tab:>·,trail:␣,extends:>,precedes:< | |
set list | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => CTags | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
set tags+=tags | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Fuzzy Finder | |
""""""""""""""""""""""""""""""""""""":"""""""""""""""""""""""""" | |
map <C-f> <Esc><Esc>:Files!<CR> | |
inoremap <C-f> <Esc><Esc>:BLines!<CR> | |
map <C-g> <Esc><Esc>:BCommits!<CR> | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Arduino | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
nnoremap <buffer> <leader>am :ArduinoVerify<CR> | |
nnoremap <buffer> <leader>au :ArduinoUpload<CR> | |
nnoremap <buffer> <leader>ad :ArduinoUploadAndSerial<CR> | |
nnoremap <buffer> <leader>ab :ArduinoChooseBoard<CR> | |
nnoremap <buffer> <leader>ap :ArduinoChooseProgrammer<CR> | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" => Split-Open | |
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
let g:splitopen_extensions = {"cpp": "h"} | |
let g:splitopen_set_fzf_keys = 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Remember to change your libclang_path!