Vim plugins: Difference between revisions

From wikinotes
 
(16 intermediate revisions by the same user not shown)
Line 4: Line 4:
{{ NOTE |
{{ NOTE |
See vimrc for latest notes, plugins, and usage.
See vimrc for latest notes, plugins, and usage.
}}
{{ TODO |
organize these by vim vs neovim
}}
}}


Line 22: Line 26:
<blockquote>
<blockquote>
{|
{|
| [[VimPlugin: vim-plug]] || asynchronous plugin manager  
| [[VimPlugin: vim-plug]] || asynchronous plugin manager
|-
|-
| [[VimPlugin: Vundle]] || plugin manager
| [[VimPlugin: Vundle]] || plugin manager
Line 33: Line 37:
{|
{|
| [[VimPlugin: Ale]]              || Language Agnostic Linter (lightweight)
| [[VimPlugin: Ale]]              || Language Agnostic Linter (lightweight)
|-
| [[VimPlugin: vim bookmarks]]    || store bookmarks in codebase
|-
|-
| [[VimPlugin: Cscope]]          || Jump to Code (inverse of ctags)
| [[VimPlugin: Cscope]]          || Jump to Code (inverse of ctags)
Line 40: Line 46:
| [[VimPlugin: Drawit]]          || Draw ASCII diagrams
| [[VimPlugin: Drawit]]          || Draw ASCII diagrams
|-
|-
| [[VimPlugin: EasyMotion]]      || Vimperator style search-word, then target a specific instance.
| [[VimPlugin: EasyMotion]]      || motions, without counting
|-
|-
| [[VimPlugin: Fugitive]]        || Git interface
| [[VimPlugin: Fugitive]]        || Git interface
Line 51: Line 57:
|-
|-
| [[VimPlugin: indentLine]]      || visual marks to show level of indentation
| [[VimPlugin: indentLine]]      || visual marks to show level of indentation
|-
| [[VimPlugin: indent-blankline]] || configurable indentation lines, and a highlighted scope indicator line
|-
|-
| [[VimPlugin: NERDTree]]        || File Manager
| [[VimPlugin: NERDTree]]        || File Manager
Line 59: Line 67:
|-
|-
| [[VimPlugin: Speech]]          || reads everything you type in a computerized voice (used while wisdom teeth were out)
| [[VimPlugin: Speech]]          || reads everything you type in a computerized voice (used while wisdom teeth were out)
|-
| [[VimPlugin: surround]]        || Add/Change/Remove surrounding tags (ex. quotes, html-elements, ..)
|-
|-
| [[VimPlugin: Syntastic]]        || Language Agnostic Linter (heavy)
| [[VimPlugin: Syntastic]]        || Language Agnostic Linter (heavy)
Line 93: Line 103:
|-
|-
| [[VimPlugin: vim-maximizer]]    || toggle vim-split an fullscreen (like tmux)
| [[VimPlugin: vim-maximizer]]    || toggle vim-split an fullscreen (like tmux)
|-
| [[VimPlugin: vim-matchup]]      || highlight and jump between various language open/end syntax
|-
|-
| [[VimPlugin: vim-over]]        || dynamic highlighting/preview while you perform search/replaces
| [[VimPlugin: vim-over]]        || dynamic highlighting/preview while you perform search/replaces
Line 105: Line 117:
|-
|-
| [[VimPlugin: visual-increment]] || multiline increment/deincrement numbers using ctrl+a/ctrl+x
| [[VimPlugin: visual-increment]] || multiline increment/deincrement numbers using ctrl+a/ctrl+x
|-
| [[VimPlugin: orgmode.nvim]] || neovim [[org mode]] plugin
|-
| [[VimPlugin: vim-orgmode]] || minimal [[org mode]] plugin for vim
|-
| [[VimPlugin: org.vim]] || minimal [[org mode]] plugin for vim
|-
| [[VimPlugin: vim-table-mode]] || spreadsheet like behaviour within vim
|-
| [[VimPlugin: vim-localvimrc]] || project-specific vimrc files
|-
| [[VimPlugin: lightline]] || lightweight powerline clone w/ api for hooking other plugin info
|-
| [[NvimPlugin: telescope]] || search various things, built overtop of fzf
|-
|}
|}
</blockquote><!-- general -->
</blockquote><!-- general -->
Line 110: Line 137:
= Completion/LSP =
= Completion/LSP =
<blockquote>
<blockquote>
{|  
{|
|-
|-
| [[VimPlugin: YouCompleteMe]]    || Code-Completion
| [[VimPlugin: YouCompleteMe]]    || Code-Completion
Line 117: Line 144:
|-
|-
| [[VimPlugin: Coc.nvim]]          || intellisense for neovim (refactor-rename, autocomplete, goto, find-references, ....)
| [[VimPlugin: Coc.nvim]]          || intellisense for neovim (refactor-rename, autocomplete, goto, find-references, ....)
|-
| [[VimPlugin: lsp]]              || neovim's builtin lsp
|-
| [[VimPlugin: nvim-lspconfig]]    || configs for neovim's builtin lsp
|-
| [[VimPlugin: nvim-lsp-installer]] || installs lsp providers
|-
| [[VimPlugin: mason]]            || install lsp providers
|-
|-
| [[VimPlugin: LanguageClient]]    || autocomplete for vim (refactor-rename, autocomplete, goto, find-references, ...)
| [[VimPlugin: LanguageClient]]    || autocomplete for vim (refactor-rename, autocomplete, goto, find-references, ...)
Line 126: Line 161:
| [[VimPlugin: vim-go]]            || completion, debugging, builds, etc
| [[VimPlugin: vim-go]]            || completion, debugging, builds, etc
|-
|-
| [[nvim plug: nvim-ufo]]          || syntax-highlighting within folds
|}
|}


Line 178: Line 214:
|}
|}
</blockquote><!-- Java -->
</blockquote><!-- Java -->
== LaTex ==
<blockquote>
{|
|-
| [[VimPlugin: vimtex]] || Latex editor, previews
|-
|}
</blockquote><!-- LaTex -->
</blockquote><!-- Language Specific -->
</blockquote><!-- Language Specific -->


= Syntax Highlighting =
= Syntax Highlighting =
<blockquote>
<blockquote>
{|  
{|
|-
|-
| [[VimPlugin: Markdown-Syntax]] ||  
| [[VimPlugin: Markdown-Syntax]] ||
|-
|-
| [[VimPlugin: vim-cpp-enhanced-highlight]] ||  
| [[VimPlugin: vim-cpp-enhanced-highlight]] ||
|-
|-
| [[VimPlugin: vim-ledger]] ||  
| [[VimPlugin: vim-ledger]] ||
|-
|-
| [[VimPlugin: typescript-vim]] ||
| [[VimPlugin: typescript-vim]] ||
Line 200: Line 245:
| [[VimPlugin: nvim-treesitter]] || autocomplete, syntax highlighting, much more
| [[VimPlugin: nvim-treesitter]] || autocomplete, syntax highlighting, much more
|-
|-
| [[VimPlugin: python-syntax]] ||  
| [[VimPlugin: python-syntax]] ||
|-
|-
| [[VimPlugin: salt-vim]] || syntax highlighting for saltstack .sls files
| [[VimPlugin: salt-vim]] || syntax highlighting for saltstack .sls files
Line 216: Line 261:
| [[VimPlugin: FastFold]] ||
| [[VimPlugin: FastFold]] ||
|-
|-
| [[VimPlugin: vim-yaml-folds]] ||  
| [[VimPlugin: vim-yaml-folds]] ||
|}
|}
</blockquote><!-- Folds -->
</blockquote><!-- Folds -->
Line 223: Line 268:
<blockquote>
<blockquote>
{| class="wikitable"
{| class="wikitable"
| [[talon]] ||  
| [[talon]] ||
|-
|-
| F# plugin to control vim with speech || https://github.com/AshleyF/VimSpeak
| F# plugin to control vim with speech || https://github.com/AshleyF/VimSpeak

Latest revision as of 23:34, 23 February 2024

Vim is extremely extensible, both using viml and python (if it is compiled into your version of vim). If you are looking for directions for creating your own plugins, See Writing Vim Plugins.

NOTE:

See vimrc for latest notes, plugins, and usage.

TODO:

organize these by vim vs neovim

Managing Plugins

Check if plugin is loaded

" check if a plugin is loaded
if &rtp =~ 'vim-airline,'
    echo "vim-airline plugin is loaded"
endif

https://stackoverflow.com/questions/13710364/viml-checking-if-function-exists

Plugin Managers

VimPlugin: vim-plug asynchronous plugin manager
VimPlugin: Vundle plugin manager

General

VimPlugin: Ale Language Agnostic Linter (lightweight)
VimPlugin: vim bookmarks store bookmarks in codebase
VimPlugin: Cscope Jump to Code (inverse of ctags)
VimPlugin: Ctags Jump to Code
VimPlugin: Drawit Draw ASCII diagrams
VimPlugin: EasyMotion motions, without counting
VimPlugin: Fugitive Git interface
VimPlugin: fzf.vim search files
VimPlugin: GitGutter marks each line in your git file based on if it is changed, added, removed from HEAD.
VimPlugin: gitlink-vim yank commits, github-links to line
VimPlugin: indentLine visual marks to show level of indentation
VimPlugin: indent-blankline configurable indentation lines, and a highlighted scope indicator line
VimPlugin: NERDTree File Manager
VimPlugin: QFEnter open files from vim's quickfix window
VimPlugin: Simplenote.vim Interact with Simplenote
VimPlugin: Speech reads everything you type in a computerized voice (used while wisdom teeth were out)
VimPlugin: surround Add/Change/Remove surrounding tags (ex. quotes, html-elements, ..)
VimPlugin: Syntastic Language Agnostic Linter (heavy)
VimPlugin: Tabular Automatically Align Indentation
VimPlugin: TagBar Table Of Contents (requires ctags)
VimPlugin: Vim-Signature Add and jump between marks within a file (in the sidebar)
VimPlugin: vim-dispatch compile, run tests asynchronously from vim and integrate in quickfix
VimPlugin: VimChat XMPP client
VimPlugin: dbext execute SQL in vim buffer
VimPlugin: eclim Integrate vim and eclipse
VimPlugin: incsearch dynamic highlighting while you type in search
VimPlugin: tabman overview of all tabs/splits, quickly jump to one
VimPlugin: tComment Language agnostic shortcuts to quickly comment out large sections of text.
VimPlugin: ultisnips insert snippets into source-files
VimPlugin: vim-dasht show documentation, and autocomplete based on documentation
VimPlugin: vim-diminactive dim inactive vim-splits
VimPlugin: vim-gnupg read/write gpg encrypted files seamlessly (and securely) from vim
VimPlugin: vim-ipython Run code within Ipython session from vim sourcecode
VimPlugin: vim-maximizer toggle vim-split an fullscreen (like tmux)
VimPlugin: vim-matchup highlight and jump between various language open/end syntax
VimPlugin: vim-over dynamic highlighting/preview while you perform search/replaces
VimPlugin: vim-snipmate viml snippets library
VimPlugin: vim-superman coloured man-pages using vim
VimPlugin: vim-taskwarrior taskwarrior interface within vim. much better than the official UI for it.
VimPlugin: vim-test test runner for various languages
VimPlugin: visual-increment multiline increment/deincrement numbers using ctrl+a/ctrl+x
VimPlugin: orgmode.nvim neovim org mode plugin
VimPlugin: vim-orgmode minimal org mode plugin for vim
VimPlugin: org.vim minimal org mode plugin for vim
VimPlugin: vim-table-mode spreadsheet like behaviour within vim
VimPlugin: vim-localvimrc project-specific vimrc files
VimPlugin: lightline lightweight powerline clone w/ api for hooking other plugin info
NvimPlugin: telescope search various things, built overtop of fzf

Completion/LSP

VimPlugin: YouCompleteMe Code-Completion
VimPlugin: deoplete very fast autocompleter
VimPlugin: Coc.nvim intellisense for neovim (refactor-rename, autocomplete, goto, find-references, ....)
VimPlugin: lsp neovim's builtin lsp
VimPlugin: nvim-lspconfig configs for neovim's builtin lsp
VimPlugin: nvim-lsp-installer installs lsp providers
VimPlugin: mason install lsp providers
VimPlugin: LanguageClient autocomplete for vim (refactor-rename, autocomplete, goto, find-references, ...)
VimPlugin: vim-javacomplete2 fast autocompletion for java
VimPlugin: nvim-treesitter autocomplete, syntax highlighting, much more
VimPlugin: vim-go completion, debugging, builds, etc
nvim plug: nvim-ufo syntax-highlighting within folds
Blogs/Tutorials
lsp comparison 2019 https://bluz71.github.io/2019/10/16/lsp-in-vim-with-the-lsc-plugin.html

Language Specific

VIML

vader unittesting library for vim
covimerage produces coverage.xml files from vader.vim

Python

VimPlugin: RopeVim python refactoring
VimPlugin: vim-pyunit view/run/toggle python unittests
VimPlugin: python-mode MetaPackage, several of the most popular python extensions for vim
VimPlugin: SimpylFold syntax based folding for python

Ruby/Rails

VimPlugin: vim-rails syntax highlighting, and some functions

Java

VimPlugin: vim-maven-plugin Interact with maven from vim

LaTex

VimPlugin: vimtex Latex editor, previews

Syntax Highlighting

VimPlugin: Markdown-Syntax
VimPlugin: vim-cpp-enhanced-highlight
VimPlugin: vim-ledger
VimPlugin: typescript-vim
VimPlugin: vim-nix
VimPlugin: vim-tsx
VimPlugin: vim-graphql
VimPlugin: nvim-treesitter autocomplete, syntax highlighting, much more
VimPlugin: python-syntax
VimPlugin: salt-vim syntax highlighting for saltstack .sls files
VimPlugin: nginx.vim syntax highlighting for nginx files
VimPlugin: vim-ps1 powershell syntax highlighting for vim

Folds

VimPlugin: FastFold
VimPlugin: vim-yaml-folds

Speech Coding

talon
F# plugin to control vim with speech https://github.com/AshleyF/VimSpeak
voicecode plugin for vim https://github.com/VoiceCode/vim