*indent_guides.txt* A plugin for visually displaying indent levels in Vim. *indent-guides* ____ __ __ ______ _ __ / _/____ ____/ /___ ____ / /_ / ____/__ __(_)____/ /___ _____ / / / __ \/ __ // _ \/ __ \/ __/ / / __ / / / / // __ // _ \/ ___/ _/ / / / / / /_/ // __/ / / / /_ / /_/ // /_/ / // /_/ // __(__ ) /___//_/ /_/\__,_/ \___/_/ /_/\__/ \____/ \__,_/_/ \__,_/ \___/____/ Author: Nate Kane Version: 1.2 Last Change: 5 Jan 2011 ============================================================================== CONTENTS *indent-guides-contents* 1. Introduction.......................... |indent-guides-introduction| 2. Commands.............................. |indent-guides-commands| 3. Options............................... |indent-guides-options| 4. Mappings.............................. |indent-guides-mappings| 5. Terminal Vim.......................... |indent-guides-terminal-vim| 6. About................................. |indent-guides-about| 7. Changelog............................. |indent-guides-changelog| 8. License............................... |indent-guides-license| ============================================================================== 1. INTRODUCTION *indent-guides-introduction* Indent Guides is a plugin for visually displaying indent levels in Vim. This plugin should work with gVim out of the box, no configuration needed. Features:~ * Can detect both tab and space indent styles. * Automatically inspects your colorscheme and picks appropriate colors (gVim only). * Will highlight indent levels with alternating colors. * Full support for gVim and basic support for Terminal Vim. * Seems to work on Windows gVim 7.3 (haven't done any extensive tests though). * Customizable size for indent guides, eg. skinny guides (soft-tabs only). ============================================================================== 2. COMMANDS *indent-guides-commands* ------------------------------------------------------------------------------ :IndentGuidesToggle *:IndentGuidesToggle* Toggles the indent guides on and off. ------------------------------------------------------------------------------ :IndentGuidesEnable *:IndentGuidesEnable* Enables the indent guides for the current buffer and any other buffer upon entering it. ------------------------------------------------------------------------------ :IndentGuidesDisable *:IndentGuidesDisable* Disables the indent guides for the current buffer and any other buffer upon entering it. ============================================================================== 3. OPTIONS *indent-guides-options* ------------------------------------------------------------------------------ *'indent_guides_indent_levels'* Use this option to control how many indent levels to display guides for. Default: 30. Values: integer. > let g:indent_guides_indent_levels = 30 < ------------------------------------------------------------------------------ *'indent_guides_auto_colors'* Use this option to control whether or not the plugin automatically calculates the highlight colors. Will use the current colorscheme's background color as a base color. Default: 1. Values: 0 or 1. > let g:indent_guides_auto_colors = 1 < If you set this option to 0, be sure to manually define some highlight colors in an autocmd. > let g:indent_guides_auto_colors = 0 autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd guibg=red ctermbg=3 autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=green ctermbg=4 < ------------------------------------------------------------------------------ *'indent_guides_color_change_percent'* Use this option to control the percent at which the highlight colors will be lightened or darkened. Default: 0.05. Values: between 0 and 1. > let g:indent_guides_color_change_percent = 0.05 < ------------------------------------------------------------------------------ *'indent_guides_indent_guide_size'* Use this option to customize the size of the indent guide. By default the value is set to 0, which will set the guide size to be the same as the |shiftwidth|. Setting this value to be larger than the |shiftwidth| is essentially the same as setting it to 0. A common use of this setting is to create skinny indent guides, which look great with a |shiftwidth| of 4 or more. NOTE: This option only works for soft-tabs (spaces) and not for hard-tabs. Default: 0. Values: between 0 and |shiftwidth|. > let g:indent_guides_indent_guide_size = 1 < ============================================================================== 4. MAPPINGS *indent-guides-mappings* The default mapping for toggling indent guides is ig. You can easily map it to other keys. For example: > :nmap ig :IndentGuidesToggle < You can also map some other commands that are not mapped by default. For example: > :nmap ie :IndentGuidesEnable :nmap id :IndentGuidesDisable < ============================================================================== 5. TERMINAL VIM *indent-guides-terminal-vim* At the moment Terminal Vim only has basic support. This means is that colors won't be automatically calculated based on your colorscheme. Instead, some preset colors are used depending on whether `background` is set to `dark` or `light`. When `set background=dark` is used, the following highlight colors will be defined: > hi IndentGuidesEven ctermbg=darkgrey hi IndentGuidesOdd ctermbg=black < Alternatively, when `set background=light` is used, the following highlight colors will be defined: > hi IndentGuidesEven ctermbg=lightgrey hi IndentGuidesOdd ctermbg=white < If for some reason it's incorrectly defining light highlight colors instead of dark ones or vice versa, the first thing you should check is that the `background` value is being set correctly for your colorscheme. Sometimes it's best to manually set the `background` value in your `.vimrc`, for example: > colorscheme desert256 set background=dark < Alternatively you can manually setup the highlight colors yourself, see |indent_guides_auto_colors| for an example. ============================================================================== 6. ABOUT *indent-guides-about* Why did I build this plugin?~ * I believe indent guides make nested code easier to read and understand. * Other editors have them and it's high time Vim did. * None of the existing indent guide plugins on the market suited my needs. * I wanted to learn me some VimL. Links:~ * Github: https://github.com/nathanaelkane/vim-indent-guides * Bugs & Issues: https://github.com/nathanaelkane/vim-indent-guides/issues Credits:~ * Matt Wozniski (godlygeek) for letting me use the list of color names and hex codes from his CSApprox plugin. Contact:~ * Twitter: @nathanaelkane * Email: * IRC: nate- on Freenode (I usually idle in the #vim channel) Bug reports, feedback, suggestions etc are welcomed. ============================================================================== 7. CHANGELOG *indent-guides-changelog* 1.2~ * Customizable size for indent guides, eg. skinny guides (soft-tabs only). * Refactored some internal logic. 1.1~ * Added basic support for Terminal Vim. See |indent-guides-terminal-vim| for more information. * Cut down on rgb to hex color conversions by adding a big dictionary of color names and hex codes. * Various bug fixes. 1.0~ * First public version. ============================================================================== 8. LICENSE *indent-guides-license* The MIT Licence http://www.opensource.org/licenses/mit-license.php Copyright (c) 2010 Nate Kane Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. vim:tw=78:ts=2:ft=help:norl: