mirror of
https://github.com/prurigro/darkcloud-nvimconfig.git
synced 2024-11-21 11:22:34 -05:00
A theme, config and collection of plugins for Neovim
vim | ||
.gitignore | ||
.gitmodules | ||
add-submodule | ||
delete-submodule | ||
init.vim | ||
LICENSE | ||
readme.md | ||
update |
darkcloud-nvimconfig
A theme, config and collection of plugins for Neovim
Requirements
- Neovim: neovim is a hard dependency
- Bash: Required by the update and gentags scripts.
- Coreutils: Required by the update script.
- Git: Required by the update script and git-related plugins.
Optional Requirements
- Compilers, Linters and Runtimes: The ale plugin can use compilers, linters and runtimes to provide real-time syntax checking.
- CTags: Required by the tagbar and deoplete plugins as well as the gentags script (ctags website).
- Powerline Fonts: Required to enable the fancier looking status line (powerline-fonts repo).
- Python: Required for deoplete autocompletion and MatchTagAlways functionality.
- Neovim Python Module: Required for deoplete autocompletion.
- Python Msgpack: Required for deoplete autocompletion.
Distribution Features
- Default Configuration: A complete set of defaults, focusing on the most modern settings that still provide a compatible experience.
- Custom theme: An original colour scheme with explicit values set to optimize the look of individual filetypes.
- Key Bindings/Aliases: A set of bindings and aliases defined to group similar features and provide numerous (and sometimes more familiar) ways to access options.
- Plugins: A set of plugins have been included and configured to provide support for most normally-unsupported filetypes, and a set of features useful when using Vim as an editor.
- Custom Configuration: A second vimrc and bundle folder are included that aren't maintained as part of the repo, making custom plugins and configuration easy to add.
Installation
- Clone the darkcloud-nvimconfig repo and run the
update
script. - By default the config expects darkcloud-nvimconfig to be installed @
/etc/darkcloud-nvimconfig
, if you're installing it elsewhere you should addlet g:darkcloudpath = "/path/to/darkcloud-nvimconfig"
to your neovim init. - Add
source /path/to/darkcloud-nvimconfig/init.vim
to the neovim init that you want to use the config with
Configuration
- Configure Variables: The following variables can be added to
vim/user.vim
and have their values set to the values you require:g:autostartchecker
: 1 = Enable the syntax checker when a file is opened | 0 = Check syntax only after being toggled on (default: 0)g:autostarttagbar
: 1 = Load a file with the tagbar visible | 0 = Require the tagbar to be toggled on (default: 0)g:enabletreesitter
: 1 = Use treesitter for compatible files | 0 = Keep treesitter disabled (default: 0)g:enablecompletion
: 1 = Enable autocompletion | 0 = Disable autocompletion (default: 0)g:enableautotags
: 1 = Automatically generate tags files | 0 = Disable tag generation (default: 0)g:enablepowerline
: 1 = Render the statusline using characters that require powerline-patched fonts | 0 = Render the statusbar with characters that work with all fonts (default: 0)
- Custom Settings: Settings with priority over those set by darkcloud-nvimconfig can be added to
vim/user.vim
or any of the folders in the runtimepath. - Custom Plugins: Pathogen compatible plugins can be cloned or extracted to
darkcloud-nvimconfig/vim/bundle.user/
, or a folder namedbundle
in any of the folders in the runtimepath. - Update Script: (requires: bash+git) Use the
update
script to update the project and submodules, as well as handle any required maintenance, generate docs from the pathogen plugins and create missing config scripts with preset values.
Mappings
Mouse
Binding | Mode | Action |
---|---|---|
(Ctrl|Alt|Shift)+ScrollUp | ALL | Scroll left a few characters at a time |
(Ctrl|Alt|Shift)+ScrollDown | ALL | Scroll right a few characters at a time |
MiddleClick | ALL | Select between the cursor and the mouse |
Ctrl+LeftClick | ALL | Select between the cursor and the mouse |
Alt+LeftClick | ALL | Select the line at the mouse |
Ctrl+Alt+LeftClick | ALL | Select the paragraph at the mouse |
Ctrl+RightClick | ALL | Copy selection or character under the cursor |
Ctrl+MiddleClick | ALL | Copy selection or character under the cursor |
Alt+RightClick | ALL | Cut selection or character under the cursor |
Alt+MiddleClick | ALL | Cut selection or character under the cursor |
Ctrl+Alt+RightClick | ALL | Paste at the cursor |
Ctrl+Alt+MiddleClick | ALL | Paste at the cursor |
Shift+MiddleClick | ALL | Paste the contents of the xorg buffer |
Keyboard
Sidebars
Binding | Mode | Action |
---|---|---|
F11 or Leader+[ | N | Toggle git history for the current file |
F12 or Leader+] | N | Toggle the tagbar source code tag sidebar |
Leader+Leader | N | Toggle the location list for ale issues |
Toggles
Binding | Mode | Action |
---|---|---|
~ | N | Popup a command list dialog |
F1 | ALL | Toggle line wrapping |
F2 | ALL | Toggle highlighting of spelling mistakes |
F3 | ALL | Toggle external-paste mode |
F4 | ALL | Toggle source code syntax checking |
` | N | Toggle gutter (left bar with line numbers etc.) |
Leader+? | N | Toggle the vim reference manual |
Spell Check
Binding | Mode | Action |
---|---|---|
?+ | N | Add the selected word to the local dictionary |
?? | N | Show spelling suggestions for selected word |
?N | N | Go to the next spelling mistake |
?P | N | Go to the previous spelling mistake |
Fixing and Formatting
Binding | Mode | Action |
---|---|---|
Leader+J | N+V | Format line/selected lines to a max width of the textwidth |
Leader+f | N+V | Format document/selection alignment using Vim syntax |
Leader+f | N+V | (Markdown) Format table cursor is currently on |
Leader+F | N | Fix document with available ale fixers |
Leader+t | N | Convert all tabs into spaces and continue session with spaces |
Leader+T | N | Convert all spaces into tabs and continue session with tabs |
Leader+w | N | Remove all trailing whitespace |
Complete Reference
For a complete list of mappings specific to darkcloud-nvimconfig, check the list in the comments at the top of vim/config/keyboard.vim.
Plugins
- ale: Asynchronous Lint Engine
- Comment.nvim: Smart and Powerful commenting plugin for neovim
- nvim-ts-context-commentstring: A Neovim plugin for setting the commentstring option based on the cursor location in the file. The location is checked via treesitter queries
- deoplete.nvim: Dark powered asynchronous completion framework for neovim/Vim8
- neco-syntax: Syntax source for neocomplete/deoplete/ncm
- editorconfig-vim: EditorConfig plugin for Vim that auto-configures certain settings when a .editorconfig file is present
- incsearch.vim: Improved incremental searching for Vim
- lightline.vim: A light and configurable statusline/tabline for Vim
- lightline-ale: Provides ALE indicator for the lightline vim plugin
- MatchTagAlways: A Vim plugin that always highlights the enclosing html/xml tags
- nvim-treesitter: Treesitter configurations and abstraction layer for Neovim
- ReplaceWithRegister: Replace text with the contents of a register (for paste+replace without writing over the buffer)
- splitjoin.vim: Simplifies the transition between multiline and single-line code
- tabular: Vim script for text filtering and alignment
- tagbar: Uses ctags to generate a sidebar of the tags for the current file
- vim-fugitive: A wrapper integrating git into vim in such a way as to provide features neither of them could offer on their own
- vim-gutentags: A plugin that takes care of the much needed management of tags files in Vim
- vim-move: Provides a few convenient ways to move selected text
- vim-pathogen: A plugin to load other plugins while keeping them isolated in their own directory structure rather than all dumped together
- vim-polyglot-darkcloud: The darkcloud-nvimconfig fork of a meta-package that attempts to provide the best syntax plugins for each file type
- vim-signify: When a version controlled file is changed, this displays a column showing where and how, and allows for navigation to and between differences
- vim-surround: Provides functionality to exchange surrounding delimiters and xml-style tags with another, or simply remove them
- vim-repeat: A library used by vim-surround to allow its delimiter-switching functions to be repeated with the
.
command
- vim-repeat: A library used by vim-surround to allow its delimiter-switching functions to be repeated with the
- vim-togglelist: A simple plugin for vim that allows you to bind a key to toggle the Location List and the Quickfix List
- vim-trailing-whitespace: Highlights and allows for the easy removal of trailing whitespace in documents
- vim-unimpaired: Pairs of handy bracket mappings
Credits
- By Kevin MacMartin: GitHub Projects | Arch Linux AUR Packages
- The vim-markdown plugin TableFormat command, used to format tables in markdown files, was pulled into plugins.vim from ftplugin/mkd.