A theme, config and collection of plugins for Neovim
  • Vim Script 80.4%
  • Shell 13.3%
  • Lua 6.3%
Find a file
2026-03-06 17:13:16 -05:00
vim Remove nvim-treesitter-textobjects, upgrade nvim-treesitter to the main branch, update the nvim-treesitter configuration to reflect the new version, add an optional dependency on tree-sitter-cli when treesitter support is enabled, and move the ts-commentstring init to the treesitter config as that's the dependency 2026-03-06 17:13:16 -05:00
.gitignore Add update-errors.log to the gitignore 2024-03-04 00:19:33 -05:00
.gitmodules Remove nvim-treesitter-textobjects, upgrade nvim-treesitter to the main branch, update the nvim-treesitter configuration to reflect the new version, add an optional dependency on tree-sitter-cli when treesitter support is enabled, and move the ts-commentstring init to the treesitter config as that's the dependency 2026-03-06 17:13:16 -05:00
add-bundle Rename add/delete-submodule to add/delete-bundle 2024-03-04 01:35:55 -05:00
delete-bundle Rename add/delete-submodule to add/delete-bundle 2024-03-04 01:35:55 -05:00
init.vim Init user vars before loading colors so we can check for treesitter first, only define treesitter colors if treesitter is enabled, and remove scss colors (scss syntax support is broken) 2026-03-06 17:12:26 -05:00
LICENSE License tweaks 2024-03-01 23:42:48 -05:00
readme.md Remove nvim-treesitter-textobjects, upgrade nvim-treesitter to the main branch, update the nvim-treesitter configuration to reflect the new version, add an optional dependency on tree-sitter-cli when treesitter support is enabled, and move the ts-commentstring init to the treesitter config as that's the dependency 2026-03-06 17:13:16 -05:00
update Make the highlighted text in the update script bold 2024-09-12 18:01:09 -04:00

darkcloud-nvimconfig

A theme, config and collection of plugins for Neovim

Requirements

  • Neovim: neovim is a hard dependency
  • Bash: Required by the update script
  • Coreutils: Required by the update script
  • Git: Required by the update script and git-related plugins

Optional Requirements

  • Powerline Fonts: Required to enable the fancier looking status line
  • Universal CTags: Required by vim-gutentags and vista, and optional for nvim-cmp
  • Compilers, Linters and Runtimes: The ale plugin can use compilers, linters and runtimes to provide real-time syntax checking
  • Tree-sitter CLI: Required to enable treesitter support

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 file types
  • 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 file types, 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

  1. Clone the darkcloud-nvimconfig repo and run the update script
  2. Add source /path/to/darkcloud-nvimconfig/init.vim to your neovim init

Configuration

  • Configure Variables: The following variables can be added to local/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: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 status line using characters that require powerline-patched fonts | 0 = Render the status line with characters that work with all fonts (default: 0)
  • Custom Plugins: Pathogen compatible plugins can be cloned or extracted to local/bundle/, or a folder named bundle 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

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

A more complete list of key bindings exists at the top of vim/config/keyboard.vim

Sidebars

Binding Mode Action
F11 or Leader+[ N Toggle git history for the current file
F12 or Leader+] N Toggle the vista symbol and tag sidebar
Leader+Leader N Toggle the location list for ale issues

Toggles

Binding Mode Action
` N Toggle gutter (left bar with line numbers, etc)
~ N Toggle code the code folding sidebar
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

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 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 and the various plugin configs.

Plugins

  • ale: Asynchronous Lint Engine
  • Comment.nvim: Smart and Powerful commenting plugin for neovim
  • lightline.vim: A light and configurable statusline/tabline plugin for Vim
    • lightline-ale: Provides ALE indicator for the lightline vim plugin
  • nvim-cmp: A completion engine plugin for neovim written in Lua
  • nvim-surround: Add/change/delete surrounding delimiter pairs with ease
  • nvim-treesitter: Treesitter configurations and abstraction layer 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.
  • qf.nvim: Extends the default quickfix and location lists for neovim
  • smartyank.nvim: An opinionated (yet customizable) yank
  • splitjoin.vim: Simplifies the transition between multi-line and single-line code
  • tabular: Vim script for text filtering and alignment
  • 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-matchup: A plugin that lets you highlight, navigate, and operate on sets of matching text. It extends vim's % key to language-specific words instead of just single characters
  • 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-trailing-whitespace: Highlights and allows for the easy removal of trailing whitespace in documents
  • vista.vim: Viewer & Finder for LSP symbols and tags

Credits