Skip to content

Instantly share code, notes, and snippets.

@dlwalter
Last active October 5, 2021 19:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dlwalter/05843bb1abd61217bcb38d4ff67e085e to your computer and use it in GitHub Desktop.
Save dlwalter/05843bb1abd61217bcb38d4ff67e085e to your computer and use it in GitHub Desktop.
vim dotfile
"______ _ _ _
"| _ \ | | | | | Dave Walter
"| | | | | | | | | dlwalter@protonmail.com
"| | | | | | |/\| | 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
@dlwalter
Copy link
Author

dlwalter commented Oct 5, 2021

Remember to change your libclang_path!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment