Rafael Bodill's Neo/vim Config
Lean mean Neo/vim machine, 30-45ms startup time.
Best with Neovim 0.5.x or Vim 8.x and python3
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 remote
and stay in-touch with upstream for reference or cherry-picking.
Table of Contents
(๐ Click to expand/collapse)
* [Features](#features)
* [Screenshot](#screenshot)
* [Prerequisites](#prerequisites)
* [Install](#install)
* [Language-Server Protocol (LSP)](#language-server-protocol-lsp)
* [Upgrade](#upgrade)
* [Recommended Fonts](#recommended-fonts)
* [Recommended Linters](#recommended-linters)
* [Recommended Tools](#recommended-tools)
* [User Custom Config](#user-custom-config)
* [Structure](#structure)
* [Plugin Highlights](#plugin-highlights)
* [Plugins Included](#plugins-included)
* [Non Lazy-Loaded Plugins](#non-lazy-loaded-plugins)
* [Lazy-Loaded Plugins](#lazy-loaded-plugins)
* [Language](#language)
* [Commands](#commands)
* [Interface](#interface)
* [Completion & Code-Analysis](#completion--code-analysis)
* [Denite & Clap](#denite--clap)
* [Operators & Text Objects](#operators--text-objects)
* [Custom Key-mappings](#custom-key-mappings)
* [Navigation](#navigation)
* [File Operations](#file-operations)
* [Edit](#edit)
* [Search & Replace](#search--replace)
* [Clipboard](#clipboard)
* [Command & History](#command--history)
* [Editor UI](#editor-ui)
* [Custom Tools & Plugins](#custom-tools--plugins)
* [Window Management](#window-management)
* [Git Version Control](#git-version-control)
* [Plugin: Denite](#plugin-denite)
* [Plugin: Defx](#plugin-defx)
* [Plugin: Clap](#plugin-clap)
* [Plugin: Asyncomplete and Emmet](#plugin-asyncomplete-and-emmet)
* [Plugin: Any-Jump](#plugin-any-jump)
* [Plugin: Signature](#plugin-signature)
* [Credits & Contribution](#credits--contribution)
Features
- Fast startup time
- Robust, yet light-weight
- Lazy-load 95% of plugins with [Shougo/dein.vim]
- Custom side-menu (try it out! Space+l)
- Custom context-menu (try it! ;+c)
- Modular configuration (see structure)
- Auto-complete [prabirshrestha/asyncomplete.vim] extensive setup
- [Shougo/denite.nvim] centric work-flow (lists)
- Structure view with [liuchengxu/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
Prerequisites
- Python 3 (
brew install python
)
- Neovim or Vim (
brew install neovim
and/or brew install vim
)
Caveat: You must have one of these tools installed:
yj, yq,
yaml2json, Ruby, or Python with
PyYAML 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 ~/.config
git clone git://github.com/PegasusWang/vim-config.git ~/.config/nvim
cd ~/.config/nvim
ln -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 3 pynvim
library. This is also needed for Vim 8
if you want to use Denite and Defx.
Neovim: ./venv.sh
or pip3 install --user pynvim
Vim: pip3 install --user pynvim
3. Run make test
to test your nvim/vim version and capabilities.
4. Run make
to install all plugins.
5. If you are experiencing problems, run and read nvim -c checkhealth
Test Python 3 availability with :py3 print(sys.version_info)
Enjoy! :smile:
Language-Server Protocol (LSP)
To leverage LSP auto-completions and other functionalities, once you open a
file in Neo/vim, run :LspInstallServer <name>
to use [mattn/vim-lsp-settings]
installation feature, use Tab to list available servers.
Here are a few useful commands:
- For example, open a
.go
file, and run: :LspInstallServer gopls
- In a
go
file, use action :LspCodeAction source.organizeImports
- See config/plugins/lsp.vim for special code intellisense mappings
Upgrade
cd ~/.config/nvim
make update
This will run git pull --ff --ff-only
and update all plugins using
[Shougo/dein.vim] package-manager (:call dein#update()
).
Recommended Fonts
On macOS with Homebrew, choose one of the Nerd Fonts,
for example, to install the Hack font:
brew tap homebrew/cask-fonts
brew search nerd-font
brew cask install font-hack-nerd-font
brew cask install font-iosevka-nerd-font-mono
brew cask install font-jetbrains-mono
brew cask install font-fira-code
Recommended Linters
brew install shellcheck jsonlint yamllint tflint ansible-lint
brew install tidy-html5 proselint write-good
yarn global add eslint jshint jsxhint stylelint sass-lint
yarn global add markdownlint-cli raml-cop
pip3 install --user vim-vint pycodestyle pyflakes flake8
Recommended Tools
- ag ggreer/the_silver_searcher
(macOS:
brew install the_silver_searcher
)
- Jump around with z: rupa/z
(macOS:
brew install z
)
- Universal ctags for syntax tokenization
(macOS:
brew install universal-ctags/universal-ctags/universal-ctags
)
- Fuzzy file finders:
fzf,
fzy, or
peco
(macOS:
brew install fzf
)
User Custom Config
If you want to add your own configuration, create the config/local.vim
file
and add your personal vimscript there. If you'd like to install plugins by
yourself, create a config/local.plugins.yaml
file and manage your own plugin
collection.
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 local config/local.vim
to disable status and tab lines:
let g:tabline_plugin_enable = 0
let g:statusline_plugin_enable = 0
Now, using config/local.plugins.yaml
you can install any line plugin you
want, 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 are lazy-loaded.
Plugins Included
List (๐ Click to expand/collapse)
### Non Lazy-Loaded Plugins
| Name | Description
| -------------- | ----------------------
| [Shougo/dein.vim] | Dark powered Vim/Neovim plugin manager
| [rafi/awesome-colorschemes] | Awesome color-schemes
| [thinca/vim-localrc] | Enable configuration file of each directory
| [romainl/vim-cool] | Simple plugin that makes hlsearch more useful
| [sgur/vim-editorconfig] | EditorConfig plugin written entirely in Vimscript
| [christoomey/tmux-navigator] | Seamless navigation between tmux panes and vim splits
| [tpope/vim-sleuth] | Heuristically set buffer indent options
| [antoinemadec/FixCursorHold.nvim] | Neovim CursorHold workaround
| [roxma/nvim-yarp] | Vim8 remote plugin framework for Neovim
| [roxma/vim-hug-neovim-rpc] | Vim8 compatibility layer for neovim rpc client
### Lazy-Loaded Plugins
#### Language
| Name | Description
| -------------- | ----------------------
| [hail2u/vim-css3-syntax] | CSS3 syntax support to vim's built-in `syntax/css.vim`
| [othree/csscomplete.vim] | Updated built-in CSS complete with latest standards
| [cakebaker/scss-syntax.vim] | Syntax file for scss (Sassy CSS)
| [groenewege/vim-less] | Syntax for LESS
| [iloginow/vim-stylus] | Syntax, indentation and autocomplete for Stylus
| [mustache/vim-mustache-handlebars] | Mustache and handlebars syntax
| [digitaltoad/vim-pug] | Pug (formerly Jade) syntax and indentation
| [othree/html5.vim] | HTML5 omnicomplete and syntax
| [plasticboy/vim-markdown] | Markdown syntax highlighting
| [pangloss/vim-javascript] | Enhanced Javascript syntax
| [HerringtonDarkholme/yats.vim] | Advanced TypeScript Syntax Highlighting
| [MaxMEllon/vim-jsx-pretty] | React JSX syntax pretty highlighting
| [leafOfTree/vim-svelte-plugin] | Syntax and indent plugin for Svelte
| [heavenshell/vim-jsdoc] | Generate JSDoc to your JavaScript code
| [jparise/vim-graphql] | GraphQL file detection, syntax highlighting, and indentation
| [moll/vim-node] | Superb development with Node.js
| [kchmck/vim-coffee-script] | CoffeeScript support
| [elzr/vim-json] | Better JSON support
| [posva/vim-vue] | Syntax Highlight for Vue.js components
| [vim-python/python-syntax] | Enhanced version of the original Python syntax
| [Vimjas/vim-python-pep8-indent] | A nicer Python indentation style
| [vim-scripts/python_match.vim] | Extend the % motion for Python files
| [raimon49/requirements.txt.vim] | Python requirements file format
| [StanAngeloff/php.vim] | Up-to-date PHP syntax file (5.3 โ 7.1 support)
| [tbastos/vim-lua] | Lua 5.3 syntax and indentation improved support
| [vim-ruby/vim-ruby] | Ruby support
| [keith/swift.vim] | Swift support
| [rust-lang/rust.vim] | Rust support
| [vim-jp/syntax-vim-ex] | Improved Vim syntax highlighting
| [chrisbra/csv.vim] | Handling column separated data
| [tpope/vim-git] | Git runtime files
| [ekalinin/Dockerfile.vim] | Syntax and snippets for Dockerfile
| [tmux-plugins/vim-tmux] | Plugin for tmux.conf
| [MTDL9/vim-log-highlighting] | Syntax highlighting for generic log files
| [cespare/vim-toml] | Syntax for TOML
| [mboughaba/i3config.vim] | i3 window manager config syntax
| [dag/vim-fish] | Fish shell edit support
| [jstrater/mpvim] | Macports portfile configuration files
| [robbles/logstash.vim] | Highlights logstash configuration files
| [lifepillar/pgsql.vim] | PostgreSQL syntax and indent
| [chr4/nginx.vim] | Improved nginx syntax and indent
| [towolf/vim-helm] | Syntax for Helm templates (yaml + gotmpl + sprig)
| [udalov/kotlin-vim] | Kotlin syntax and indent
| [reasonml-editor/vim-reason-plus] | Reason syntax and indent
| [pearofducks/ansible-vim] | Improved YAML support for Ansible
| [hashivim/vim-terraform] | Base Terraform integration
#### Commands
| Name | Description
| -------------- | ----------------------
| [Shougo/defx.nvim] | Dark powered file explorer implementation
| [kristijanhusak/defx-git] | Git status implementation for Defx
| [kristijanhusak/defx-icons] | Filetype icons for Defx
| [tyru/caw.vim] | Robust comment plugin with operator support
| [Shougo/context_filetype.vim] | Context filetype detection for nested code
| [lambdalisue/fin.vim] | Filter the buffer content in-place
| [mbbill/undotree] | Ultimate undo history visualizer
| [jreybert/vimagit] | Ease your git work-flow within Vim
| [tweekmonster/helpful.vim] | Display vim version numbers in docs
| [lambdalisue/gina.vim] | Asynchronously control git repositories
| [mhinz/vim-grepper] | Helps you win at grep
| [kana/vim-altr] | Switch to the alternate file without interaction
| [Shougo/vinarise.vim] | Hex editor
| [guns/xterm-color-table.vim] | Display 256 xterm colors with their RGB equivalents
| [cocopon/colorswatch.vim] | Generate a beautiful color swatch for the current buffer
| [dstein64/vim-startuptime] | Visually profile Vim's startup time
| [lambdalisue/suda.vim] | An alternative sudo.vim for Vim and Neovim
| [liuchengxu/vim-which-key] | Shows key-bindings in pop-up
| [brooth/far.vim] | Fast find and replace plugin
| [pechorin/any-jump.vim] | Jump to any definition and references without overhead
| [jaawerth/nrun.vim] | "which" and "exec" functions targeted at local node project bin
| [Vigemus/iron.nvim] | Interactive REPL over Neovim
| [kana/vim-niceblock] | Make blockwise Visual mode more useful
| [t9md/vim-choosewin] | Choose window to use, like tmux's 'display-pane'
| [wfxr/minimap.vim] | Blazing fast minimap for vim, powered by code-minimap
| [mzlogin/vim-markdown-toc] | Generate table of contents for Markdown files
| [reedes/vim-wordy] | Uncover usage problems in your writing
| [liuchengxu/vista.vim] | Viewer & Finder for LSP symbols and tags in Vim
| [junegunn/fzf] | Powerful command-line fuzzy finder
| [junegunn/fzf.vim] | Fzf integration
| [Ron89/thesaurus_query.vim] | Multi-language thesaurus query and replacement
#### Interface
| Name | Description
| -------------- | ----------------------
| [itchyny/vim-gitbranch] | Lightweight git branch detection
| [itchyny/vim-parenmatch] | Efficient alternative to the standard matchparen plugin
| [haya14busa/vim-asterisk] | Improved * motions
| [rhysd/accelerated-jk] | Up/down movement acceleration
| [haya14busa/vim-edgemotion] | Jump to the edge of block
| [t9md/vim-quickhl] | Highlight words quickly
| [rafi/vim-sidemenu] | Small side-menu useful for terminal users
| [machakann/vim-highlightedyank] | Make the yanked region apparent
| [itchyny/cursorword] | Underlines word under cursor
| [airblade/vim-gitgutter] | Show git changes at Vim gutter and un/stages hunks
| [kshenoy/vim-signature] | Display and toggle marks
| [nathanaelkane/vim-indent-guides] | Visually display indent levels in code
| [rhysd/committia.vim] | Pleasant editing on Git commit messages
| [junegunn/goyo] | Distraction-free writing
| [junegunn/limelight] | Hyperfocus-writing
| [itchyny/calendar.vim] | Calendar application
| [deris/vim-shot-f] | Highlight characters to move directly with f/t/F/T
| [vimwiki/vimwiki] | Personal Wiki for Vim
| [norcalli/nvim-colorizer.lua] | The fastest Neovim colorizer
#### Completion & Code-Analysis
| Name | Description
| -------------- | ----------------------
| [prabirshrestha/async.vim] | Normalize async job control API for Vim and Neovim
| [prabirshrestha/asyncomplete.vim] | Async-completion in pure Vimscript for Vim8 and Neovim
| [prabirshrestha/asyncomplete-lsp.vim] | Provide Language Server Protocol autocompletion source
| [prabirshrestha/vim-lsp] | Async Language Server Protocol plugin for Vim and Neovim
| [mattn/vim-lsp-settings] | Auto LSP configurations for vim-lsp
| [Shougo/neco-vim] | Completion source for Vimscript
| [prabirshrestha/asyncomplete-necovim.vim] | Provides syntax autocomplete via neco-vim
| [prabirshrestha/asyncomplete-buffer.vim] | Provides buffer autocomplete
| [prabirshrestha/asyncomplete-tags.vim] | Provides tag autocomplete via vim tagfiles
| [prabirshrestha/asyncomplete-file.vim] | Provides file autocomplete
| [wellle/tmux-complete.vim] | Completion of words in adjacent tmux panes
| [prabirshrestha/asyncomplete-ultisnips.vim] | Provides UltiSnips autocomplete
| [SirVer/ultisnips] | Ultimate snippet solution
| [honza/vim-snippets] | Community-maintained snippets for programming languages
| [mattn/emmet-vim] | Provides support for expanding abbreviations alรก emmet
| [ludovicchabant/vim-gutentags] | Manages your tag files
| [Raimondi/delimitMate] | Auto-completion for quotes, parens, brackets
#### Denite & Clap
| Name | Description
| -------------- | ----------------------
| [Shougo/denite.nvim] | Dark powered asynchronous unite all interfaces
| [Shougo/neomru.vim] | Denite plugin for MRU
| [Shougo/neoyank.vim] | Denite plugin for yank history
| [Shougo/junkfile.vim] | Denite plugin for temporary files
| [chemzqm/unite-location] | Denite location & quickfix lists
| [rafi/vim-denite-session] | Browse and open sessions
| [rafi/vim-denite-z] | Filter and browse Z (jump around) data file
| [liuchengxu/vim-clap] | Modern performant generic finder and dispatcher
#### Operators & Text Objects
| Name | Description
| -------------- | ----------------------
| [kana/vim-operator-user] | Define your own custom operators
| [kana/vim-operator-replace] | Operator to replace text with register content
| [machakann/vim-sandwich] | Search, select, and edit sandwich text objects
| [kana/vim-textobj-user] | Create your own text objects
| [terryma/vim-expand-region] | Visually select increasingly larger regions of text
| [AndrewRadev/sideways.vim] | Match function arguments
| [AndrewRadev/splitjoin.vim] | Transition code between multi-line and single-line
| [AndrewRadev/linediff.vim] | Perform diffs on blocks of code
| [AndrewRadev/dsf.vim] | Delete surrounding function call
| [kana/vim-textobj-function] | Text objects for functions
[Shougo/dein.vim]: https://github.com/Shougo/dein.vim
[rafi/awesome-colorschemes]: https://github.com/rafi/awesome-vim-colorschemes
[thinca/vim-localrc]: https://github.com/thinca/vim-localrc
[romainl/vim-cool]: https://github.com/romainl/vim-cool
[sgur/vim-editorconfig]: https://github.com/sgur/vim-editorconfig
[christoomey/tmux-navigator]: https://github.com/christoomey/vim-tmux-navigator
[tpope/vim-sleuth]: https://github.com/tpope/vim-sleuth
[antoinemadec/FixCursorHold.nvim]: https://github.com/antoinemadec/FixCursorHold.nvim
[roxma/nvim-yarp]: https://github.com/roxma/nvim-yarp
[roxma/vim-hug-neovim-rpc]: https://github.com/roxma/vim-hug-neovim-rpc
[hail2u/vim-css3-syntax]: https://github.com/hail2u/vim-css3-syntax
[othree/csscomplete.vim]: https://github.com/othree/csscomplete.vim
[cakebaker/scss-syntax.vim]: https://github.com/cakebaker/scss-syntax.vim
[groenewege/vim-less]: https://github.com/groenewege/vim-less
[iloginow/vim-stylus]: https://github.com/iloginow/vim-stylus
[mustache/vim-mustache-handlebars]: https://github.com/mustache/vim-mustache-handlebars
[digitaltoad/vim-pug]: https://github.com/digitaltoad/vim-pug
[othree/html5.vim]: https://github.com/othree/html5.vim
[plasticboy/vim-markdown]: https://github.com/plasticboy/vim-markdown
[pangloss/vim-javascript]: https://github.com/pangloss/vim-javascript
[HerringtonDarkholme/yats.vim]: https://github.com/HerringtonDarkholme/yats.vim
[MaxMEllon/vim-jsx-pretty]: https://github.com/MaxMEllon/vim-jsx-pretty
[leafOfTree/vim-svelte-plugin]: https://github.com/leafOfTree/vim-svelte-plugin
[heavenshell/vim-jsdoc]: https://github.com/heavenshell/vim-jsdoc
[jparise/vim-graphql]: https://github.com/jparise/vim-graphql
[moll/vim-node]: https://github.com/moll/vim-node
[kchmck/vim-coffee-script]: https://github.com/kchmck/vim-coffee-script
[elzr/vim-json]: https://github.com/elzr/vim-json
[posva/vim-vue]: https://github.com/posva/vim-vue
[vim-python/python-syntax]: https://github.com/vim-python/python-syntax
[Vimjas/vim-python-pep8-indent]: https://github.com/Vimjas/vim-python-pep8-indent
[vim-scripts/python_match.vim]: https://github.com/vim-scripts/python_match.vim
[raimon49/requirements.txt.vim]: https://github.com/raimon49/requirements.txt.vim
[StanAngeloff/php.vim]: https://github.com/StanAngeloff/php.vim
[tbastos/vim-lua]: https://github.com/tbastos/vim-lua
[vim-ruby/vim-ruby]: https://github.com/vim-ruby/vim-ruby
[keith/swift.vim]: https://github.com/keith/swift.vim
[rust-lang/rust.vim]: https://github.com/rust-lang/rust.vim
[vim-jp/syntax-vim-ex]: https://github.com/vim-jp/syntax-vim-ex
[chrisbra/csv.vim]: https://github.com/chrisbra/csv.vim
[tpope/vim-git]: https://github.com/tpope/vim-git
[ekalinin/Dockerfile.vim]: https://github.com/ekalinin/Dockerfile.vim
[tmux-plugins/vim-tmux]: https://github.com/tmux-plugins/vim-tmux
[MTDL9/vim-log-highlighting]: https://github.com/MTDL9/vim-log-highlighting
[cespare/vim-toml]: https://github.com/cespare/vim-toml
[mboughaba/i3config.vim]: https://github.com/mboughaba/i3config.vim
[dag/vim-fish]: https://github.com/dag/vim-fish
[jstrater/mpvim]: https://github.com/jstrater/mpvim
[robbles/logstash.vim]: https://github.com/robbles/logstash.vim
[lifepillar/pgsql.vim]: https://github.com/lifepillar/pgsql.vim
[chr4/nginx.vim]: https://github.com/chr4/nginx.vim
[towolf/vim-helm]: https://github.com/towolf/vim-helm
[udalov/kotlin-vim]: https://github.com/udalov/kotlin-vim
[reasonml-editor/vim-reason-plus]: https://github.com/reasonml-editor/vim-reason-plus
[pearofducks/ansible-vim]: https://github.com/pearofducks/ansible-vim
[hashivim/vim-terraform]: https://github.com/hashivim/vim-terraform
[Shougo/defx.nvim]: https://github.com/Shougo/defx.nvim
[kristijanhusak/defx-git]: https://github.com/kristijanhusak/defx-git
[kristijanhusak/defx-icons]: https://github.com/kristijanhusak/defx-icons
[tyru/caw.vim]: https://github.com/tyru/caw.vim
[Shougo/context_filetype.vim]: https://github.com/Shougo/context_filetype.vim
[lambdalisue/fin.vim]: https://github.com/lambdalisue/fin.vim
[mbbill/undotree]: https://github.com/mbbill/undotree
[jreybert/vimagit]: https://github.com/jreybert/vimagit
[tweekmonster/helpful.vim]: https://github.com/tweekmonster/helpful.vim
[lambdalisue/gina.vim]: https://github.com/lambdalisue/gina.vim
[mhinz/vim-grepper]: https://github.com/mhinz/vim-grepper
[kana/vim-altr]: https://github.com/kana/vim-altr
[Shougo/vinarise.vim]: https://github.com/Shougo/vinarise.vim
[guns/xterm-color-table.vim]: https://github.com/guns/xterm-color-table.vim
[cocopon/colorswatch.vim]: https://github.com/cocopon/colorswatch.vim
[dstein64/vim-startuptime]: https://github.com/dstein64/vim-startuptime
[lambdalisue/suda.vim]: https://github.com/lambdalisue/suda.vim
[liuchengxu/vim-which-key]: https://github.com/liuchengxu/vim-which-key
[brooth/far.vim]: https://github.com/brooth/far.vim
[pechorin/any-jump.vim]: https://github.com/pechorin/any-jump.vim
[jaawerth/nrun.vim]: https://github.com/jaawerth/nrun.vim
[Vigemus/iron.nvim]: https://github.com/Vigemus/iron.nvim
[kana/vim-niceblock]: https://github.com/kana/vim-niceblock
[t9md/vim-choosewin]: https://github.com/t9md/vim-choosewin
[wfxr/minimap.vim]: https://github.com/wfxr/minimap.vim
[mzlogin/vim-markdown-toc]: https://github.com/mzlogin/vim-markdown-toc
[reedes/vim-wordy]: https://github.com/reedes/vim-wordy
[liuchengxu/vista.vim]: https://github.com/liuchengxu/vista.vim
[junegunn/fzf]: https://github.com/junegunn/fzf
[junegunn/fzf.vim]: https://github.com/junegunn/fzf.vim
[Ron89/thesaurus_query.vim]: https://github.com/Ron89/thesaurus_query.vim
[itchyny/vim-gitbranch]: https://github.com/itchyny/vim-gitbranch
[itchyny/vim-parenmatch]: https://github.com/itchyny/vim-parenmatch
[haya14busa/vim-asterisk]: https://github.com/haya14busa/vim-asterisk
[rhysd/accelerated-jk]: https://github.com/rhysd/accelerated-jk
[haya14busa/vim-edgemotion]: https://github.com/haya14busa/vim-edgemotion
[t9md/vim-quickhl]: https://github.com/t9md/vim-quickhl
[rafi/vim-sidemenu]: https://github.com/rafi/vim-sidemenu
[machakann/vim-highlightedyank]: https://github.com/machakann/vim-highlightedyank
[itchyny/cursorword]: https://github.com/itchyny/vim-cursorword
[airblade/vim-gitgutter]: https://github.com/airblade/vim-gitgutter
[kshenoy/vim-signature]: https://github.com/kshenoy/vim-signature
[nathanaelkane/vim-indent-guides]: https://github.com/nathanaelkane/vim-indent-guides
[rhysd/committia.vim]: https://github.com/rhysd/committia.vim
[junegunn/goyo]: https://github.com/junegunn/goyo.vim
[junegunn/limelight]: https://github.com/junegunn/limelight.vim
[itchyny/calendar.vim]: https://github.com/itchyny/calendar.vim
[deris/vim-shot-f]: https://github.com/deris/vim-shot-f
[vimwiki/vimwiki]: https://github.com/vimwiki/vimwiki
[norcalli/nvim-colorizer.lua]: https://github.com/norcalli/nvim-colorizer.lua
[prabirshrestha/async.vim]: https://github.com/prabirshrestha/async.vim
[prabirshrestha/asyncomplete.vim]: https://github.com/prabirshrestha/asyncomplete.vim
[prabirshrestha/asyncomplete-lsp.vim]: https://github.com/prabirshrestha/asyncomplete-lsp.vim
[prabirshrestha/vim-lsp]: https://github.com/prabirshrestha/vim-lsp
[mattn/vim-lsp-settings]: https://github.com/mattn/vim-lsp-settings
[Shougo/neco-vim]: https://github.com/Shougo/neco-vim
[prabirshrestha/asyncomplete-necovim.vim]: https://github.com/prabirshrestha/asyncomplete-necovim.vim
[prabirshrestha/asyncomplete-buffer.vim]: https://github.com/prabirshrestha/asyncomplete-buffer.vim
[prabirshrestha/asyncomplete-tags.vim]: https://github.com/prabirshrestha/asyncomplete-tags.vim
[prabirshrestha/asyncomplete-file.vim]: https://github.com/prabirshrestha/asyncomplete-file.vim
[wellle/tmux-complete.vim]: https://github.com/wellle/tmux-complete.vim
[prabirshrestha/asyncomplete-ultisnips.vim]: https://github.com/prabirshrestha/asyncomplete-ultisnips.vim
[SirVer/ultisnips]: https://github.com/SirVer/ultisnips
[honza/vim-snippets]: https://github.com/honza/vim-snippets
[mattn/emmet-vim]: https://github.com/mattn/emmet-vim
[ludovicchabant/vim-gutentags]: https://github.com/ludovicchabant/vim-gutentags
[Raimondi/delimitMate]: https://github.com/Raimondi/delimitMate
[Shougo/denite.nvim]: https://github.com/Shougo/denite.nvim
[Shougo/neomru.vim]: https://github.com/Shougo/neomru.vim
[Shougo/neoyank.vim]: https://github.com/Shougo/neoyank.vim
[Shougo/junkfile.vim]: https://github.com/Shougo/junkfile.vim
[chemzqm/unite-location]: https://github.com/chemzqm/unite-location
[rafi/vim-denite-session]: https://github.com/rafi/vim-denite-session
[rafi/vim-denite-z]: https://github.com/rafi/vim-denite-z
[liuchengxu/vim-clap]: https://github.com/liuchengxu/vim-clap
[kana/vim-operator-user]: https://github.com/kana/vim-operator-user
[kana/vim-operator-replace]: https://github.com/kana/vim-operator-replace
[machakann/vim-sandwich]: https://github.com/machakann/vim-sandwich
[kana/vim-textobj-user]: https://github.com/kana/vim-textobj-user
[terryma/vim-expand-region]: https://github.com/terryma/vim-expand-region
[AndrewRadev/sideways.vim]: https://github.com/AndrewRadev/sideways.vim
[AndrewRadev/splitjoin.vim]: https://github.com/AndrewRadev/splitjoin.vim
[AndrewRadev/linediff.vim]: https://github.com/AndrewRadev/linediff.vim
[AndrewRadev/dsf.vim]: https://github.com/AndrewRadev/dsf.vim
[kana/vim-textobj-function]: https://github.com/kana/vim-textobj-function
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 enabling
g:elite_mode
in .vault.vim
Key-mappings
(๐ Click to expand/collapse)
Modes: ๐=normal ๐=visual ๐=select ๐=insert ๐=command
### Navigation
| Key | Mode | Action | Plugin or Mapping
| ----- |:----:| ------------------ | ------
| j / k | ๐ ๐ | Cursor moves through display-lines | `g` `j/k`
| g+j / k | ๐ ๐ ๐ | Jump to edge upward/downward | [haya14busa/vim-edgemotion]
| gh / gl | ๐ ๐ | Easier line-wise movement | `g` `^/$`
| Space+Space | ๐ ๐ | Toggle visual-line mode | `V` / Escape
| v / V | ๐ | Expand/reduce selection | [terryma/vim-expand-region]
| zl / zh | ๐ | Scroll horizontally and vertically wider | `z4` `l/h`
| Ctrl+j | ๐ | Move to split below | [christoomey/tmux-navigator]
| Ctrl+k | ๐ | Move to upper split | [christoomey/tmux-navigator]
| Ctrl+h | ๐ | Move to left split | [christoomey/tmux-navigator]
| Ctrl+l | ๐ | Move to right split | [christoomey/tmux-navigator]
| Return | ๐ | Toggle fold | `za`
| Shift+Return | ๐ | Focus the current fold by closing all others | `zMzvzt`
| ]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 error | [plugin/whitespace.vim]
| ]g or ]g | ๐ | Next/previous Git hunk | [airblade/vim-gitgutter]
| ]d or ]d | ๐ | Next/previous LSP diagnostic | [mattn/vim-lsp-settings]
| Ctrl+f | ๐ | Move cursor forwards in command | Right
| Ctrl+b | ๐ | Move cursor backwards in command | Left
| Ctrl+h | ๐ | Move cursor to the beginning in command | Home
| Ctrl+l | ๐ | Move cursor to the end in command | End
### File Operations
| Key | Mode | Action | Plugin 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
| Key | Mode | Action | Plugin or Mapping
| ----- |:----:| ------------------ | ------
| Ctrl+Return | ๐ | Expand emmet abbreviation | [mattn/emmet-vim]
| Q | ๐ | Start/stop macro recording | `q`
| gQ | ๐ | Play macro 'q' | `@q`
| Shift+Return | ๐ | Start new line from any cursor position | `o`
| < | ๐ ๐ | Indent to left and re-select | `> | ๐ ๐ | Indent to right and re-select | `>gv|`
| Tab | ๐ ๐ | Indent to right and re-select | `>gv|`
| Shift+Tab | ๐ ๐ | Indent to left and re-select | `gc | ๐ ๐ ๐ | Caw (comments plugin) prefix | [tyru/caw.vim]
| gcc | ๐ ๐ ๐ | Toggle comments | [tyru/caw.vim]
| Space+v | ๐ ๐ ๐ | Toggle single-line comments | [tyru/caw.vim]
| Space+V | ๐ ๐ ๐ | Toggle comment block | [tyru/caw.vim]
| Space+j or k | ๐ ๐ | Move lines down/up | `:m` โฆ
| Space+d | ๐ ๐ | Duplicate line or selection |
| Space+cn / cN | ๐ ๐ | Change current word in a repeatable manner |
| Space+cp | ๐ | Duplicate paragraph | `yapp`
| Space+cw | ๐ | Remove all spaces at EOL | `:%s/\s\+$//e`
| Ctrl+g g | ๐ | Jump outside of pair | [Raimondi/delimitMate]
| sj / sk | ๐ | Join/split arguments | [AndrewRadev/splitjoin.vim]
| dsf / csf | ๐ | Delete/change surrounding function call | [AndrewRadev/dsf.vim]
### Search & Replace
| Key | Mode | Action | Plugin or Mapping
| ----- |:----:| ------------------ | ------
| Space+f | ๐ | Filter lines in-place | [lambdalisue/fin.vim]
| \* / # | ๐ ๐ | Search selection forward/backward | [haya14busa/vim-asterisk]
| g\* / g# | ๐ ๐ | Search whole-word forward/backward | [haya14busa/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
| Key | Mode | Action | Plugin or Mapping
| ----- |:----:| ------------------ | ------
| p | ๐ ๐ | Paste without yank | [kana/vim-operator-replace]
| Y | ๐ | Yank to the end of line | `y$`
| Space+y | ๐ | Copy relative file-path to clipboard |
| Space+Y | ๐ | Copy absolute file-path to clipboard |
### Command & History
| Key | Mode | Action | Plugin or Mapping
| ----- |:----:| ------------------ | ------
| ! | ๐ | Shortcut for shell command | `:!`
| g! | ๐ | Read vim command into buffer | `:put=execute('โด')`
| Ctrl+n / p | ๐ | Switch history search pairs | โ / โ
| โ / โ | ๐ | Switch history search pairs | `Ctrl` `n`/`p`
### Editor UI
| Key | Mode | Action | Plugin 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 lines | [nathanaelkane/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
| Key | Mode | Action | Plugin or Mapping
| ----- |:----:| ------------------ | ------
| - | ๐ | Choose a window to edit | [t9md/vim-choosewin]
| ;+c | ๐ | Open context-menu | [plugin/actionmenu.vim]
| gK | ๐ | Open Zeal or Dash on some file-types | [plugin/devhelp.vim]
| gCtrl+o | ๐ | Navigate to previous file on jumplist | [plugin/jumpfile.vim]
| gCtrl+i | ๐ | Navigate to next file on jumplist | [plugin/jumpfile.vim]
| Space+l | ๐ | Open side-menu helper | [rafi/vim-sidemenu]
| Space+b | ๐ | Open structure window | [liuchengxu/vista.vim]
| Space+a | ๐ | Show nearby tag in structure window | [liuchengxu/vista.vim]
| Space+se | ๐ | Save current workspace session | [plugin/sessions.vim]
| Space+sl | ๐ | Load workspace session | [plugin/sessions.vim]
| Space+n/N | ๐ | Open alternative file | [kana/vim-altr]
| Space+tc | ๐ | Enable scroll-context window | [wellle/context.vim]
| Space+tp | ๐ | Peek scroll-context window | [wellle/context.vim]
| Space+S | ๐ ๐ | Source selection | `y:execute @@`
| Space+? | ๐ | Open the macOS dictionary on current word | `:!open dict://`
| Space+P | ๐ | Use Marked 2 for real-time Markdown preview | [Marked 2]
| Space+ml | ๐ | Append modeline to end of buffer | [config/mappings.vim]
| Space+mda | ๐ | Sequentially mark region for diff | [AndrewRadev/linediff.vim]
| Space+mdf | ๐ | Mark region for diff and compare if more than one | [AndrewRadev/linediff.vim]
| Space+mds | ๐ | Shows the comparison for all marked regions | [AndrewRadev/linediff.vim]
| Space+mdr | ๐ | Removes the signs denoting the diff regions | [AndrewRadev/linediff.vim]
| Space+mg | ๐ | Open Magit | [jreybert/vimagit]
| Space+mt | ๐ ๐ | Toggle highlighted word | [t9md/vim-quickhl]
| Space+- | ๐ | Switch editing window with selected | [t9md/vim-choosewin]
| Space+G | ๐ | Toggle distraction-free writing | [junegunn/goyo]
| Space+gu | ๐ | Open undo-tree | [mbbill/undotree]
| Space+K | ๐ | Thesaurus | [Ron89/thesaurus_query.vim]
| Space+W | ๐ | VimWiki | [vimwiki/vimwiki]
### Window Management
| Key | Mode | Action | Plugin or Mapping
| ----- |:----:| ------------------ | ------
| q | ๐ | Quit window (and Vim, if last window) | `:quit`
| Ctrl+q | ๐ | Remap to C-w | Ctrl+w
| Ctrl+x | ๐ | Rotate window placement | `C-w` `x`
| 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
| Key | Mode | Action | Plugin or Mapping
| ----- |:----:| ------------------ | ------
| gs | ๐ | Preview hunk | [airblade/vim-gitgutter]
| gS | ๐ ๐ ๐ | Stage hunk | [airblade/vim-gitgutter]
| Space+gr | ๐ | Revert hunk | [airblade/vim-gitgutter]
| Space+ga | ๐ | Git add current file | [lambdalisue/gina.vim]
| Space+gd | ๐ | Git diff | [lambdalisue/gina.vim]
| Space+gc | ๐ | Git branches | [lambdalisue/gina.vim]
| Space+gc | ๐ | Git commit | [lambdalisue/gina.vim]
| Space+gb | ๐ | Git blame | [lambdalisue/gina.vim]
| Space+gs | ๐ | Git status -s | [lambdalisue/gina.vim]
| Space+gl | ๐ | Git log --all | [lambdalisue/gina.vim]
| Space+gF | ๐ | Git fetch | [lambdalisue/gina.vim]
| Space+gp | ๐ | Git push | [lambdalisue/gina.vim]
| Space+go | ๐ ๐ | Open SCM detailed URL in browser | [lambdalisue/gina.vim]
### Plugin: Denite
| Key | Mode | Action
| ----- |:----:| ------------------
| ;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
| **Within _Denite_ window** ||
| jj or Escape | ๐ | Leave Insert mode
| i or / | ๐ | Enter Insert mode (filter input)
| q or Escape | ๐ | Exit denite window
| Tab or Shift+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
| Key | Mode | Action
| ----- |:----:| ------------------
| ;e | ๐ | Open file-explorer (toggle)
| ;a | ๐ | Focus current file in file-explorer
| **Within _Defx_ window** ||
| j or k | ๐ | Move up and down the tree
| l or Return | ๐ | 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 \ | ๐ | Change into current working directory
| ~ | ๐ | Change to user home directory
| u or Backspace | ๐ | Change into parent directory
| u 2/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 or gx | ๐ | 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
| Key | Mode | Action
| ----- |:----:| ------------------
| **Within _Clap_ window** ||
| jj or Escape | ๐ | Leave Insert mode
| i | ๐ | Enter Insert mode (filter input)
| q or Escape | ๐ | Exit clap window
| Tab or Shift+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
| Key | Mode | Action
| ----- |:----:| ------------------
| 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
| Key | Mode | Action
| ----- |:----:| ------------------
| 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
| Key | Mode | Action
| ----- |:----:| ------------------
| m/ or m? | ๐ | Show list of buffer marks/markers
| mm | ๐ | Toggle mark on current line
| m, | ๐ | Place next mark
| m a-z | ๐ | Place specific mark (Won't work for: mm, mn, mp)
| dm a-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
| m Space | ๐ | Purge marks
| m Backspace | ๐ | Purge markers
Credits & Contribution
Big thanks to the dark knight Shougo.
่งฃๅณ mac tmux ไธ neovim ๆ ๆณๅคๅถๅฐๅช่ดดๆฟ็้ฎ้ข
# https://github.com/tmux/tmux/issues/543
brew install reattach-to-user-namespace
# then edit your .tmux.conf
set -g default-shell $SHELL
set -g default-command "reattach-to-user-namespace -l ${SHELL}"
# In .vimrc or ~/.config/nvim/init.vim (I use Neovim):
set clipboard=unnamed
# reload tmux config
tmux source-file ~/.tmux.conf
่งฃๅณ vim gutter ไฝฟ็จ emoji ๆๆฌๆธฒๆ้ฎ้ข
See this Vim 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 issue https://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
.ropeproject
gen-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: https://github.com/junegunn/fzf.vim/issues/586
If you want to use coc.nvim for Golang completion,
please see this article ใvim as a go ideใ.
Now you can use coc
branch for go completion(use gopls). If you use python, type CocInstall coc-python
install
python coc plugin.
(ๆณจๆ็ฌ่
ๅบไบๅผๆบ้
็ฝฎไปฃ็ ไฟฎๆน๏ผ็ฌ่
็ leader ๆฏ "," ่ไธๆฏๆๆกฃไธญ็ Space)