Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Kashomon Merge pull request #27 from Kashomon/master
Modify the readme to be consistent with Vundle behavior.
Latest commit 131aee0 Jan 26, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
autoload Add ability to query flag values with ':Glaive <plugin>' Mar 8, 2014
plugin Clarify "isn't very useful" Sep 9, 2014
.travis.yml .travis.yml: Add apt-get update to fix 404s Jul 12, 2015
LICENSE Expanded LICENSE to include the full license text. Dec 11, 2013
bootstrap.vim test directories first Dec 22, 2014

Glaive is a utility for configuring maktaba plugins. It turns this:

let g:myplugin_enablefeature = 1
let g:myplugin_defaultdir = $HOME
let g:myplugin_weirdmode = 'm'

into this:

Glaive myplugin enablefeature defaultdir=`$HOME` weirdmode='m'

In order for this to work, the plugin must use the maktaba flag API. Any plugin using the flag API can be configured by glaive.

Maktaba is a vimscript library for plugin authors. It handles parsing the setting syntax, looking up the plugins, and applying the settings. Glaive itself is merely a thin wrapper around the hooks that maktaba provides: any plugin can sport a similar interface with minimal effort. Plugin manager plugins in particular are encouraged to do so.

For details, see the executable documentation in the vroom/ directory or the helpfiles in the doc/ directory. The helpfiles are also available via :help glaive if Glaive is installed (and helptags have been generated).

Usage example

This example uses Vundle.vim, whose plugin-adding command is Plugin. Note that Vundle does not add plugins to the runtime path until vundle#end(), so Glaive commands must come after this function call.

We will use two plugins for demonstration:

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()


" Add maktaba, glaive, and codefmt to the runtimepath.
" (Glaive must also be installed before it can be used.)
Plugin 'google/vim-maktaba'
Plugin 'google/vim-glaive'
Plugin 'google/vim-codefmt'


filetype plugin indent on

" Add helloworld to the runtime path. (Normally this would be done with another
" Plugin command, but helloworld doesn't have a repository of its own.)
call maktaba#plugin#Install(maktaba#path#Join([maktaba#Maktaba().location,
    \ 'examples', 'helloworld']))

call glaive#Install()

" Configure helloworld using glaive.
Glaive helloworld plugin[mappings] name='Bram'

" Real world example: configure vim-codefmt
Glaive codefmt google_java_executable='java -jar /path/to/google-java-format.jar'

Now, <Leader>Hh should say Hello, Bram!, and <Leader>Hg should say Goodbye, Bram!. (Recall that <Leader> defaults to \.)

You can’t perform that action at this time.