mirror of
https://oauth2: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@github.com/m1ngsama/chopsticks.git
synced 2026-05-10 19:10:59 +08:00
Startup: replace vim-unimpaired (2.5ms) with 2-line blank line insertion. 29 plugins now. All [q/]q, [e/]e, [x/]x mappings were already ours. Runtime: - ALE lint_delay=200ms, echo_delay=100ms — less thrashing during edits - LSP virtual_text_delay=200ms, highlight_delay=200ms, echo_delay=100ms - Disable gitgutter default mappings (map_keys=0) — we don't use them - Merge two BufReadPre large-file autocmds into one (single getfsize) - Remove redundant filetype detection autocmds (Vim 9.2 handles natively)
68 lines
3.5 KiB
VimL
68 lines
3.5 KiB
VimL
" plugins.vim — vim-plug declarations
|
|
|
|
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'
|
|
augroup PlugBootstrap
|
|
autocmd!
|
|
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
|
|
augroup END
|
|
endif
|
|
|
|
call plug#begin('~/.vim/plugged')
|
|
|
|
" ── Navigation & Search ──────────────────────────────────────────────────────
|
|
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
|
|
Plug 'junegunn/fzf.vim'
|
|
|
|
" ── Git ──────────────────────────────────────────────────────────────────────
|
|
Plug 'tpope/vim-fugitive'
|
|
Plug 'airblade/vim-gitgutter'
|
|
|
|
" ── Editing ──────────────────────────────────────────────────────────────────
|
|
Plug 'tpope/vim-surround'
|
|
Plug 'tpope/vim-commentary'
|
|
Plug 'tpope/vim-repeat'
|
|
" tpope/vim-unimpaired removed: 2.5ms startup cost, we define our own
|
|
" [q/]q (quickfix), [e/]e (ALE), [x/]x (conflict) — unimpaired's [b/]b
|
|
" is covered by ,h/,l. Blank line insertion ([<Space>) added below.
|
|
|
|
Plug 'tpope/vim-sleuth'
|
|
Plug 'wellle/targets.vim'
|
|
Plug 'jiangmiao/auto-pairs'
|
|
Plug 'easymotion/vim-easymotion', { 'on': '<Plug>(easymotion' }
|
|
|
|
" ── Linting & Formatting ────────────────────────────────────────────────────
|
|
Plug 'dense-analysis/ale'
|
|
|
|
" ── LSP + Completion (no Node.js required) ──────────────────────────────────
|
|
Plug 'prabirshrestha/vim-lsp'
|
|
Plug 'mattn/vim-lsp-settings'
|
|
Plug 'prabirshrestha/asyncomplete.vim'
|
|
Plug 'prabirshrestha/asyncomplete-lsp.vim'
|
|
|
|
" ── Language Syntax ──────────────────────────────────────────────────────────
|
|
Plug 'pangloss/vim-javascript', { 'for': ['javascript', 'javascript.jsx'] }
|
|
Plug 'HerringtonDarkholme/yats.vim', { 'for': ['typescript', 'typescript.tsx'] }
|
|
Plug 'preservim/vim-markdown', { 'for': 'markdown' }
|
|
Plug 'fatih/vim-go', { 'for': 'go' }
|
|
|
|
" ── Markdown Preview & Writing ───────────────────────────────────────────────
|
|
Plug 'previm/previm', { 'on': 'PrevimOpen' }
|
|
Plug 'junegunn/goyo.vim', { 'on': 'Goyo' }
|
|
Plug 'junegunn/limelight.vim', { 'on': ['Limelight', 'Limelight!'] }
|
|
|
|
" ── UI ───────────────────────────────────────────────────────────────────────
|
|
Plug 'mbbill/undotree', { 'on': 'UndotreeToggle' }
|
|
Plug 'mhinz/vim-startify'
|
|
Plug 'lifepillar/vim-solarized8'
|
|
if !g:is_tty
|
|
Plug 'Yggdroot/indentLine'
|
|
endif
|
|
|
|
" ── Session & Navigation ────────────────────────────────────────────────────
|
|
Plug 'tpope/vim-obsession'
|
|
Plug 'christoomey/vim-tmux-navigator'
|
|
|
|
call plug#end()
|