# vim-config
**Repository Path**: dasky92/vim-config
## Basic Information
- **Project Name**: vim-config
- **Description**: github fork vim-cofnig
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-21
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Rafael Bodill's Neo/vim Config
Lean mean Neo/vim machine, 30-45ms startup time.
Best with [Neovim] or [Vim8] 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](#denite)
* [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: Asyncomplete and Emmet](#plugin-asyncomplete-and-emmet)
* [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](#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`)
## Install
**_1._** Let's clone this repo! Clone to `~/.config/nvim`,
we'll also symlink it for regular Vim:
```bash
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: `./venvs.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` to use [mattn/vim-lsp-settings]
installation feature.
## Upgrade
```bash
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
* [Pragmata Pro] (โฌ19 โ โฌ1,990): My preferred font
* Any of the [Nerd Fonts]
On macOS with Homebrew, choose one of the [Nerd Fonts],
for example, to install the [Hack](https://sourcefoundry.org/hack/) font:
```bash
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
```
[Pragmata Pro]: https://www.fsd.it/shop/fonts/pragmatapro/
[Nerd Fonts]: https://www.nerdfonts.com
### Recommended Linters
* macOS with Homebrew:
```sh
brew install shellcheck jsonlint yamllint tflint ansible-lint
brew install tidy-html5 proselint write-good
```
* Node.js based linters:
```sh
yarn global add eslint jshint jsxhint stylelint sass-lint
yarn global add markdownlint-cli raml-cop
```
* Python based linters:
```sh
pip3 install --user vim-vint pycodestyle pyflakes flake8
```
### Recommended Tools
* **ag** [ggreer/the_silver_searcher](https://github.com/ggreer/the_silver_searcher)
(macOS: `brew install the_silver_searcher`)
* and/or **ripgrep**: [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep)
(macOS: `brew install rg`)
* Jump around with **z**: [rupa/z](https://github.com/rupa/z)
(macOS: `brew install z`)
* or **z.lua**: [acme/zlua](https://github.com/skywind3000/z.lua)
* **[Universal ctags](https://ctags.io/)** for syntax tokenization
(macOS: `brew install universal-ctags/universal-ctags/universal-ctags`)
* Fuzzy file finders:
**[fzf](https://github.com/junegunn/fzf)**,
**[fzy](https://github.com/jhawthorn/fzy)**, or
**[peco](https://github.com/peco/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.:
```yaml
- { repo: dense-analysis/ale, if: 0 }
```
## Structure
* [config/](./config) - Configuration
* [plugins/](./config/plugins) - Plugin configurations
* [all.vim](./config/plugins/all.vim) - Plugin mappings
* [โฆ](./config/plugins)
* [filetype.vim](./config/filetype.vim) - Language behavior
* [general.vim](./config/general.vim) - General configuration
* **local.plugins.yaml** - Custom user plugins
* **local.vim** - Custom user settings
* [mappings.vim](./config/mappings.vim) - Key-mappings
* [plugins.yaml](./config/plugins.yaml) - My favorite _**Plugins!**_
* [terminal.vim](./config/terminal.vim) - Terminal configuration
* [vimrc](./config/vimrc) - Initialization
* [ftplugin/](./ftplugin) - Language specific custom settings
* [plugin/](./plugin) - Customized small plugins
* [snippets/](./snippets) - Personal code snippets
* [themes/](./themes) - Colorscheme overrides
* [filetype.vim](./filetype.vim) - Custom filetype detection
## 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
| [itchyny/vim-gitbranch] | Lightweight git branch detection
| [itchyny/vim-parenmatch] | Efficient alternative to the standard matchparen plugin
| [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
| [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
| [rhysd/vim-gfm-syntax] | GitHub Flavored Markdown syntax highlight extension
| [pangloss/vim-javascript] | Enhanced Javascript syntax
| [HerringtonDarkholme/yats.vim] | Advanced TypeScript Syntax Highlighting
| [MaxMEllon/vim-jsx-pretty] | React JSX syntax pretty highlighting
| [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
| [fatih/vim-go] | Go development
| [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
| [IN3D/vim-raml] | Syntax and language settings for RAML
| [towolf/vim-helm] | Syntax for Helm templates (yaml + gotmpl + sprig)
| [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
| [liuchengxu/vim-which-key] | Shows key-bindings in pop-up
| [mbbill/undotree] | Ultimate undo history visualizer
| [reedes/vim-wordy] | Uncover usage problems in your writing
| [brooth/far.vim] | Fast find and replace plugin
| [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
| [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
| [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'
| [lambdalisue/suda.vim] | An alternative sudo.vim for Vim and Neovim
| [mzlogin/vim-markdown-toc] | Generate table of contents for Markdown files
| [chemzqm/vim-easygit] | Git wrapper focus on simplity and usability
| [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
| -------------- | ----------------------
| [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
| [hotwatermorning/auto-git-diff] | Display Git diff for interactive rebase
| [rafi/vim-sidemenu] | Small side-menu useful for terminal users
| [machakann/vim-highlightedyank] | Make the yanked region apparent
| [wellle/context.vim] | Show context of current visible code hierarchy
| [itchyny/cursorword] | Underlines word under cursor
| [norcalli/nvim-colorizer.lua] | The fastest Neovim colorizer
| [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
| [vimwiki/vimwiki] | Personal Wiki for Vim
#### 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-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
| [dense-analysis/ale] | Check syntax asynchronously and fix files with LSP support
| [mattn/emmet-vim] | Provides support for expanding abbreviations alรก emmet
| [ncm2/float-preview.nvim] | Less annoying completion preview window
| [ludovicchabant/vim-gutentags] | Manages your tag files
| [Raimondi/delimitMate] | Auto-completion for quotes, parens, brackets
#### Denite
| 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
| [chemzqm/denite-git] | gitlog, gitstatus and gitchanged sources
| [rafi/vim-denite-session] | Browse and open sessions
| [rafi/vim-denite-z] | Filter and browse Z (jump around) data file
#### 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
| [osyo-manga/vim-textobj-multiblock] | Handle bracket objects
| [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
[itchyny/vim-gitbranch]: https://github.com/itchyny/vim-gitbranch
[itchyny/vim-parenmatch]: https://github.com/itchyny/vim-parenmatch
[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
[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
[rhysd/vim-gfm-syntax]: https://github.com/rhysd/vim-gfm-syntax
[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
[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
[fatih/vim-go]: https://github.com/fatih/vim-go
[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
[IN3D/vim-raml]: https://github.com/IN3D/vim-raml
[towolf/vim-helm]: https://github.com/towolf/vim-helm
[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
[liuchengxu/vim-which-key]: https://github.com/liuchengxu/vim-which-key
[mbbill/undotree]: https://github.com/mbbill/undotree
[reedes/vim-wordy]: https://github.com/reedes/vim-wordy
[brooth/far.vim]: https://github.com/brooth/far.vim
[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
[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
[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
[lambdalisue/suda.vim]: https://github.com/lambdalisue/suda.vim
[mzlogin/vim-markdown-toc]: https://github.com/mzlogin/vim-markdown-toc
[chemzqm/vim-easygit]: https://github.com/chemzqm/vim-easygit
[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
[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
[hotwatermorning/auto-git-diff]: https://github.com/hotwatermorning/auto-git-diff
[rafi/vim-sidemenu]: https://github.com/rafi/vim-sidemenu
[machakann/vim-highlightedyank]: https://github.com/machakann/vim-highlightedyank
[wellle/context.vim]: https://github.com/wellle/context.vim
[itchyny/cursorword]: https://github.com/itchyny/vim-cursorword
[norcalli/nvim-colorizer.lua]: https://github.com/norcalli/nvim-colorizer.lua
[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
[vimwiki/vimwiki]: https://github.com/vimwiki/vimwiki
[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-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
[dense-analysis/ale]: https://github.com/dense-analysis/ale
[mattn/emmet-vim]: https://github.com/mattn/emmet-vim
[ncm2/float-preview.nvim]: https://github.com/ncm2/float-preview.nvim
[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
[chemzqm/denite-git]: https://github.com/chemzqm/denite-git
[rafi/vim-denite-session]: https://github.com/rafi/vim-denite-session
[rafi/vim-denite-z]: https://github.com/rafi/vim-denite-z
[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
[osyo-manga/vim-textobj-multiblock]: https://github.com/osyo-manga/vim-textobj-multiblock
[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]
| ]c or ]c | ๐ | Next/previous Ale diagnostic | [dense-analysis/ale]
| 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+Tab | ๐ | 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
| ----- |:----:| ------------------ | ------
| * / # | ๐ ๐ | 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]
| 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+o | ๐ ๐ | Open SCM detailed URL in browser | [plugin/browser.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`
| 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 | [chemzqm/vim-easygit]
| Space+gd | ๐ | Git diff | [chemzqm/vim-easygit]
| Space+gc | ๐ | Git commit | [chemzqm/vim-easygit]
| Space+gb | ๐ | Git blame | [chemzqm/vim-easygit]
| Space+gF | ๐ | Git fetch | [chemzqm/vim-easygit]
| Space+gp | ๐ | Git push | [chemzqm/vim-easygit]
### Plugin: Denite
| Key | Mode | Action
| ----- |:----:| ------------------
| ;r | ๐ | Resumes last Denite window
| ;f | ๐ | File search
| ;g | ๐ | Grep search
| ;b | ๐ | Buffers and MRU
| ;d | ๐ | Directories and MRU
| ;v | ๐ ๐ | Yank history
| ;l | ๐ | Location list
| ;q | ๐ | Quick fix
| ;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
| ;m | ๐ | Memo list
| ;z | ๐ | Z (jump around)
| ;; | ๐ | Command history
| ;/ | ๐ | Buffer lines
| ;* | ๐ | Search word under cursor with lines
| Space+gl | ๐ | Git log (all)
| Space+gs | ๐ | Git status
| Space+gc | ๐ | Git branches
| 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: 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
| Ctrl+f | ๐ ๐ | Jump to next snippet placeholder
| Ctrl+b | ๐ ๐ | Jump to previous snippet placeholder
### 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](https://github.com/Shougo).
[config/mappings.vim]: ./config/mappings.vim
[plugin/whitespace.vim]: ./plugin/whitespace.vim
[plugin/sessions.vim]: ./plugin/sessions.vim
[plugin/browser.vim]: ./plugin/browser.vim
[plugin/devhelp.vim]: ./plugin/devhelp.vim
[plugin/actionmenu.vim]: ./plugin/actionmenu.vim
[Marked 2]: https://marked2app.com
[Neovim]: https://github.com/neovim/neovim
[Vim8]: https://github.com/vim/vim
[lazy-loaded]: ./config/plugins.yaml#L47
### ่งฃๅณ 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](https://www.reddit.com/r/vim/comments/6vkoii/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
### [Coc.Nvim](https://github.com/neoclide/coc.nvim)
If you want to use [coc.nvim](https://github.com/neoclide/coc.nvim) for Golang completion,
please see this article [ใvim as a go ideใ](https://octetz.com/docs/2019/2019-04-24-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.