-
Notifications
You must be signed in to change notification settings - Fork 261
Plugins
fischerling edited this page May 15, 2024
·
93 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-dvorak - Remaps existing keybindings involving
hjkldtnHJKLDTN
to keys more logically fit for the Dvorak keyboard layout. -
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-lockfiles - detect concurrent edits using lock files
- 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-smart-numbers - Set relative line numbers in normal mode, and regular line numbers in insert mode.
- 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!
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