summary refs log tree commit diff
path: root/.vim/plug.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/plug.vim')
-rw-r--r--.vim/plug.vim102
1 files changed, 102 insertions, 0 deletions
diff --git a/.vim/plug.vim b/.vim/plug.vim
new file mode 100644
index 0000000..165f16f
--- /dev/null
+++ b/.vim/plug.vim
@@ -0,0 +1,102 @@
+" get plug.vim if it's not installed
+if empty(glob('~/.vim/autoload/plug.vim'))
+  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
+    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
+  autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
+endif
+
+call plug#begin('~/.vim/plugged')
+
+" Core
+  " Plug 'airblade/vim-gitgutter' " line status next to line nums
+  Plug 'mhinz/vim-signify'      " git status in the sign column
+  Plug 'tpope/vim-commentary'   " auto-comment using `gcc`
+  Plug 'cohama/lexima.vim'      " auto-close parens, brackets, etc.
+  Plug 'tpope/vim-surround'     " edit surroundings in pairs
+  Plug 'itchyny/lightline.vim'  " lightweight status bar
+  Plug 'neomake/neomake'        " async job runner
+  Plug 'sbdchd/neoformat'       " async code formatter
+  Plug 'justinmk/vim-dirvish'   " folder browser
+  Plug 'justinmk/vim-sneak'     " powerful missing vim motions
+
+  " Plug 'neovim/nvim-lsp'
+  Plug 'SirVer/ultisnips'
+    \| Plug 'honza/vim-snippets'
+
+  " Plug 'neoclide/coc.nvim',
+  "   \ { 'do': './install.sh nightly' }
+  "   \| Plug 'neoclide/coc-snippets', { 'do': 'yarn install --frozen-lockfile' }
+  "   \| Plug 'neoclide/coc-json',     { 'for': ['json'],   'do': 'yarn install --frozen-lockfile' }
+  "   \| Plug 'neoclide/coc-rls',      { 'for': ['rust'],   'do': 'yarn install --frozen-lockfile' }
+  "   \| Plug 'neoclide/coc-python',   { 'for': ['python'], 'do': 'yarn install --frozen-lockfile' }
+  "   \| Plug 'neoclide/coc-yaml',     { 'for': ['yaml'],   'do': 'yarn install --frozen-lockfile' }
+  "   \| Plug 'neoclide/coc-html',     { 'for': ['html'],   'do': 'yarn install --frozen-lockfile' }
+  "   \| Plug 'neoclide/coc-css',      { 'for': ['css'],    'do': 'yarn install --frozen-lockfile' }
+  "   \| Plug 'josa42/coc-go',         { 'for': ['go'],     'do': 'yarn install --frozen-lockfile' }
+  "   \| Plug 'neoclide/coc-java',     { 'for': ['java'],   'do': 'yarn install --frozen-lockfile' }
+  "   \| Plug 'neoclide/coc-emmet',    { 'for': ['html', 'css'],   'do': 'yarn install --frozen-lockfile' }
+    " \| Plug '~/devel/upstream/github.com/microsoft/vscode-go', { 'for': ['go'] }
+
+  " search
+  " Plug 'junegunn/fzf',
+  "   \ { 'dir': '~/.fzf', 'do': './install --all'}
+    " \ |Plug 'junegunn/fzf.vim'
+  " Plug 'lotabout/skim',
+  "   \ { 'on': 'SK', 'dir': '~/.skim', 'do': './install'}
+
+  Plug 'liuchengxu/vim-clap' " interactive finder / dispatcher
+
+" Misc
+  Plug 'junegunn/vim-easy-align',
+    \ { 'on': ['EasyAlign', '<Plug>(EasyAlign)'] }
+  Plug 'tpope/vim-sleuth'                " auto-set shiftwidth and expandtab options
+  Plug 'nathanaelkane/vim-indent-guides' " show indentation levels
+  Plug 'tpope/vim-repeat'                " extend '.' to plugins
+  Plug 'liuchengxu/vista.vim'            " sidebar populated by coc, ctags, etc.
+  Plug 'sgur/vim-editorconfig'           " implements editorconfig in vimscript
+  Plug 'rhysd/conflict-marker.vim'
+  Plug 'michaeljsmith/vim-indent-object' " adds indentation text-objects
+  Plug 'kshenoy/vim-signature'           " toggle, display and navigate marks
+  Plug 'RRethy/vim-hexokinase',
+    \ { 'do': 'make hexokinase' }        " highlights color codes
+  Plug 'rhysd/git-messenger.vim'         " git-blame in a popup
+  Plug 'bling/vim-bufferline'            " needed to put buffers into tabline
+
+  Plug 'kassio/neoterm',
+    \ { 'on': ['T', 'Tnew'] }
+
+" Languages
+  " NOTE: these should only be loaded when they are required...
+  " Plug 'fatih/vim-go',            { 'do': ':GoInstallBinaries' }
+  " Plug 'rhysd/vim-grammarous',    { 'for': ['markdown', 'latex', 'tex'] }
+  Plug 'lervag/vimtex',           { 'for': ['latex', 'tex'] }
+  Plug 'plasticboy/vim-markdown', { 'for': ['markdown'] }
+  Plug 'masukomi/vim-markdown-folding', { 'for': ['markdown'] }
+  Plug 'mattn/emmet-vim',         { 'for': ['html', 'vue'] }        " super-fast HTML editing
+  Plug 'valloric/matchtagalways', { 'for': ['html', 'vue', 'xml'] } " visually match HTML tags enclosing cursor location
+  Plug 'ledger/vim-ledger',       { 'for': ['ledger'] }
+  Plug 'jceb/vim-orgmode',        { 'for': ['org'] }
+    \| Plug 'tpope/vim-speeddating'  " easy time/date incrementing
+    \| Plug 'vim-scripts/utl.vim'    " follow links/urls
+  Plug 'gentoo/gentoo-syntax',    { 'for': ['ebuild'] }
+
+  " multi-language support with lazy loading
+  " NOTE: put language specific plugs before this to avoid conflicsts
+  Plug 'sheerun/vim-polyglot'
+
+" Minimal UX
+  Plug 'junegunn/goyo.vim',         { 'on': 'Goyo' }      " hide ui clutter
+  Plug 'junegunn/limelight.vim',    { 'on': 'Limelight' } " dims colors
+  " Plug 'equalsraf/neovim-gui-shim'
+
+" Colorschemes
+  " Plug 'deviantfero/wpgtk.vim'
+  " Plug 'KeitaNakamura/neodark.vim'
+  Plug 'NLKNguyen/papercolor-theme'
+  " Plug 'crusoexia/vim-dracula'
+
+" Local
+  " Plug '~/devel/projects/nihon-theme/vim'
+  Plug '~/devel/projects/vim-orgdown'
+
+call plug#end()