Vim: The latest vim should be installed to use this distribution
Bash: Required by the update 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 tagbar, vim-gutentags and deoplete
Powerline Fonts: Required to enable the fancier looking status line
Python: Required for deoplete autocompletion 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-vimconfig repo and use the update script to install the plugins:
Note: The update script requires bash, but if it's not available you can enter the darkcloud-vimconfig/ folder and run: git submodule update --init to install the plugins manually, then create vim/vimrc.user and remember to run: :Helptags once everything else is running
If you don't know where vim expects to find your vimrc, start vim and run: :version to find the values "user vimrc file" (for a single-user install) and "system vimrc file" (for a system-wide install). T
Copy or symlink the vimrc file from darkcloud-vimconfig/vimrc to one of the locations vim expects to find it, based on whether you want a local or system-wide install, then choose one of the following:
Edit the g:darkcloudpath variable in the vimrc file itself, pointing it to the location you're keeping the darkcloud-vimconfig repo folder
Create a file @ ~/.vim/darkcloud-path.vim and in it put the following: let g:darkcloudpath="/etc/darkcloud-vimconfig", but replacing "/etc/darkcloud-vimconfig" with the path to the darkcloud-vimconfig repo folder
Place darkcloud-vimconfig in the default location @ /etc/darkcloud-vimconfig
Create your own vimrc and have that set the g:darkcloudpath variable before sourcing the included vimrc
Vimpager
You can configure your PAGER to use darkcloud-vimconfig using vimpager by adding the following to your bashrc (assuming the default path @ "/etc/darkcloud-vimconfig"):
export PAGER=/etc/darkcloud-vimconfig/vim/bundle/vimpager/vimpager
alias less="$PAGER"
alias zless="$PAGER"
Configuration
Configure Variables: The following variables can be added to vim/vimrc.user and have their values set to the values you require:
g:autostartchecker: 1 = Check syntax once an appropriate file is loaded | 0 = Check syntax only after syntax checking is toggled on (default: 0)
g:autostarttagbar: 1 = Have the tagbar load automatically when a compatible format is run | 0 = The tagbar will stay hidden until triggered on demand with its toggle (default: 0)
g:disablecompletion: 1 = Disable deoplete autocompletion | 0 = Enable _deoplete autocompletion if the requirements are met (default: 0)
g:disableautotags: 1 = Prevent tags from being automatically generated and highlighted | 0 = Automatically generate and highlight tags (default: 0)
g:disablelinebreaks: 1 = Override filetype plugins so linebreaks never occur | 0 = Linebreaks are disabled by default, but filetype plugins can override this setting (default: 0)
g:powerlinefonts: 1 = Render the statusline using characters available with powerline-patched fonts | 0 = Render the statusbar with less attractive but more compatible characters available in all fonts (default: 0)
Custom Settings: Settings with priority over those set by darkcloud-vimconfig can be added to a file named vimrc.user, located in darkcloud-vimconfig/vim/ or any of the folders in the runtimepath
Custom Plugins: Pathogen compatible plugins can be cloned or extracted to "darkcloud-vimconfig/vim/bundle.user/", or a folder named "bundle" or "bundle.user" in any of the folders in the runtimepath
File Associations: To use the file manager in vim to run files with external programs, create "~/.vim/filetypes.vim" and on each line, write an association between a file extension and the program to launch files of that type that looks like: call vimfiler#set_execute_file('mp4','xdg-open')
Update Script: (requires: bash+git) Use this 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
F9 or +}
ALL or N
Toggle git history for the current file
F10 or +{
ALL or N
Toggle the tagbar source code tag sidebar
F11 or +\
ALL or N
Toggle the location list for ale issues
F12 or +[
ALL or N
Toggle vimfiler file manager sidebar
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.)
Backslash+?
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
GVim
Binding
Mode
Action
Backslash+F1
ALL
Toggle the menubar
Backslash+F2
ALL
Toggle the toolbar
Backslash+F3
ALL
Toggle the scrollbars
Complete Reference
For a complete list of mappings specific to darkcloud-vimconfig, check the list in the comments at the top of vim/config/keyboard.vim
deoplete.nvim: Dark powered asynchronous completion framework for neovim/Vim8
neco-syntax: Syntax source for neocomplete/deoplete/ncm
nvim-yarp: Yet Another Remote Plugin Framework for Neovim
vim-hug-neovim-rpc: A compatibility layer for neovim rpc client working on vim8
editorconfig-vim: EditorConfig plugin for Vim that auto-configures certain settings when a .editorconfig file is present
lightline.vim: A light and configurable statusline/tabline for Vim
lightline-ale: Provides ALE indicator for the lightline vim plugin
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
tcomment_vim: File-type sensible comments that can be easily toggled on and off for blocks of text
unite.vim: A library used by Vim Filer to help build its user interface
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-vimconfig 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-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