mirror of
https://github.com/prurigro/darkcloud-vimconfig.git
synced 2024-11-27 16:41:25 -05:00
Compare commits
No commits in common. "76d82b14cf56c198f0ad5ff34a9a895444ac9378" and "8608f0b3bf82bd04da9c23e6a318f6fe4cd67bf6" have entirely different histories.
76d82b14cf
...
8608f0b3bf
4 changed files with 77 additions and 58 deletions
|
@ -1,17 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Exit if no argument has been provided
|
[[ -z "$2" ]] && exit 1
|
||||||
[[ -z "$1" ]] && exit 1
|
|
||||||
|
|
||||||
# Variables
|
git submodule add "$1" "vim/bundle/$2"
|
||||||
url="$1"
|
|
||||||
name="${url/*\/}"
|
|
||||||
|
|
||||||
# Exit if no name exists or the url and name variables are the same
|
|
||||||
[[ -z "$name" || "$url" = "$name" ]] && exit 1
|
|
||||||
|
|
||||||
# Add the submodule
|
|
||||||
git submodule add "$url" "vim/bundle/$name" || exit 1
|
|
||||||
|
|
||||||
# Initialize the submodule
|
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
|
|
96
readme.md
96
readme.md
|
@ -1,43 +1,47 @@
|
||||||
# darkcloud-vimconfig
|
# darkcloud-vimconfig
|
||||||
|
|
||||||
A theme, config and collection of plugins for Vim
|
A theme, config and collection of plugins for Vim.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
* **Vim**: The latest [vim](http://www.vim.org) should be installed to use this distribution
|
* **Vim**: The latest [vim](http://www.vim.org) should be installed to use this distribution.
|
||||||
* **Bash**: Required by the _update_ scripts
|
* **Bash**: Required by the _update_ and _gentags_ scripts.
|
||||||
* **Coreutils**: Required by the _update_ script
|
* **Coreutils**: Required by the _update_ script.
|
||||||
* **Git**: Required by the _update_ script and git-related plugins
|
* **Git**: Required by the _update_ script and git-related plugins.
|
||||||
|
|
||||||
## Optional Requirements
|
## Optional Requirements
|
||||||
|
|
||||||
* **Compilers, Linters and Runtimes**: The ale plugin can use compilers, linters and runtimes to provide real-time syntax checking
|
* **Compilers, Linters and Runtimes**: The ale plugin can use compilers, linters and runtimes to provide real-time syntax checking.
|
||||||
* **CTags**: Required by _tagbar_ and _deoplete_ ([ctags website](http://ctags.sourceforge.net))
|
* **CTags**: Required by the _tagbar_ and _deoplete_ plugins as well as the _gentags_ script ([ctags website](http://ctags.sourceforge.net)).
|
||||||
* **Powerline Fonts**: Required to enable the fancier looking status line ([powerline-fonts repo](https://github.com/Lokaltog/powerline-fonts))
|
* **Powerline Fonts**: Required to enable the fancier looking status line ([powerline-fonts repo](https://github.com/Lokaltog/powerline-fonts)).
|
||||||
* **Python**: Required for _deoplete_ autocompletion functionality
|
* **Python**: Required for _deoplete_ autocompletion functionality.
|
||||||
* **Neovim Python Module**: Required for _deoplete_ autocompletion
|
* **Neovim Python Module**: Required for _deoplete_ autocompletion.
|
||||||
* **Python Msgpack**: Required for _deoplete_ autocompletion
|
* **Python Msgpack**: Required for _deoplete_ autocompletion.
|
||||||
|
|
||||||
## Distribution Features
|
## Distribution Features
|
||||||
|
|
||||||
* **Default Configuration**: A complete set of defaults, focusing on the most modern settings that still provide a compatible experience
|
* **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
|
* **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
|
* **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
|
* **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
|
* **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.
|
||||||
|
|
||||||
|
![Darkcloud Vim Distribution Theme](https://i.imgur.com/oIqgie0.png)
|
||||||
|
|
||||||
|
![Darkcloud Vimconfig Update Tool](https://i.imgur.com/AOXSL7S.png)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Clone the darkcloud-vimconfig repo and use the _update_ script to install the plugins:
|
1. Clone the darkcloud-vimconfig repo and use the _update_ script to install the plugins:
|
||||||
* `git clone https://github.com/prurigro/darkcloud-vimconfig.git`
|
* `git clone https://github.com/prurigro/darkcloud-vimconfig.git`
|
||||||
* `./darkcloud-vimconfig/update` (if you don't want colour output, run: `./darkcloud-vimconfig/update --no-colour` instead)
|
* `./darkcloud-vimconfig/update` (if you don't want colour output, run: `./darkcloud-vimconfig/update --no-colour` instead)
|
||||||
* **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
|
* **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.
|
||||||
2. 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
|
2. 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
|
||||||
3. 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:
|
3. 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
|
* 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
|
* 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_
|
* 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
|
* Create your own vimrc and have that set the _g:darkcloudpath_ variable before sourcing the included vimrc.
|
||||||
|
|
||||||
### Vimpager
|
### Vimpager
|
||||||
|
|
||||||
|
@ -58,10 +62,11 @@ alias zless="$PAGER"
|
||||||
* `g:disableautotags`: **1** = Prevent tags from being automatically generated and highlighted | **0** = Automatically generate and highlight tags (_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: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**)
|
* `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 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
|
* **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')`
|
* **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
|
* **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.
|
||||||
|
* **Generate System Tags**: (requires: bash+ctags) Generate a list of ctags for your system libraries in _/usr/include_ and _/usr/local/include_ as well as any folders passed as arguments by running the _gentags_ script.
|
||||||
|
|
||||||
## Mappings
|
## Mappings
|
||||||
|
|
||||||
|
@ -141,7 +146,7 @@ alias zless="$PAGER"
|
||||||
|
|
||||||
### Complete Reference
|
### 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](https://github.com/prurigro/darkcloud-vimconfig/blob/master/vim/config/keyboard.vim)
|
For a complete list of mappings specific to **darkcloud-vimconfig**, check the list in the comments at the top of [vim/config/keyboard.vim](https://github.com/prurigro/darkcloud-vimconfig/blob/master/vim/config/keyboard.vim).
|
||||||
|
|
||||||
## Plugins
|
## Plugins
|
||||||
|
|
||||||
|
@ -151,28 +156,29 @@ For a complete list of mappings specific to **darkcloud-vimconfig**, check the l
|
||||||
* [nvim-yarp](https://github.com/roxma/nvim-yarp): Yet Another Remote Plugin Framework for Neovim
|
* [nvim-yarp](https://github.com/roxma/nvim-yarp): Yet Another Remote Plugin Framework for Neovim
|
||||||
* [vim-hug-neovim-rpc](https://github.com/roxma/vim-hug-neovim-rpc): A compatibility layer for neovim rpc client working on vim8
|
* [vim-hug-neovim-rpc](https://github.com/roxma/vim-hug-neovim-rpc): A compatibility layer for neovim rpc client working on vim8
|
||||||
* [editorconfig-vim](https://github.com/editorconfig/editorconfig-vim): EditorConfig plugin for Vim that auto-configures certain settings when a .editorconfig file is present
|
* [editorconfig-vim](https://github.com/editorconfig/editorconfig-vim): EditorConfig plugin for Vim that auto-configures certain settings when a .editorconfig file is present
|
||||||
* [lightline.vim](https://github.com/itchyny/lightline.vim): A light and configurable statusline/tabline for Vim
|
* [lightline.vim](https://github.com/itchyny/lightline.vim): A light and configurable statusline/tabline for Vim.
|
||||||
* [lightline-ale](https://github.com/maximbaz/lightline-ale): Provides ALE indicator for the lightline vim plugin
|
* [lightline-ale](https://github.com/maximbaz/lightline-ale): Provides ALE indicator for the lightline vim plugin.
|
||||||
* [ReplaceWithRegister](https://github.com/vim-scripts/ReplaceWithRegister): Replace text with the contents of a register (for paste+replace without writing over the buffer)
|
* [ReplaceWithRegister](https://github.com/vim-scripts/ReplaceWithRegister): Replace text with the contents of a register (for paste+replace without writing over the buffer).
|
||||||
* [splitjoin.vim](https://github.com/AndrewRadev/splitjoin.vim): Simplifies the transition between multiline and single-line code
|
* [splitjoin.vim](https://github.com/AndrewRadev/splitjoin.vim): Simplifies the transition between multiline and single-line code
|
||||||
* [tabular](https://github.com/godlygeek/tabular): Vim script for text filtering and alignment
|
* [tabular](https://github.com/godlygeek/tabular): Vim script for text filtering and alignment.
|
||||||
* [tagbar](https://github.com/majutsushi/tagbar): Uses ctags to generate a sidebar of the tags for the current file
|
* [tagbar](https://github.com/majutsushi/tagbar): Uses ctags to generate a sidebar of the tags for the current file.
|
||||||
* [tcomment_vim](https://github.com/tomtom/tcomment_vim): File-type sensible comments that can be easily toggled on and off for blocks of text
|
* [tcomment_vim](https://github.com/tomtom/tcomment_vim): File-type sensible comments that can be easily toggled on and off for blocks of text.
|
||||||
* [unite.vim](https://github.com/Shougo/unite.vim): A library used by Vim Filer to help build its user interface
|
* [unite.vim](https://github.com/Shougo/unite.vim): A library used by Vim Filer to help build its user interface.
|
||||||
* [vim-fugitive](https://github.com/tpope/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-fugitive](https://github.com/tpope/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](https://github.com/xolox/vim-easytags): A plugin that takes care of the much needed management of tags files in Vim
|
* [vim-gutentags](https://github.com/xolox/vim-easytags): A plugin that takes care of the much needed management of tags files in Vim.
|
||||||
* [vim-move](https://github.com/matze/vim-move): Provides a few convenient ways to move selected text
|
* [vim-move](https://github.com/matze/vim-move): Provides a few convenient ways to move selected text.
|
||||||
* [vim-pathogen](https://github.com/tpope/vim-pathogen): A plugin to load other plugins while keeping them isolated in their own directory structure rather than all dumped together
|
* [vim-pathogen](https://github.com/tpope/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](https://github.com/prurigro/vim-polyglot-darkcloud): The darkcloud-vimconfig fork of a meta-package that attempts to provide the best syntax plugins for each file type
|
* [vim-polyglot-darkcloud](https://github.com/prurigro/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](https://github.com/mhinz/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-signify](https://github.com/mhinz/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](https://github.com/tpope/vim-surround): Provides functionality to exchange surrounding delimiters and xml-style tags with another, or simply remove them
|
* [vim-surround](https://github.com/tpope/vim-surround): Provides functionality to exchange surrounding delimiters and xml-style tags with another, or simply remove them.
|
||||||
* [vim-repeat](https://github.com/tpope/vim-repeat): A library used by vim-surround to allow its delimiter-switching functions to be repeated with the `.` command
|
* [vim-repeat](https://github.com/tpope/vim-repeat): A library used by vim-surround to allow its delimiter-switching functions to be repeated with the `.` command.
|
||||||
* [vim-togglelist](https://github.com/milkypostman/vim-togglelist): A simple plugin for vim that allows you to bind a key to toggle the Location List and the Quickfix List
|
* [vim-togglelist](https://github.com/milkypostman/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](https://github.com/bronson/vim-trailing-whitespace): Highlights and allows for the easy removal of trailing whitespace in documents
|
* [vim-trailing-whitespace](https://github.com/bronson/vim-trailing-whitespace): Highlights and allows for the easy removal of trailing whitespace in documents.
|
||||||
* [vim-unimpaired](https://github.com/tpope/vim-unimpaired): Pairs of handy bracket mappings
|
* [vim-unimpaired](https://github.com/tpope/vim-unimpaired): Pairs of handy bracket mappings.
|
||||||
* [vimfiler.vim](https://github.com/Shougo/vimfiler.vim): A curses-style file manager for vim that runs on it's own or in a sidebar and can associate handlers for file types
|
* [vimfiler.vim](https://github.com/Shougo/vimfiler.vim): A curses-style file manager for vim that runs on it's own or in a sidebar and can associate handlers for file types.
|
||||||
* [vimpager](https://github.com/rkitover/vimpager): Pager using vim and less.vim
|
* [vimpager](https://github.com/rkitover/vimpager): Pager using vim and less.vim
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
* By Kevin MacMartin: [GitHub Projects](https://github.com/prurigro?tab=repositories) | [Arch Linux AUR Packages](https://aur.archlinux.org/packages/?SeB=m&K=prurigro)
|
* By Kevin MacMartin: [GitHub Projects](https://github.com/prurigro?tab=repositories) | [Arch Linux AUR Packages](https://aur.archlinux.org/packages/?SeB=m&K=prurigro)
|
||||||
|
* The [vim-markdown](https://github.com/plasticboy/vim-markdown) plugin **TableFormat** command, used to format tables in markdown files, was pulled into [plugins.vim](https://github.com/prurigro/darkcloud-vimconfig/blob/master/vim/config/plugins.vim) from [ftplugin/mkd](https://github.com/plasticboy/vim-markdown/blob/master/ftplugin/mkd.vim).
|
||||||
|
|
|
@ -197,6 +197,10 @@
|
||||||
" ?> | (A) -> close the dialog
|
" ?> | (A) -> close the dialog
|
||||||
" ?< | (A) -> close the dialog
|
" ?< | (A) -> close the dialog
|
||||||
"
|
"
|
||||||
|
" (markdown)
|
||||||
|
" <Leader>f | (N) -> format a table
|
||||||
|
" <Leader>f | (V) -> format a table
|
||||||
|
"
|
||||||
" (error/location list)
|
" (error/location list)
|
||||||
" <Left> | (A) -> up
|
" <Left> | (A) -> up
|
||||||
" <Right> | (A) -> down
|
" <Right> | (A) -> down
|
||||||
|
@ -658,6 +662,10 @@
|
||||||
autocmd FileType help map <buffer> <silent><expr> <Leader>? ':q<CR>'
|
autocmd FileType help map <buffer> <silent><expr> <Leader>? ':q<CR>'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
"markdown
|
||||||
|
autocmd FileType markdown nnoremap <buffer> <silent><expr> <Leader>f ':TableFormat<CR>'
|
||||||
|
autocmd FileType markdown xnoremap <buffer> <silent><expr> <Leader>f '<Esc>:TableFormat<CR>gv'
|
||||||
|
|
||||||
"error/location list
|
"error/location list
|
||||||
autocmd FileType qf map <buffer> <Left> <Up>
|
autocmd FileType qf map <buffer> <Left> <Up>
|
||||||
autocmd FileType qf map <buffer> <Right> <Down>
|
autocmd FileType qf map <buffer> <Right> <Down>
|
||||||
|
|
16
vim/config/plugins/tabular.vim
Normal file
16
vim/config/plugins/tabular.vim
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
"This Tabular TableFormat() function is taken from the
|
||||||
|
"vim-markdown project by plasticboy, which can be found
|
||||||
|
"at https://github.com/plasticboy/vim-markdown and is
|
||||||
|
"licensed with the MIT license.
|
||||||
|
function! s:TableFormat()
|
||||||
|
let l:pos = getpos('.')
|
||||||
|
normal! {
|
||||||
|
call search('|')
|
||||||
|
normal! j
|
||||||
|
s/[^|]//g
|
||||||
|
Tabularize /|
|
||||||
|
s/ /-/g
|
||||||
|
call setpos('.', l:pos)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
command! -buffer TableFormat call s:TableFormat()
|
Loading…
Reference in a new issue