-
Notifications
You must be signed in to change notification settings - Fork 265
Plugins
VehementHam edited this page May 12, 2024
·
94 revisions
A Lua based editor extension API is provided for in-process plugin development.
Plugins are loaded using require(name)
from your visrc.lua
configuration file,
leveraging the standard Lua module system. The used runtime paths can be displayed using
:help "Lua paths"
, the lookup order is also documented in the manual page.
-- load standard vis runtime files, must be done before anything else
require('vis')
-- load plugin called `<name>` (notice the omission of the `.lua` file extension)
require('<name>')
-- the remainder of your visrc.lua configuration file
A few standard plugins are included in the main repository.
Below is a list of externally developed plugins, the quality of which may vary:
- vis-backspace - remove backspaces with alignment to tabwidth, like vim's softtabstop
- vis-backup - make backups of current files before saving
- vis-build - asynchronously run (build) commands
-
vis-bytepos - display the cursor's byte offset when pressing
gi
- vis-colorizer - highlight hex colors inline
- vis-commentary - automatic block comments for most languages
-
vis-complete-line -
<C-e>
,<C-y>
, and<C-x><C-l>
, like in vim -
vis-copypasta -
C-c
andC-v
to copy and paste withCtrl-C
andCtrl-v
- vis-cscope - cscope support similar to vim's
- vis-ctags - add basic ctags support
- vis-cursors - remember last cursor position per file
-
vis-editorconfig - automatically parse and apply
.editorconfig
files - vis-eval - evaluate markdown code blocks without leaving the text editor
- vis-exchange - operator for swapping a pair of ranges
- vis-fenced-insert - insert mode as that of traditional vi
- vis-filetype-settings - set options automatically depending on filetype
- vis-format - format file or range using external tool
- vis-fzf-mru - open recently used files with fzf
- vis-fzf-open - open files with fzf
- vis-go - Go development plugin
-
vis-goto-file -
gf
and<C-w>f
, similar to vim's - vis-gpg - edit GPG files seamlessly and in place.
- vis-ins-completion - basic vim-like insert mode completion.
- vis-inotify - watch files using inotifywait
- vis-highlight - highlight multiple Lua patterns with optional style
-
vis-jump -
gx
jump to the external link (with custom processor, if required), like in the vim’s netrw. - vis-lint - lint or fix the current file and display the output in the message window.
- vis-lspc - language server protocol client
- vis-modelines - basic support for Vim modelines
- vis-motsel - create selections from motions
- vis-open-file-under-cursor - open file at primary cursor location
- vis-open_rej - open the .rej file if present for the currently opened file.
- vis-options-backport - make vis options available in lua for vis <=0.8
- vis-outdated - keep up-to-date with a list of git repos
- vis-pairs - textobjects and motions for delimited blocks
- vis-par - Experimental reformatter of paragraphs for vis(1)
- vis-parkour - structured editing for Lisps
- vis-plug - a minimal plugin (and theme) manager for vis
- vis-quickfix - most of vim's QuickFix commands
- vis-shebang - set syntax based on file shebang
- vis-smart-backspace - delete spaces at start of lines, like vim's softtabstop
- vis-sneak - jump to a location specified by two characters
- vis-spellcheck - syntax aware spellchecking
- vis-super-shellout - an alternative way to insert output from arbitrary shell commands
- vis-surround - operators for adding/changing/deleting block delimiters
- vis-tables - write tables
-
vis-todo - jump to next occurrence of 'TODO' when pressing
gt
- vis-title - set terminal title to current file
- vis-tmux-repl - send text from vis to another tmux pane (e.g. a read-eval-print loop)
-
vis-toggler - improved
<C-a>
/<C-x>
,~
,g~
,gu
, andgU
- vis-ultisnips - snippet plugin. Supports both SnipMate and UltiSnips, however has limited support for latter.
- vis-tasks - a simple todo list manager
- vis-yank-highlight - Make the yanked region apparent!
-
vis-dvorak - Remaps existing keybindings involving
hjkldtnHJKLDTN
to keys more logically fit for the Dvorak keyboard layout.
If you have written an extension for vis, you can share it on the list above.
The https://erf.github.io/vis-plugins is a web page with a more interactive view of vis plugins and themes.
You are welcome to contribute with PR's to vis-plugins