Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Lean mean (Neo)Vim machine, carefully crafted with ❤️ Use with Neovim v0.1.5+ or Vim v7.4+

NotificationsYou must be signed in to change notification settings

PegasusWang/vim-config

 
 

Repository files navigation

Lean mean Neo/vim machine, 30-45ms startup time.

Best withNeovim 0.5.x orVim 8.x andpython3 enabled.

I encourage you to fork this repo and create your own experience.Learn how to tweak and change Neo/vim to the way YOU like it.This is my cultivation of years of tweaking, use it as a git remoteand stay in-touch with upstream for reference or cherry-picking.

Table of Contents(🔎 Click to expand/collapse)

Features

  • Fast startup time
  • Robust, yet light-weight
  • Lazy-load 95% of plugins withShougo/dein.vim
  • Custom side-menu (try it out!Space+l)
  • Custom context-menu (try it!;+c)
  • Modular configuration (seestructure)
  • Auto-completeprabirshrestha/asyncomplete.vim extensive setup
  • Shougo/denite.nvim centric work-flow (lists)
  • Structure view withliuchengxu/vista.vim
  • Open SCM detailed URL in OS browser
  • Light-weight but informative status/tabline
  • Easy customizable theme
  • Premium color-schemes
  • Central location for tags and sessions

Screenshot

Vim screenshot

Prerequisites

  • Python 3 (brew install python)
  • Neovim or Vim (brew install neovim and/orbrew install vim)

Caveat: You must haveone of these tools installed:yj,yq,yaml2json, Ruby, or Python withPyYAML in-order for the YAML configuration to be parsed.

Install

1. Let's clone this repo! Clone to~/.config/nvim,we'll also symlink it for regular Vim:

mkdir~/.configgit clone git://github.com/PegasusWang/vim-config.git~/.config/nvimcd~/.config/nvimln -s~/.config/nvim~/.vim# For "regular" Vim
  • Note: If you set a custom$XDG_CONFIG_HOME,use that instead of~/.config in the commands above.Neovim follows the XDG base-directories convention, Vim doesn't.

2. Install the Python 3pynvim library. This is also needed for Vim 8if you want to use Denite and Defx.

Neovim:./venv.sh orpip3 install --user pynvim

Vim:pip3 install --user pynvim

3. Runmake test to test your nvim/vim version and capabilities.

4. Runmake to install all plugins.

5. If you are experiencing problems, run and readnvim -c checkhealth

Test Python 3 availability with:py3 print(sys.version_info)

Enjoy! 😄

Language-Server Protocol (LSP)

To leverage LSP auto-completions and other functionalities, once you open afile in Neo/vim, run:LspInstallServer <name> to usemattn/vim-lsp-settingsinstallation feature, useTab to list available servers.

Here are a few useful commands:

  • For example, open a.go file, and run::LspInstallServer gopls
  • In ago file, use action:LspCodeAction source.organizeImports
  • Seeconfig/plugins/lsp.vim for special code intellisense mappings

Upgrade

cd~/.config/nvimmake update

This will rungit pull --ff --ff-only and update all plugins usingShougo/dein.vim package-manager (:call dein#update()).

Recommended Fonts

On macOS with Homebrew, choose one of theNerd Fonts,for example, to install theHack font:

brew tap homebrew/cask-fontsbrew search nerd-fontbrew cask install font-hack-nerd-fontbrew cask install font-iosevka-nerd-font-monobrew cask install font-jetbrains-monobrew cask install font-fira-code

Recommended Linters

  • macOS with Homebrew:
brew install shellcheck jsonlint yamllint tflint ansible-lintbrew install tidy-html5 proselint write-good
  • Node.js based linters:
yarn global add eslint jshint jsxhint stylelint sass-lintyarn global add markdownlint-cli raml-cop
  • Python based linters:
pip3 install --user vim-vint pycodestyle pyflakes flake8

Recommended Tools

User Custom Config

If you want to add your own configuration, create theconfig/local.vim fileand add your personal vimscript there. If you'd like to install plugins byyourself, create aconfig/local.plugins.yaml file and manage your own plugincollection.

If you want to disable some of the plugins I use, you can overwrite them, e.g.:

-{ repo: mattn/vim-lsp-settings, if: 0 }

Disable built-in statusline & tabline

You can use your localconfig/local.vim to disable status and tab lines:

letg:tabline_plugin_enable=0letg:statusline_plugin_enable=0

Now, usingconfig/local.plugins.yaml you can install any line plugin youwant,e.g.:

# Use only one!-repo:itchyny/lightline.vim-repo:vim-airline/vim-airline-repo:glepnir/galaxyline.nvim-repo:glepnir/spaceline.vim-repo:liuchengxu/eleline.vim

Structure

Plugin Highlights

  • Plugin management with cache and lazy loading for speed
  • Auto-completion with Language-Server Protocol (LSP)
  • Project-aware tabs and labels
  • Defx as file-manager + Git status icons
  • Extensive language extensions library

Note that 95% of the plugins arelazy-loaded.

Plugins Included

List(🔎 Click to expand/collapse)

Non Lazy-Loaded Plugins

NameDescription
Shougo/dein.vimDark powered Vim/Neovim plugin manager
rafi/awesome-colorschemesAwesome color-schemes
thinca/vim-localrcEnable configuration file of each directory
romainl/vim-coolSimple plugin that makes hlsearch more useful
sgur/vim-editorconfigEditorConfig plugin written entirely in Vimscript
christoomey/tmux-navigatorSeamless navigation between tmux panes and vim splits
tpope/vim-sleuthHeuristically set buffer indent options
antoinemadec/FixCursorHold.nvimNeovim CursorHold workaround
roxma/nvim-yarpVim8 remote plugin framework for Neovim
roxma/vim-hug-neovim-rpcVim8 compatibility layer for neovim rpc client

Lazy-Loaded Plugins

Language

NameDescription
hail2u/vim-css3-syntaxCSS3 syntax support to vim's built-insyntax/css.vim
othree/csscomplete.vimUpdated built-in CSS complete with latest standards
cakebaker/scss-syntax.vimSyntax file for scss (Sassy CSS)
groenewege/vim-lessSyntax for LESS
iloginow/vim-stylusSyntax, indentation and autocomplete for Stylus
mustache/vim-mustache-handlebarsMustache and handlebars syntax
digitaltoad/vim-pugPug (formerly Jade) syntax and indentation
othree/html5.vimHTML5 omnicomplete and syntax
plasticboy/vim-markdownMarkdown syntax highlighting
pangloss/vim-javascriptEnhanced Javascript syntax
HerringtonDarkholme/yats.vimAdvanced TypeScript Syntax Highlighting
MaxMEllon/vim-jsx-prettyReact JSX syntax pretty highlighting
leafOfTree/vim-svelte-pluginSyntax and indent plugin for Svelte
heavenshell/vim-jsdocGenerate JSDoc to your JavaScript code
jparise/vim-graphqlGraphQL file detection, syntax highlighting, and indentation
moll/vim-nodeSuperb development with Node.js
kchmck/vim-coffee-scriptCoffeeScript support
elzr/vim-jsonBetter JSON support
posva/vim-vueSyntax Highlight for Vue.js components
vim-python/python-syntaxEnhanced version of the original Python syntax
Vimjas/vim-python-pep8-indentA nicer Python indentation style
vim-scripts/python_match.vimExtend the % motion for Python files
raimon49/requirements.txt.vimPython requirements file format
StanAngeloff/php.vimUp-to-date PHP syntax file (5.3 – 7.1 support)
tbastos/vim-luaLua 5.3 syntax and indentation improved support
vim-ruby/vim-rubyRuby support
keith/swift.vimSwift support
rust-lang/rust.vimRust support
vim-jp/syntax-vim-exImproved Vim syntax highlighting
chrisbra/csv.vimHandling column separated data
tpope/vim-gitGit runtime files
ekalinin/Dockerfile.vimSyntax and snippets for Dockerfile
tmux-plugins/vim-tmuxPlugin for tmux.conf
MTDL9/vim-log-highlightingSyntax highlighting for generic log files
cespare/vim-tomlSyntax for TOML
mboughaba/i3config.vimi3 window manager config syntax
dag/vim-fishFish shell edit support
jstrater/mpvimMacports portfile configuration files
robbles/logstash.vimHighlights logstash configuration files
lifepillar/pgsql.vimPostgreSQL syntax and indent
chr4/nginx.vimImproved nginx syntax and indent
towolf/vim-helmSyntax for Helm templates (yaml + gotmpl + sprig)
udalov/kotlin-vimKotlin syntax and indent
reasonml-editor/vim-reason-plusReason syntax and indent
pearofducks/ansible-vimImproved YAML support for Ansible
hashivim/vim-terraformBase Terraform integration

Commands

NameDescription
Shougo/defx.nvimDark powered file explorer implementation
kristijanhusak/defx-gitGit status implementation for Defx
kristijanhusak/defx-iconsFiletype icons for Defx
tyru/caw.vimRobust comment plugin with operator support
Shougo/context_filetype.vimContext filetype detection for nested code
lambdalisue/fin.vimFilter the buffer content in-place
mbbill/undotreeUltimate undo history visualizer
jreybert/vimagitEase your git work-flow within Vim
tweekmonster/helpful.vimDisplay vim version numbers in docs
lambdalisue/gina.vimAsynchronously control git repositories
mhinz/vim-grepperHelps you win at grep
kana/vim-altrSwitch to the alternate file without interaction
Shougo/vinarise.vimHex editor
guns/xterm-color-table.vimDisplay 256 xterm colors with their RGB equivalents
cocopon/colorswatch.vimGenerate a beautiful color swatch for the current buffer
dstein64/vim-startuptimeVisually profile Vim's startup time
lambdalisue/suda.vimAn alternative sudo.vim for Vim and Neovim
liuchengxu/vim-which-keyShows key-bindings in pop-up
brooth/far.vimFast find and replace plugin
pechorin/any-jump.vimJump to any definition and references without overhead
jaawerth/nrun.vim"which" and "exec" functions targeted at local node project bin
Vigemus/iron.nvimInteractive REPL over Neovim
kana/vim-niceblockMake blockwise Visual mode more useful
t9md/vim-choosewinChoose window to use, like tmux's 'display-pane'
wfxr/minimap.vimBlazing fast minimap for vim, powered by code-minimap
mzlogin/vim-markdown-tocGenerate table of contents for Markdown files
reedes/vim-wordyUncover usage problems in your writing
liuchengxu/vista.vimViewer & Finder for LSP symbols and tags in Vim
junegunn/fzfPowerful command-line fuzzy finder
junegunn/fzf.vimFzf integration
Ron89/thesaurus_query.vimMulti-language thesaurus query and replacement

Interface

NameDescription
itchyny/vim-gitbranchLightweight git branch detection
itchyny/vim-parenmatchEfficient alternative to the standard matchparen plugin
haya14busa/vim-asteriskImproved * motions
rhysd/accelerated-jkUp/down movement acceleration
haya14busa/vim-edgemotionJump to the edge of block
t9md/vim-quickhlHighlight words quickly
rafi/vim-sidemenuSmall side-menu useful for terminal users
machakann/vim-highlightedyankMake the yanked region apparent
itchyny/cursorwordUnderlines word under cursor
airblade/vim-gitgutterShow git changes at Vim gutter and un/stages hunks
kshenoy/vim-signatureDisplay and toggle marks
nathanaelkane/vim-indent-guidesVisually display indent levels in code
rhysd/committia.vimPleasant editing on Git commit messages
junegunn/goyoDistraction-free writing
junegunn/limelightHyperfocus-writing
itchyny/calendar.vimCalendar application
deris/vim-shot-fHighlight characters to move directly with f/t/F/T
vimwiki/vimwikiPersonal Wiki for Vim
norcalli/nvim-colorizer.luaThe fastest Neovim colorizer

Completion & Code-Analysis

NameDescription
prabirshrestha/async.vimNormalize async job control API for Vim and Neovim
prabirshrestha/asyncomplete.vimAsync-completion in pure Vimscript for Vim8 and Neovim
prabirshrestha/asyncomplete-lsp.vimProvide Language Server Protocol autocompletion source
prabirshrestha/vim-lspAsync Language Server Protocol plugin for Vim and Neovim
mattn/vim-lsp-settingsAuto LSP configurations for vim-lsp
Shougo/neco-vimCompletion source for Vimscript
prabirshrestha/asyncomplete-necovim.vimProvides syntax autocomplete via neco-vim
prabirshrestha/asyncomplete-buffer.vimProvides buffer autocomplete
prabirshrestha/asyncomplete-tags.vimProvides tag autocomplete via vim tagfiles
prabirshrestha/asyncomplete-file.vimProvides file autocomplete
wellle/tmux-complete.vimCompletion of words in adjacent tmux panes
prabirshrestha/asyncomplete-ultisnips.vimProvides UltiSnips autocomplete
SirVer/ultisnipsUltimate snippet solution
honza/vim-snippetsCommunity-maintained snippets for programming languages
mattn/emmet-vimProvides support for expanding abbreviations alá emmet
ludovicchabant/vim-gutentagsManages your tag files
Raimondi/delimitMateAuto-completion for quotes, parens, brackets

Denite & Clap

NameDescription
Shougo/denite.nvimDark powered asynchronous unite all interfaces
Shougo/neomru.vimDenite plugin for MRU
Shougo/neoyank.vimDenite plugin for yank history
Shougo/junkfile.vimDenite plugin for temporary files
chemzqm/unite-locationDenite location & quickfix lists
rafi/vim-denite-sessionBrowse and open sessions
rafi/vim-denite-zFilter and browse Z (jump around) data file
liuchengxu/vim-clapModern performant generic finder and dispatcher

Operators & Text Objects

NameDescription
kana/vim-operator-userDefine your own custom operators
kana/vim-operator-replaceOperator to replace text with register content
machakann/vim-sandwichSearch, select, and edit sandwich text objects
kana/vim-textobj-userCreate your own text objects
terryma/vim-expand-regionVisually select increasingly larger regions of text
AndrewRadev/sideways.vimMatch function arguments
AndrewRadev/splitjoin.vimTransition code between multi-line and single-line
AndrewRadev/linediff.vimPerform diffs on blocks of code
AndrewRadev/dsf.vimDelete surrounding function call
kana/vim-textobj-functionText objects for functions

Custom Key-mappings

Note that,

  • Leader key set as,
  • Local-Leader key set as; and used for navigation and search(Denite and Defx)
  • Disable in normal mode by enablingg:elite_mode in.vault.vim
Key-mappings(🔎 Click to expand/collapse)Modes: 𝐍=normal 𝐕=visual 𝐒=select 𝐈=insert 𝐂=command

Navigation

KeyModeActionPlugin or Mapping
j /k𝐍 𝐕Cursor moves through display-linesgj/k
g+j /k𝐍 𝐕 𝐒Jump to edge upward/downwardhaya14busa/vim-edgemotion
gh /gl𝐍 𝐕Easier line-wise movementg^/$
Space+Space𝐍 𝐕Toggle visual-line modeV /Escape
v /V𝐕Expand/reduce selectionterryma/vim-expand-region
zl /zh𝐍Scroll horizontally and vertically widerz4l/h
Ctrl+j𝐍Move to split belowchristoomey/tmux-navigator
Ctrl+k𝐍Move to upper splitchristoomey/tmux-navigator
Ctrl+h𝐍Move to left splitchristoomey/tmux-navigator
Ctrl+l𝐍Move to right splitchristoomey/tmux-navigator
Return𝐍Toggle foldza
Shift+Return𝐍Focus the current fold by closing all otherszMzvzt
]q or]q𝐍Next/previous on quickfix list:cnext /:cprev
]l or]l𝐍Next/previous on location-list:lnext /:lprev
]w or]w𝐍Next/previous whitespace errorplugin/whitespace.vim
]g or]g𝐍Next/previous Git hunkairblade/vim-gitgutter
]d or]d𝐍Next/previous LSP diagnosticmattn/vim-lsp-settings
Ctrl+f𝐂Move cursor forwards in commandRight
Ctrl+b𝐂Move cursor backwards in commandLeft
Ctrl+h𝐂Move cursor to the beginning in commandHome
Ctrl+l𝐂Move cursor to the end in commandEnd

File Operations

KeyModeActionPlugin or Mapping
Space+cd𝐍Switch to the directory of opened buffer:lcd %:p:h
gf𝐍 𝐕Open file under the cursor in a vsplit:rightbelow wincmd f
Space+w𝐍 𝐕 𝐒Write buffer to file:write
Ctrl+s𝐍 𝐕 𝐒 𝐂Write buffer to file:write

Edit

KeyModeActionPlugin or Mapping
Ctrl+Return𝐈Expand emmet abbreviationmattn/emmet-vim
Q𝐍Start/stop macro recordingq
gQ𝐍Play macro 'q'@q
Shift+Return𝐈Start new line from any cursor position<C-o>o
<𝐕 𝐒Indent to left and re-select<gv
>𝐕 𝐒Indent to right and re-select`>gv
Tab𝐕 𝐒Indent to right and re-select`>gv
Shift+Tab𝐕 𝐒Indent to left and re-select<gv
gc𝐍 𝐕 𝐒Caw (comments plugin) prefixtyru/caw.vim
gcc𝐍 𝐕 𝐒Toggle commentstyru/caw.vim
Space+v𝐍 𝐕 𝐒Toggle single-line commentstyru/caw.vim
Space+V𝐍 𝐕 𝐒Toggle comment blocktyru/caw.vim
Space+j ork𝐍 𝐕Move lines down/up:m
Space+d𝐍 𝐕Duplicate line or selection
Space+cn /cN𝐍 𝐕Change current word in a repeatable manner
Space+cp𝐍Duplicate paragraphyap<S-}>p
Space+cw𝐍Remove all spaces at EOL:%s/\s\+$//e
Ctrl+gg𝐈Jump outside of pairRaimondi/delimitMate
sj /sk𝐍Join/split argumentsAndrewRadev/splitjoin.vim
dsf /csf𝐍Delete/change surrounding function callAndrewRadev/dsf.vim

Search & Replace

KeyModeActionPlugin or Mapping
Space+f𝐍Filter lines in-placelambdalisue/fin.vim
* /#𝐍 𝐕Search selection forward/backwardhaya14busa/vim-asterisk
g* /g#𝐍 𝐕Search whole-word forward/backwardhaya14busa/vim-asterisk
Backspace𝐍Match bracket%
gp𝐍Select last paste
sg𝐕Replace within selected area:s/⌴/gc
Ctrl+r𝐕Replace selection with step-by-step confirmation:%s/\V/⌴/gc

Clipboard

KeyModeActionPlugin or Mapping
p𝐕 𝐒Paste without yankkana/vim-operator-replace
Y𝐍Yank to the end of liney$
Space+y𝐍Copy relative file-path to clipboard
Space+Y𝐍Copy absolute file-path to clipboard

Command & History

KeyModeActionPlugin or Mapping
!𝐍Shortcut for shell command:!
g!𝐍Read vim command into buffer:put=execute('⌴')
Ctrl+n /p𝐂Switch history search pairs /
/𝐂Switch history search pairsCtrln/p

Editor UI

KeyModeActionPlugin or Mapping
Space+ts𝐍Toggle spell-checker:setlocal spell!
Space+tn𝐍Toggle line numbers:setlocal nonumber!
Space+tl𝐍Toggle hidden characters:setlocal nolist!
Space+th𝐍Toggle highlighted search:set hlsearch!
Space+tw𝐍Toggle wrap:setlocal wrap!
Space+ti𝐍Toggle indentation linesnathanaelkane/vim-indent-guides
g1𝐍Go to first tab:tabfirst
g9𝐍Go to last tab:tablast
g5𝐍Go to previous tab:tabprevious
Ctrl+Tab𝐍Go to next tab:tabnext
Ctrl+ShiftTab𝐍Go to previous tab:tabprevious
Alt+j𝐍Go to next tab:tabnext
Alt+k𝐍Go to previous tab:tabprevious
Alt+{𝐍Move tab backward:-tabmove
Alt+}𝐍Move tab forward:+tabmove
Space+h𝐍Show highlight groups for word

Custom Tools & Plugins

KeyModeActionPlugin or Mapping
-𝐍Choose a window to editt9md/vim-choosewin
;+c𝐍Open context-menuplugin/actionmenu.vim
gK𝐍Open Zeal or Dash on some file-typesplugin/devhelp.vim
gCtrl+o𝐍Navigate to previous file on jumplistplugin/jumpfile.vim
gCtrl+i𝐍Navigate to next file on jumplistplugin/jumpfile.vim
Space+l𝐍Open side-menu helperrafi/vim-sidemenu
Space+b𝐍Open structure windowliuchengxu/vista.vim
Space+a𝐍Show nearby tag in structure windowliuchengxu/vista.vim
Space+se𝐍Save current workspace sessionplugin/sessions.vim
Space+sl𝐍Load workspace sessionplugin/sessions.vim
Space+n/N𝐍Open alternative filekana/vim-altr
Space+tc𝐍Enable scroll-context window[wellle/context.vim]
Space+tp𝐍Peek scroll-context window[wellle/context.vim]
Space+S𝐍 𝐕Source selectiony:execute @@
Space+?𝐍Open the macOS dictionary on current word:!open dict://
Space+P𝐍Use Marked 2 for real-time Markdown previewMarked 2
Space+ml𝐍Append modeline to end of bufferconfig/mappings.vim
Space+mda𝐕Sequentially mark region for diffAndrewRadev/linediff.vim
Space+mdf𝐕Mark region for diff and compare if more than oneAndrewRadev/linediff.vim
Space+mds𝐍Shows the comparison for all marked regionsAndrewRadev/linediff.vim
Space+mdr𝐍Removes the signs denoting the diff regionsAndrewRadev/linediff.vim
Space+mg𝐍Open Magitjreybert/vimagit
Space+mt𝐍 𝐕Toggle highlighted wordt9md/vim-quickhl
Space+-𝐍Switch editing window with selectedt9md/vim-choosewin
Space+G𝐍Toggle distraction-free writingjunegunn/goyo
Space+gu𝐍Open undo-treembbill/undotree
Space+K𝐍ThesaurusRon89/thesaurus_query.vim
Space+W𝐍VimWikivimwiki/vimwiki

Window Management

KeyModeActionPlugin or Mapping
q𝐍Quit window (and Vim, if last window):quit
Ctrl+q𝐍Remap to C-wCtrl+w
Ctrl+x𝐍Rotate window placementC-wx
sv𝐍Horizontal split:split
sg𝐍Vertical split:vsplit
st𝐍Open new tab:tabnew
so𝐍Close other windows:only
sb𝐍Previous buffer:b#
sc𝐍Close current buffer:close
sx𝐍Delete buffer, leave blank window:enew │ bdelete
sz𝐍Toggle window zoom:vertical resize │ resize
ssv𝐍Split with previous buffer:split │ wincmd p │ e#
ssg𝐍Vertical split with previous buffer:vsplit │ wincmd p │ e#
sh𝐍Toggle colorscheme background=dark/light:set background
s-𝐍Lower solarized8 colorscheme contrast:colorscheme
s=𝐍Raise solarized8 colorscheme contrast:colorscheme

Git Version Control

KeyModeActionPlugin or Mapping
gs𝐍Preview hunkairblade/vim-gitgutter
gS𝐍 𝐕 𝐒Stage hunkairblade/vim-gitgutter
Space+gr𝐍Revert hunkairblade/vim-gitgutter
Space+ga𝐍Git add current filelambdalisue/gina.vim
Space+gd𝐍Git difflambdalisue/gina.vim
Space+gc𝐍Git brancheslambdalisue/gina.vim
Space+gc𝐍Git commitlambdalisue/gina.vim
Space+gb𝐍Git blamelambdalisue/gina.vim
Space+gs𝐍Git status -slambdalisue/gina.vim
Space+gl𝐍Git log --alllambdalisue/gina.vim
Space+gF𝐍Git fetchlambdalisue/gina.vim
Space+gp𝐍Git pushlambdalisue/gina.vim
Space+go𝐍 𝐕Open SCM detailed URL in browserlambdalisue/gina.vim

Plugin: Denite

KeyModeAction
;r𝐍Resumes last Denite window
;f𝐍File search
;g𝐍Grep search
;b𝐍Buffers
;i𝐍Old files
;x𝐍Most recently used files (MRU)
;d𝐍Directories and MRU
;v𝐍 𝐕Yank history
;l𝐍Location list
;q𝐍Quick fix
;m𝐍Marks
;n𝐍Dein plugin list
;j𝐍Jump points and change stack
;u𝐍Junk files
;o𝐍Outline tags
;s𝐍Sessions
;t𝐍Tag list
;p𝐍Jumps
;h𝐍Help
;w𝐍Memo list
;z𝐍Z (jump around)
;;𝐍Command history
;/𝐍Buffer lines
;*𝐍Search word under cursor with lines
Space+gt𝐍Find tags matching word under cursor
Space+gf𝐍Find files matching word under cursor
Space+gg𝐍 𝐕Grep word under cursor
WithinDenite window
jj orEscape𝐈Leave Insert mode
i or/𝐍Enter Insert mode (filter input)
q orEscape𝐍Exit denite window
Tab orShift+Tab𝐈Next/previous candidate
Space𝐍Select candidate entry
dd𝐍Delete entry
p𝐍Preview entry
st𝐍Open in a new tab
sg𝐍Open in a vertical split
sv𝐍Open in a split
'𝐍Quick-move
r𝐍Redraw
yy𝐍Yank
Tab𝐍List and choose action

Plugin: Defx

KeyModeAction
;e𝐍Open file-explorer (toggle)
;a𝐍Focus current file in file-explorer
WithinDefx window
j ork𝐍Move up and down the tree
l orReturn𝐍Toggle collapse/expand directory or open file
h𝐍Collapse directory tree
t𝐍Expand directory tree recursively
.𝐍Toggle hidden files
Space𝐍Select entry
*𝐍Invert selection (select all)
& or</kbd>𝐍Change into current working directory
~𝐍Change to user home directory
u orBackspace𝐍Change into parent directory
u2/3/4𝐍Change into parent directory count
st𝐍Open file in new tab
sv𝐍Open file in a horizontal split
sg𝐍Open file in a vertical split
N𝐍Create new directories and/or files
K𝐍Create new directory
c /m /p𝐍Copy, move, and paste
r𝐍Rename file or directory
dd𝐍Trash selected files and directories
y𝐍Yank path to clipboard
w𝐍Toggle window size
]g𝐍Next dirty git item
[g𝐍Previous dirty git item
x orgx𝐍Execute associated system application
gd𝐍Open git diff on selected file
gl𝐍Open terminal file explorer with tmux
gr𝐍Grep in current position
gf𝐍Find files in current position

Plugin: Clap

KeyModeAction
WithinClap window
jj orEscape𝐈Leave Insert mode
i𝐍Enter Insert mode (filter input)
q orEscape𝐍Exit clap window
Tab orShift+Tab𝐈Next/previous candidate
Space or'𝐍Select candidate entry
st𝐍Open in a new tab
sg𝐍Open in a vertical split
sv𝐍Open in a split

Plugin: Asyncomplete and Emmet

KeyModeAction
Tab /Shift-Tab𝐈Navigate completion-menu
Enter𝐈Select completion or expand snippet
Ctrl+j/k/d/u𝐈Movement in completion pop-up
Ctrl+Return𝐈Expand Emmet sequence
Ctrl+Space𝐈Refresh and show candidates
Ctrl+y𝐈Close pop-up
Ctrl+e𝐈Cancel selection and close pop-up
Ctrl+l𝐈Expand snippet at cursor
Tab /Shift-Tab𝐈 𝐒Navigate snippet placeholders

Plugin: Any-Jump

KeyModeAction
Space+ii𝐍Jump to definition under cursor
Space+ii𝐕Jump to selected text in visual mode
Space+ib𝐍Open previous opened file (after jump)
Space+il𝐍Open last closed search window again

Plugin: Signature

KeyModeAction
m/ orm?𝐍Show list of buffer marks/markers
mm𝐍Toggle mark on current line
m,𝐍Place next mark
ma-z𝐍Place specific mark (Won't work for:mm,mn,mp)
dma-z𝐍Remove specific mark (Won't work for:mm,mn,mp)
mn𝐍Jump to next mark
mp𝐍Jump to previous mark
]=𝐍Jump to next marker
[=𝐍Jump to previous marker
m-𝐍Purge all on current line
mSpace𝐍Purge marks
mBackspace𝐍Purge markers

Credits & Contribution

Big thanks to the dark knightShougo.

解决 mac tmux 下 neovim 无法复制到剪贴板的问题

# https://github.com/tmux/tmux/issues/543brew install reattach-to-user-namespace# then edit your .tmux.confset -g default-shell $SHELLset -g default-command "reattach-to-user-namespace -l ${SHELL}"# In .vimrc or ~/.config/nvim/init.vim (I use Neovim):set clipboard=unnamed# reload tmux configtmux source-file ~/.tmux.conf

解决 vim gutter 使用 emoji 文本渲染问题

See thisVim text rendering off by one issue

如果你使用了 Iterm2 + neovim,并且在 gutter 栏使用了 emoji 表情,比如 vim-gitgutter, vim-ale 等插件的提示是 emoji。请勾选 Iterm2->Profiles->Text->Use Unicode versoin 9 widths

See this issuehttps://stackoverflow.com/questions/43107435/emoji-display-issue-in-vim-with-tmux/52142277#52142277

ag (The Silver Searcher) ignore file 搜索忽略文件

最好在你的根目录或者项目目录加上 ag 搜索需要忽略的文件,防止 denite 搜索占用太大内存,并且加速筛选内容

add~/.agignore file:

node_modules.git.ropeprojectgen-py/gen-go/eggs/.tmp/vendor/*.swp*.pyc

fzf.vim :Ag 搜索结果发送到 quickfix 窗口

使用 fzf.vim 有个 :Ag 命令搜索的时候可以把结果发送到 quickfix 窗口。通常搜索结果可以使用 ctrl+n/p 来选择

使用方式:

  • :Ag 搜索需要的单词。:Ag word
  • alt-a 全选 (注意 MacOS iterm2: Settings -> Profiles -> Keys Left Option choose Esc+)
  • alt-d 可以取消选择
  • Enter 即可,这时候就可以把搜索结果发送到 quickfix 窗口

ref:junegunn/fzf.vim#586

If you want to usecoc.nvim for Golang completion,please see this article《vim as a go ide》.Now you can usecoc branch for go completion(use gopls). If you use python, typeCocInstall coc-python installpython coc plugin.

(注意笔者基于开源配置代码修改,笔者的 leader 是 "," 而不是文档中的 Space)

About

Lean mean (Neo)Vim machine, carefully crafted with ❤️ Use with Neovim v0.1.5+ or Vim v7.4+

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Vim Script96.8%
  • Vim Snippet1.1%
  • Other2.1%

[8]ページ先頭

©2009-2025 Movatter.jp