mirror of
https://github.com/amix/vimrc
synced 2025-07-17 17:15:01 +08:00
Removed not used plugins
This commit is contained in:
@ -1,19 +0,0 @@
|
||||
This project is a colleciton of vim scripts that relate to the Mako templating
|
||||
engine for python. Most of thse are not at all written by me, just packaged
|
||||
here from the vim-script site. The purpose is to make them easy to use with
|
||||
pathogen.vim.
|
||||
|
||||
About mako: http://www.makotemplates.org/
|
||||
|
||||
Original scripts:
|
||||
|
||||
Externally sourced scripts:
|
||||
|
||||
* indent/mako.vim (vim script 2663) by Scott Torborg
|
||||
http://www.vim.org/scripts/script.php?script_id=2663
|
||||
version used here: 0.4
|
||||
|
||||
* syntax/mako.vim (vim script 1858) by Armin Ronacher
|
||||
http://www.vim.org/scripts/script.php?script_id=1858
|
||||
version used here: 0.6.1
|
||||
|
@ -1 +0,0 @@
|
||||
au BufRead,BufNewFile *.mako set filetype=mako
|
@ -1,11 +0,0 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Mako
|
||||
" Maintainer: Randy Stauner <randy@magnificent-tears.com>
|
||||
" Last Change: 2014-02-07
|
||||
" Version: 0.1
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal comments=:##
|
||||
setlocal commentstring=##%s
|
@ -1,354 +0,0 @@
|
||||
" Vim indent file
|
||||
" Language: Mako
|
||||
" Author: Scott Torborg <storborg@mit.edu>
|
||||
" Version: 0.4
|
||||
" License: Do What The Fuck You Want To Public License (WTFPL)
|
||||
"
|
||||
" ---------------------------------------------------------------------------
|
||||
"
|
||||
" DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
" Version 2, December 2004
|
||||
"
|
||||
" Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||
"
|
||||
" Everyone is permitted to copy and distribute verbatim or modified
|
||||
" copies of this license document, and changing it is allowed as long
|
||||
" as the name is changed.
|
||||
"
|
||||
" DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
" TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
"
|
||||
" 0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
"
|
||||
" ---------------------------------------------------------------------------
|
||||
"
|
||||
" This script does more useful indenting for Mako HTML templates. It indents
|
||||
" inside of control blocks, defs, etc. Note that this indenting style will
|
||||
" sacrifice readability of the output text for the sake of readability of the
|
||||
" template.
|
||||
"
|
||||
" We'll use HTML indenting globally, python inside <% %> blocks. Inspired by
|
||||
" the excellent PHP + HTML indentation files such as php.vim by Pim Snel.
|
||||
"
|
||||
" Changelog:
|
||||
" 0.4 - 5 March 2010
|
||||
" - Added license information
|
||||
" 0.3 - 15 September 2009
|
||||
" - Added explicit indenting for ## comments, fixed unindenting count,
|
||||
" thanks to Mike Lewis (@MikeRLewis) for this
|
||||
" 0.2 - 15 June 2009
|
||||
" - Fixed issue where opening and closing mako tags on the same line
|
||||
" would cause incorrect indenting
|
||||
" 0.1 - 06 June 2009
|
||||
" - Initial public release of mako indent file
|
||||
|
||||
let sw=2 " default shiftwidth of 2 spaces
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal nosmartindent
|
||||
setlocal noautoindent
|
||||
setlocal nocindent
|
||||
setlocal nolisp
|
||||
|
||||
setlocal indentexpr=GetMakoIndent()
|
||||
setlocal indentkeys+=*<Return>,<>>,<bs>,end,:
|
||||
|
||||
" Only define the function once.
|
||||
if exists("*GetMakoIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
if exists('g:html_indent_tags')
|
||||
unlet g:html_indent_tags
|
||||
endif
|
||||
|
||||
function IsInsidePythonBlock(startline)
|
||||
" Loop until we get a line that's either <% or %>
|
||||
let lnum = a:startline
|
||||
while getline(lnum) !~ '\(%>\|<%\)$' && lnum > 0
|
||||
let lnum = lnum - 1
|
||||
endwhile
|
||||
|
||||
" lnum points to the last control. If it's a <% then we're inside an
|
||||
" embedded python block, otherwise we're not.
|
||||
return getline(lnum) =~ '<%$'
|
||||
endfunction
|
||||
|
||||
function GetMakoIndent()
|
||||
" Find a non-empty line above the current line
|
||||
let lnum = prevnonblank(v:lnum - 1)
|
||||
|
||||
" Hit the start of the file, use zero indent.
|
||||
if lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let line = getline(lnum) " last line
|
||||
let cline = getline(v:lnum) " current line
|
||||
let pline = getline(lnum - 1) " previous to last line
|
||||
let ind = indent(lnum)
|
||||
if line =~ '^\s*##'
|
||||
return indent(lnum)
|
||||
end
|
||||
|
||||
let restore_ic=&ic
|
||||
let &ic=1 " ignore case
|
||||
|
||||
let ind = <SID>HtmlIndentSum(lnum, -1)
|
||||
let ind = <SID>HtmlIndentSum(lnum, -1)
|
||||
let ind = ind + <SID>HtmlIndentSum(v:lnum, 0)
|
||||
|
||||
let &ic=restore_ic
|
||||
|
||||
let ind = indent(lnum) + (&sw * ind)
|
||||
|
||||
" Indent after %anything: or <%anything NOT ending in />
|
||||
if line =~ '^\s*%.*:\s*$'
|
||||
let ind = ind + &sw
|
||||
endif
|
||||
|
||||
" Unindent before %end* or </%anything
|
||||
if cline =~ '^\s*%\s*end'
|
||||
let ind = ind - &sw
|
||||
endif
|
||||
"
|
||||
" Unindent before %else, %except, and %elif
|
||||
if cline =~ '^\s*%\s*else' || cline =~ '^\s*%\s*except' || cline =~ '^\s*%\s*elif'
|
||||
let ind = ind - &sw
|
||||
endif
|
||||
|
||||
" Indent at the beginning of a python control block
|
||||
if line =~ '<%$'
|
||||
let ind = ind + &sw
|
||||
endif
|
||||
"
|
||||
" Unindent at the end of the python block.
|
||||
if cline =~ '^\s*%>$'
|
||||
let scanlnum = lnum
|
||||
" Scan backwards until we find the beginning of this python block.
|
||||
while getline(scanlnum) !~ '<%$' && scanlnum > 0
|
||||
let scanlnum = scanlnum - 1
|
||||
endwhile
|
||||
let ind = indent(scanlnum)
|
||||
endif
|
||||
|
||||
" If we're inside a python block and the previous line ends in a colon,
|
||||
" indent.
|
||||
if IsInsidePythonBlock(lnum - 1)
|
||||
" Indent after :
|
||||
if line =~ '\:$'
|
||||
let ind = ind + &sw
|
||||
endif
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
|
||||
" [-- helper function to assemble tag list --]
|
||||
fun! <SID>HtmlIndentPush(tag)
|
||||
if exists('g:html_indent_tags')
|
||||
let g:html_indent_tags = g:html_indent_tags.'\|'.a:tag
|
||||
else
|
||||
let g:html_indent_tags = a:tag
|
||||
endif
|
||||
endfun
|
||||
|
||||
fun! <SID>MakoIndentPush(tag)
|
||||
if exists('g:mako_indent_tags')
|
||||
let g:mako_indent_tags = g:mako_indent_tags.'\|'.a:tag
|
||||
else
|
||||
let g:mako_indent_tags = a:tag
|
||||
endif
|
||||
endfun
|
||||
|
||||
" [-- <ELEMENT ? - - ...> --]
|
||||
call <SID>HtmlIndentPush('a')
|
||||
call <SID>HtmlIndentPush('abbr')
|
||||
call <SID>HtmlIndentPush('acronym')
|
||||
call <SID>HtmlIndentPush('address')
|
||||
call <SID>HtmlIndentPush('b')
|
||||
call <SID>HtmlIndentPush('bdo')
|
||||
call <SID>HtmlIndentPush('big')
|
||||
call <SID>HtmlIndentPush('blockquote')
|
||||
call <SID>HtmlIndentPush('button')
|
||||
call <SID>HtmlIndentPush('caption')
|
||||
call <SID>HtmlIndentPush('center')
|
||||
call <SID>HtmlIndentPush('cite')
|
||||
call <SID>HtmlIndentPush('code')
|
||||
call <SID>HtmlIndentPush('colgroup')
|
||||
call <SID>HtmlIndentPush('del')
|
||||
call <SID>HtmlIndentPush('dfn')
|
||||
call <SID>HtmlIndentPush('dir')
|
||||
call <SID>HtmlIndentPush('div')
|
||||
call <SID>HtmlIndentPush('dl')
|
||||
call <SID>HtmlIndentPush('em')
|
||||
call <SID>HtmlIndentPush('fieldset')
|
||||
call <SID>HtmlIndentPush('font')
|
||||
call <SID>HtmlIndentPush('form')
|
||||
call <SID>HtmlIndentPush('frameset')
|
||||
call <SID>HtmlIndentPush('h1')
|
||||
call <SID>HtmlIndentPush('h2')
|
||||
call <SID>HtmlIndentPush('h3')
|
||||
call <SID>HtmlIndentPush('h4')
|
||||
call <SID>HtmlIndentPush('h5')
|
||||
call <SID>HtmlIndentPush('h6')
|
||||
call <SID>HtmlIndentPush('i')
|
||||
call <SID>HtmlIndentPush('iframe')
|
||||
call <SID>HtmlIndentPush('ins')
|
||||
call <SID>HtmlIndentPush('kbd')
|
||||
call <SID>HtmlIndentPush('label')
|
||||
call <SID>HtmlIndentPush('legend')
|
||||
call <SID>HtmlIndentPush('map')
|
||||
call <SID>HtmlIndentPush('menu')
|
||||
call <SID>HtmlIndentPush('noframes')
|
||||
call <SID>HtmlIndentPush('noscript')
|
||||
call <SID>HtmlIndentPush('object')
|
||||
call <SID>HtmlIndentPush('ol')
|
||||
call <SID>HtmlIndentPush('optgroup')
|
||||
call <SID>HtmlIndentPush('pre')
|
||||
call <SID>HtmlIndentPush('q')
|
||||
call <SID>HtmlIndentPush('s')
|
||||
call <SID>HtmlIndentPush('samp')
|
||||
call <SID>HtmlIndentPush('script')
|
||||
call <SID>HtmlIndentPush('select')
|
||||
call <SID>HtmlIndentPush('small')
|
||||
call <SID>HtmlIndentPush('span')
|
||||
call <SID>HtmlIndentPush('strong')
|
||||
call <SID>HtmlIndentPush('style')
|
||||
call <SID>HtmlIndentPush('sub')
|
||||
call <SID>HtmlIndentPush('sup')
|
||||
call <SID>HtmlIndentPush('table')
|
||||
call <SID>HtmlIndentPush('textarea')
|
||||
call <SID>HtmlIndentPush('title')
|
||||
call <SID>HtmlIndentPush('tt')
|
||||
call <SID>HtmlIndentPush('u')
|
||||
call <SID>HtmlIndentPush('ul')
|
||||
call <SID>HtmlIndentPush('var')
|
||||
|
||||
" For some reason the default HTML indentation script doesn't consider these
|
||||
" elements to be worthy of indentation.
|
||||
call <SID>HtmlIndentPush('p')
|
||||
call <SID>HtmlIndentPush('dt')
|
||||
call <SID>HtmlIndentPush('dd')
|
||||
|
||||
|
||||
" [-- <ELEMENT ? O O ...> --]
|
||||
if !exists('g:html_indent_strict')
|
||||
call <SID>HtmlIndentPush('body')
|
||||
call <SID>HtmlIndentPush('head')
|
||||
call <SID>HtmlIndentPush('html')
|
||||
call <SID>HtmlIndentPush('tbody')
|
||||
endif
|
||||
|
||||
|
||||
" [-- <ELEMENT ? O - ...> --]
|
||||
if !exists('g:html_indent_strict_table')
|
||||
call <SID>HtmlIndentPush('th')
|
||||
call <SID>HtmlIndentPush('td')
|
||||
call <SID>HtmlIndentPush('tr')
|
||||
call <SID>HtmlIndentPush('tfoot')
|
||||
call <SID>HtmlIndentPush('thead')
|
||||
endif
|
||||
|
||||
" [-- <Mako Elements> --]
|
||||
call <SID>MakoIndentPush('%def')
|
||||
call <SID>MakoIndentPush('%block')
|
||||
call <SID>MakoIndentPush('%call')
|
||||
call <SID>MakoIndentPush('%doc')
|
||||
call <SID>MakoIndentPush('%text')
|
||||
call <SID>MakoIndentPush('%.\+:.\+')
|
||||
|
||||
delfun <SID>HtmlIndentPush
|
||||
delfun <SID>MakoIndentPush
|
||||
|
||||
set cpo-=C
|
||||
|
||||
" [-- get number of regex matches in a string --]
|
||||
fun! <SID>MatchCount(expr, pat)
|
||||
let mpos = 0
|
||||
let mcount = 0
|
||||
let expr = a:expr
|
||||
while (mpos > -1)
|
||||
let mend = matchend(expr, a:pat)
|
||||
if mend > -1
|
||||
let mcount = mcount + 1
|
||||
endif
|
||||
if mend == mpos
|
||||
let mpos = mpos + 1
|
||||
else
|
||||
let mpos = mend
|
||||
endif
|
||||
let expr = strpart(expr, mpos)
|
||||
endwhile
|
||||
return mcount
|
||||
endfun
|
||||
|
||||
" [-- count indent-increasing tags of line a:lnum --]
|
||||
fun! <SID>HtmlIndentOpen(lnum)
|
||||
let s = substitute('x'.getline(a:lnum),
|
||||
\ '.\{-}\(\(<\)\('.g:html_indent_tags.'\)\>\)', "\1", 'g')
|
||||
let s = substitute(s, "[^\1].*$", '', '')
|
||||
return strlen(s)
|
||||
endfun
|
||||
|
||||
" [-- count indent-decreasing tags of line a:lnum --]
|
||||
fun! <SID>HtmlIndentClose(lnum)
|
||||
let s = substitute('x'.getline(a:lnum),
|
||||
\ '.\{-}\(\(<\)/\('.g:html_indent_tags.'\)\>>\)', "\1", 'g')
|
||||
let s = substitute(s, "[^\1].*$", '', '')
|
||||
return strlen(s)
|
||||
endfun
|
||||
|
||||
" [-- count indent-increasing mako tags of line a:lnum --]
|
||||
fun! <SID>MakoIndentOpen(lnum)
|
||||
let s = substitute('x'.getline(a:lnum),
|
||||
\ '.\{-}\(\(<\)\('.g:mako_indent_tags.'\)\>\)', "\1", 'g')
|
||||
let s = substitute(s, "[^\1].*$", '', '')
|
||||
return strlen(s)
|
||||
endfun
|
||||
|
||||
" [-- count indent-decreasing mako tags of line a:lnum --]
|
||||
fun! <SID>MakoIndentClose(lnum)
|
||||
let mcount = <SID>MatchCount(getline(a:lnum), '</\('.g:mako_indent_tags.'\)>')
|
||||
let mcount = mcount + <SID>MatchCount(getline(a:lnum), '<\('.g:mako_indent_tags.'\)[^>]*/>')
|
||||
return mcount
|
||||
endfun
|
||||
|
||||
" [-- count indent-increasing '{' of (java|css) line a:lnum --]
|
||||
fun! <SID>HtmlIndentOpenAlt(lnum)
|
||||
return strlen(substitute(getline(a:lnum), '[^{]\+', '', 'g'))
|
||||
endfun
|
||||
|
||||
" [-- count indent-decreasing '}' of (java|css) line a:lnum --]
|
||||
fun! <SID>HtmlIndentCloseAlt(lnum)
|
||||
return strlen(substitute(getline(a:lnum), '[^}]\+', '', 'g'))
|
||||
endfun
|
||||
|
||||
" [-- return the sum of indents respecting the syntax of a:lnum --]
|
||||
fun! <SID>HtmlIndentSum(lnum, style)
|
||||
let open = <SID>HtmlIndentOpen(a:lnum) + <SID>MakoIndentOpen(a:lnum)
|
||||
let close = <SID>HtmlIndentClose(a:lnum) + <SID>MakoIndentClose(a:lnum)
|
||||
if a:style == match(getline(a:lnum), '^\s*</')
|
||||
if a:style == match(getline(a:lnum), '^\s*</\('.g:html_indent_tags.'\|'.g:mako_indent_tags.'\)')
|
||||
if 0 != open || 0 != close
|
||||
return open - close
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
if '' != &syntax &&
|
||||
\ synIDattr(synID(a:lnum, 1, 1), 'name') =~ '\(css\|java\).*' &&
|
||||
\ synIDattr(synID(a:lnum, strlen(getline(a:lnum)) - 1, 1), 'name')
|
||||
\ =~ '\(css\|java\).*'
|
||||
if a:style == match(getline(a:lnum), '^\s*}')
|
||||
return <SID>HtmlIndentOpenAlt(a:lnum) - <SID>HtmlIndentCloseAlt(a:lnum)
|
||||
endif
|
||||
endif
|
||||
return 0
|
||||
endfun
|
||||
|
||||
" vim: set ts=4 sw=4:
|
@ -1,92 +0,0 @@
|
||||
" Vim syntax file
|
||||
" Language: Mako
|
||||
" Maintainer: Armin Ronacher <armin.ronacher@active-4.com>
|
||||
" URL: http://lucumr.pocoo.org/
|
||||
" Last Change: 2013-05-01
|
||||
" Version: 0.6.1+
|
||||
"
|
||||
" Thanks to Brine Rue <brian@lolapps.com> who noticed a bug in the
|
||||
" delimiter handling.
|
||||
"
|
||||
" Known Limitations
|
||||
" the <%text> block does not have correct attributes
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists("main_syntax")
|
||||
let main_syntax = "html"
|
||||
endif
|
||||
|
||||
"Source the html syntax file
|
||||
ru! syntax/html.vim
|
||||
unlet b:current_syntax
|
||||
|
||||
" tell html.vim what syntax groups should take precedence (see :help html.vim)
|
||||
syn cluster htmlPreproc add=makoLine,makoVariable,makoTag,makoDocComment,makoDefEnd,makoText,makoDelim,makoEnd,makoComment,makoEscape
|
||||
|
||||
"Put the python syntax file in @pythonTop
|
||||
syn include @pythonTop syntax/python.vim
|
||||
|
||||
" End keywords
|
||||
syn keyword makoEnd contained endfor endwhile endif endtry enddef
|
||||
|
||||
" Block rules
|
||||
syn region makoLine matchgroup=makoDelim start=#^\s*%# end=#$# keepend contains=@pythonTop,makoEnd
|
||||
syn region makoBlock matchgroup=makoDelim start=#<%!\?# end=#%># keepend contains=@pythonTop,makoEnd
|
||||
|
||||
" Variables
|
||||
syn region makoNested start="{" end="}" transparent display contained contains=makoNested,@pythonTop
|
||||
syn region makoVariable matchgroup=makoDelim start=#\${# end=#}# contains=makoNested,@pythonTop
|
||||
|
||||
" Comments
|
||||
syn region makoComment start="^\s*##" end="$"
|
||||
syn region makoDocComment matchgroup=makoDelim start="<%doc>" end="</%doc>" keepend
|
||||
|
||||
" Literal Blocks
|
||||
syn region makoText matchgroup=makoDelim start="<%text[^>]*>" end="</%text>"
|
||||
|
||||
" Attribute Sublexing
|
||||
syn match makoAttributeKey containedin=makoTag contained "[a-zA-Z_][a-zA-Z0-9_]*="
|
||||
syn region makoAttributeValue containedin=makoTag contained start=/"/ skip=/\\"/ end=/"/
|
||||
syn region makoAttributeValue containedin=MakoTag contained start=/'/ skip=/\\'/ end=/'/
|
||||
|
||||
" Tags
|
||||
syn region makoTag matchgroup=makoDelim start="<%\(def\|call\|page\|include\|namespace\|inherit\|block\|[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*\)\>" end="/\?>"
|
||||
syn match makoDelim "</%\(def\|call\|namespace\|block\|[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*\)>"
|
||||
|
||||
syn region makoJavaScript matchgroup=makoDelim start=+<%block .*js.*>+ keepend end=+</%block>+ contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc,makoLine,makoBlock,makoVariable
|
||||
syn region makoCssStyle matchgroup=makoDelim start=+<%block .*css.*>+ keepend end=+</%block>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc,makoLine,makoBlock,makoVariable
|
||||
|
||||
" Newline Escapes
|
||||
syn match makoEscape /\\$/
|
||||
|
||||
" Default highlighting links
|
||||
if version >= 508 || !exists("did_mako_syn_inits")
|
||||
if version < 508
|
||||
let did_mako_syn_inits = 1
|
||||
com -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
com -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink makoDocComment makoComment
|
||||
HiLink makoDefEnd makoDelim
|
||||
|
||||
HiLink makoAttributeKey Type
|
||||
HiLink makoAttributeValue String
|
||||
HiLink makoText Normal
|
||||
HiLink makoDelim Preproc
|
||||
HiLink makoEnd Keyword
|
||||
HiLink makoComment Comment
|
||||
HiLink makoEscape Special
|
||||
|
||||
delc HiLink
|
||||
endif
|
||||
|
||||
let b:current_syntax = "html"
|
@ -1,267 +0,0 @@
|
||||
---
|
||||
Title: Solarized Colorscheme for Vim
|
||||
Description: Precision colors for machines and people
|
||||
Author: Ethan Schoonover
|
||||
Colors: light yellow
|
||||
Created: 2011 Mar 15
|
||||
Modified: 2011 Apr 16
|
||||
|
||||
---
|
||||
|
||||
Solarized Colorscheme for Vim
|
||||
=============================
|
||||
|
||||
Developed by Ethan Schoonover <es@ethanschoonover.com>
|
||||
|
||||
Visit the [Solarized homepage]
|
||||
------------------------------
|
||||
|
||||
See the [Solarized homepage] for screenshots,
|
||||
details and colorscheme versions for Vim, Mutt, popular terminal emulators and
|
||||
other applications.
|
||||
|
||||
Screenshots
|
||||
-----------
|
||||
|
||||

|
||||
|
||||
Downloads
|
||||
---------
|
||||
|
||||
If you have come across this colorscheme via the [Vim-only repository] on
|
||||
github, or the [vim.org script] page see the link above to the Solarized
|
||||
homepage or visit the main [Solarized repository].
|
||||
|
||||
The [Vim-only repository] is kept in sync with the main [Solarized repository]
|
||||
and is for installation convenience only (with [Pathogen] or [Vundle], for
|
||||
instance). Issues, bug reports, changelogs are centralized at the main
|
||||
[Solarized repository].
|
||||
|
||||
[Solarized homepage]: http://ethanschoonover.com/solarized
|
||||
[Solarized repository]: https://github.com/altercation/solarized
|
||||
[Vim-only repository]: https://github.com/altercation/vim-colors-solarized
|
||||
[vimorg-script]: http://vim.org/script
|
||||
[Pathogen]: https://github.com/tpope/vim-pathogen
|
||||
[Vundle]: https://github.com/gmarik/vundle
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
### Option 1: Manual installation
|
||||
|
||||
1. Move `solarized.vim` to your `.vim/colors` directory. After downloading the
|
||||
vim script or package:
|
||||
|
||||
$ cd vim-colors-solarized/colors
|
||||
$ mv solarized.vim ~/.vim/colors/
|
||||
|
||||
### Option 2: Pathogen installation ***(recommended)***
|
||||
|
||||
1. Download and install Tim Pope's [Pathogen].
|
||||
|
||||
2. Next, move or clone the `vim-colors-solarized` directory so that it is
|
||||
a subdirectory of the `.vim/bundle` directory.
|
||||
|
||||
a. **Clone:**
|
||||
|
||||
$ cd ~/.vim/bundle
|
||||
$ git clone git://github.com/altercation/vim-colors-solarized.git
|
||||
|
||||
b. **Move:**
|
||||
|
||||
In the parent directory of vim-colors-solarized:
|
||||
|
||||
$ mv vim-colors-solarized ~/.vim/bundle/
|
||||
|
||||
### Modify .vimrc
|
||||
|
||||
After either Option 1 or Option 2 above, put the following two lines in your
|
||||
.vimrc:
|
||||
|
||||
syntax enable
|
||||
set background=dark
|
||||
colorscheme solarized
|
||||
|
||||
or, for the light background mode of Solarized:
|
||||
|
||||
syntax enable
|
||||
set background=light
|
||||
colorscheme solarized
|
||||
|
||||
I like to have a different background in GUI and terminal modes, so I can use
|
||||
the following if-then. However, I find vim's background autodetection to be
|
||||
pretty good and, at least with MacVim, I can leave this background value
|
||||
assignment out entirely and get the same results.
|
||||
|
||||
if has('gui_running')
|
||||
set background=light
|
||||
else
|
||||
set background=dark
|
||||
endif
|
||||
|
||||
See the [Solarized homepage] for screenshots which will help you
|
||||
select either the light or dark background.
|
||||
|
||||
### IMPORTANT NOTE FOR TERMINAL USERS:
|
||||
|
||||
If you are going to use Solarized in Terminal mode (i.e. not in a GUI version
|
||||
like gvim or macvim), **please please please** consider setting your terminal
|
||||
emulator's colorscheme to used the Solarized palette. I've included palettes
|
||||
for some popular terminal emulator as well as Xdefaults in the official
|
||||
Solarized download available from [Solarized homepage]. If you use
|
||||
Solarized *without* these colors, Solarized will need to be told to degrade its
|
||||
colorscheme to a set compatible with the limited 256 terminal palette (whereas
|
||||
by using the terminal's 16 ansi color values, you can set the correct, specific
|
||||
values for the Solarized palette).
|
||||
|
||||
If you do use the custom terminal colors, solarized.vim should work out of the
|
||||
box for you. If you are using a terminal emulator that supports 256 colors and
|
||||
don't want to use the custom Solarized terminal colors, you will need to use
|
||||
the degraded 256 colorscheme. To do so, simply add the following line *before*
|
||||
the `colorschem solarized` line:
|
||||
|
||||
let g:solarized_termcolors=256
|
||||
|
||||
Again, I recommend just changing your terminal colors to Solarized values
|
||||
either manually or via one of the many terminal schemes available for import.
|
||||
|
||||
Advanced Configuration
|
||||
----------------------
|
||||
|
||||
Solarized will work out of the box with just the two lines specified above but
|
||||
does include several other options that can be set in your .vimrc file.
|
||||
|
||||
Set these in your vimrc file prior to calling the colorscheme.
|
||||
"
|
||||
option name default optional
|
||||
------------------------------------------------
|
||||
g:solarized_termcolors= 16 | 256
|
||||
g:solarized_termtrans = 0 | 1
|
||||
g:solarized_degrade = 0 | 1
|
||||
g:solarized_bold = 1 | 0
|
||||
g:solarized_underline = 1 | 0
|
||||
g:solarized_italic = 1 | 0
|
||||
g:solarized_contrast = "normal"| "high" or "low"
|
||||
g:solarized_visibility= "normal"| "high" or "low"
|
||||
------------------------------------------------
|
||||
|
||||
### Option Details
|
||||
|
||||
* g:solarized_termcolors
|
||||
|
||||
This is set to *16* by default, meaning that Solarized will attempt to use
|
||||
the standard 16 colors of your terminal emulator. You will need to set
|
||||
those colors to the correct Solarized values either manually or by
|
||||
importing one of the many colorscheme available for popular terminal
|
||||
emulators and Xdefaults.
|
||||
|
||||
* g:solarized_termtrans
|
||||
|
||||
If you use a terminal emulator with a transparent background and Solarized
|
||||
isn't displaying the background color transparently, set this to 1 and
|
||||
Solarized will use the default (transparent) background of the terminal
|
||||
emulator. *urxvt* required this in my testing; iTerm2 did not.
|
||||
|
||||
Note that on Mac OS X Terminal.app, solarized_termtrans is set to 1 by
|
||||
default as this is almost always the best option. The only exception to
|
||||
this is if the working terminfo file supports 256 colors (xterm-256color).
|
||||
|
||||
* g:solarized_degrade
|
||||
|
||||
For test purposes only; forces Solarized to use the 256 degraded color mode
|
||||
to test the approximate color values for accuracy.
|
||||
|
||||
* g:solarized_bold | g:solarized_underline | g:solarized_italic
|
||||
|
||||
If you wish to stop Solarized from displaying bold, underlined or
|
||||
italicized typefaces, simply assign a zero value to the appropriate
|
||||
variable, for example: `let g:solarized_italic=0`
|
||||
|
||||
* g:solarized_contrast
|
||||
|
||||
Stick with normal! It's been carefully tested. Setting this option to high
|
||||
or low does use the same Solarized palette but simply shifts some values up
|
||||
or down in order to expand or compress the tonal range displayed.
|
||||
|
||||
* g:solarized_visibility
|
||||
|
||||
Special characters such as trailing whitespace, tabs, newlines, when
|
||||
displayed using `:set list` can be set to one of three levels depending on
|
||||
your needs. Default value is `normal` with `high` and `low` options.
|
||||
|
||||
Toggle Background Function
|
||||
--------------------------
|
||||
|
||||
Solarized comes with a Toggle Background plugin that by default will map to
|
||||
<F5> if that mapping is available. If it is not available you will need to
|
||||
either map the function manually or change your current <F5> mapping to
|
||||
something else.
|
||||
|
||||
To set your own mapping in your .vimrc file, simply add the following line to
|
||||
support normal, insert and visual mode usage, changing the "<F5>" value to the
|
||||
key or key combination you wish to use:
|
||||
|
||||
call togglebg#map("<F5>")
|
||||
|
||||
Note that you'll want to use a single function key or equivalent if you want
|
||||
the plugin to work in all modes (normal, insert, visual).
|
||||
|
||||
Code Notes
|
||||
----------
|
||||
|
||||
Use folding to view the `solarized.vim` script with `foldmethod=marker` turned
|
||||
on.
|
||||
|
||||
I have attempted to modularize the creation of Vim colorschemes in this script
|
||||
and, while it could be refactored further, it should be a good foundation for
|
||||
the creation of any color scheme. By simply changing the sixteen values in the
|
||||
GUI section and testing in gvim (or mvim) you can rapidly prototype new
|
||||
colorschemes without diving into the weeds of line-item editing each syntax
|
||||
highlight declaration.
|
||||
|
||||
The Values
|
||||
----------
|
||||
|
||||
L\*a\*b values are canonical (White D65, Reference D50), other values are
|
||||
matched in sRGB space.
|
||||
|
||||
SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB
|
||||
--------- ------- ---- ------- ----------- ---------- ----------- -----------
|
||||
base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
|
||||
base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
|
||||
base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46
|
||||
base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51
|
||||
base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
|
||||
base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
|
||||
base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93
|
||||
base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
|
||||
yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
|
||||
orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
|
||||
red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
|
||||
magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
|
||||
violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
|
||||
blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
|
||||
cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
|
||||
green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
|
||||
|
||||
License
|
||||
-------
|
||||
Copyright (c) 2011 Ethan Schoonover
|
||||
|
||||
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.
|
@ -1,55 +0,0 @@
|
||||
" Toggle Background
|
||||
" Modified: 2011 Apr 29
|
||||
" Maintainer: Ethan Schoonover
|
||||
" License: OSI approved MIT license
|
||||
|
||||
if exists("g:loaded_togglebg")
|
||||
finish
|
||||
endif
|
||||
let g:loaded_togglebg = 1
|
||||
|
||||
" noremap is a bit misleading here if you are unused to vim mapping.
|
||||
" in fact, there is remapping, but only of script locally defined remaps, in
|
||||
" this case <SID>TogBG. The <script> argument modifies the noremap scope in
|
||||
" this regard (and the noremenu below).
|
||||
nnoremap <unique> <script> <Plug>ToggleBackground <SID>TogBG
|
||||
inoremap <unique> <script> <Plug>ToggleBackground <ESC><SID>TogBG<ESC>a
|
||||
vnoremap <unique> <script> <Plug>ToggleBackground <ESC><SID>TogBG<ESC>gv
|
||||
nnoremenu <script> Window.Toggle\ Background <SID>TogBG
|
||||
inoremenu <script> Window.Toggle\ Background <ESC><SID>TogBG<ESC>a
|
||||
vnoremenu <script> Window.Toggle\ Background <ESC><SID>TogBG<ESC>gv
|
||||
tmenu Window.Toggle\ Background Toggle light and dark background modes
|
||||
nnoremenu <script> ToolBar.togglebg <SID>TogBG
|
||||
inoremenu <script> ToolBar.togglebg <ESC><SID>TogBG<ESC>a
|
||||
vnoremenu <script> ToolBar.togglebg <ESC><SID>TogBG<ESC>gv
|
||||
tmenu ToolBar.togglebg Toggle light and dark background modes
|
||||
noremap <SID>TogBG :call <SID>TogBG()<CR>
|
||||
|
||||
function! s:TogBG()
|
||||
let &background = ( &background == "dark"? "light" : "dark" )
|
||||
if exists("g:colors_name")
|
||||
exe "colorscheme " . g:colors_name
|
||||
endif
|
||||
endfunction
|
||||
|
||||
if !exists(":ToggleBG")
|
||||
command ToggleBG :call s:TogBG()
|
||||
endif
|
||||
|
||||
function! ToggleBackground()
|
||||
echo "Please update your ToggleBackground mapping. ':help togglebg' for information."
|
||||
endfunction
|
||||
|
||||
function! togglebg#map(mapActivation)
|
||||
try
|
||||
exe "silent! nmap <unique> ".a:mapActivation." <Plug>ToggleBackground"
|
||||
exe "silent! imap <unique> ".a:mapActivation." <Plug>ToggleBackground"
|
||||
exe "silent! vmap <unique> ".a:mapActivation." <Plug>ToggleBackground"
|
||||
finally
|
||||
return 0
|
||||
endtry
|
||||
endfunction
|
||||
|
||||
if !exists("no_plugin_maps") && !hasmapto('<Plug>ToggleBackground')
|
||||
call togglebg#map("<F5>")
|
||||
endif
|
Binary file not shown.
Before Width: | Height: | Size: 1.6 KiB |
File diff suppressed because it is too large
Load Diff
@ -1,254 +0,0 @@
|
||||
*solarized.vim* for Vim version 7.3 or newer. Modified: 2011 May 05
|
||||
|
||||
|
||||
Solarized Vim Colorscheme by Ethan Schoonover ~
|
||||
|
||||
Solarized Colorscheme *solarized*
|
||||
*solarized-help*
|
||||
*solarized-colors*
|
||||
*solarized-colorscheme*
|
||||
*vim-colors-solarized*
|
||||
|
||||
Solarized is a carefully designed selective contrast colorscheme with dual
|
||||
light and dark modes that runs in both GUI, 256 and 16 color modes.
|
||||
|
||||
See the homepage at http://ethanschoonover.com/solarized for screenshots and
|
||||
details.
|
||||
|
||||
0. Install |solarized-install|
|
||||
1. Solarized Menu |solarized-menu|
|
||||
2. Options |solarized-options|
|
||||
3. Toggle Background |solarized-togglebg|
|
||||
4. Terminal Issues |solarized-term|
|
||||
|
||||
==============================================================================
|
||||
0. Install *solarized-install*
|
||||
|
||||
Note: I recommend using Tim Pope's pathogen plugin to install this
|
||||
colorscheme. See https://github.com/tpope/vim-pathogen . If you've installed
|
||||
pathogen properly you can install Solarized with the following commands,
|
||||
followed by the .vimrc configuration below.
|
||||
|
||||
$ cd ~/.vim/bundle
|
||||
$ git clone https://github.com/altercation/vim-colors-solarized.git
|
||||
|
||||
If you aren't using pathogen, you can use the following three steps to install
|
||||
Solarized:
|
||||
|
||||
1. Download the solarized distribution (available on the homepage above)
|
||||
and unarchive the file.
|
||||
|
||||
2. Move `solarized.vim` to your `.vim/colors` directory.
|
||||
|
||||
3. Move each of the files in each subdirectories to the corresponding .vim
|
||||
subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload
|
||||
directory as .vim/autoload/togglebg.vim).
|
||||
|
||||
|
||||
After installation, place the following lines in your .vimrc:
|
||||
|
||||
syntax enable
|
||||
set background=dark
|
||||
colorscheme solarized
|
||||
|
||||
or, for the light background mode of Solarized:
|
||||
|
||||
syntax enable
|
||||
set background=light
|
||||
colorscheme solarized
|
||||
|
||||
==============================================================================
|
||||
1. Solarized Menu *solarized-menu*
|
||||
|
||||
Solarized makes available a menu when used in Vim GUI mode (gvim, macvim).
|
||||
This menu includes many of the options detailed below so that you can test out
|
||||
different values quickly without modifying your .vimrc file. If you wish to
|
||||
turn off this menu permanently, simply place the following line in your .vimrc
|
||||
above the "colorscheme solarized" line.
|
||||
|
||||
let g:solarized_menu=0
|
||||
|
||||
==============================================================================
|
||||
2. Toggle Background *solarized-togglebg*
|
||||
*toggle-bg* *togglebg*
|
||||
*toggle-background*
|
||||
|
||||
Solarized comes with Toggle Background, a simple plugin to switch between
|
||||
light and dark background modes and reset the colorscheme. This is most useful
|
||||
for colorschemes that support both light and dark modes and in terminals or
|
||||
gui vim windows where the background will be properly set.
|
||||
|
||||
Toggle Background can be accessed by:
|
||||
|
||||
* the Solarized menu (in Vim gui mode)
|
||||
* the Window menu (in Vim gui mode, even if the Solarized menu is off)
|
||||
* the "yin/yang" toolbar button (in Vim gui mode)
|
||||
* the default mapping of <F5>
|
||||
* custom key mapping you set in your .vimrc (see below)
|
||||
* command line via ":ToggleBG" (no quotes)
|
||||
|
||||
Toggle Background starts with a default mapping to function key <F5>. If you
|
||||
are already using this in a mapping, Toggle Background will not map itself to
|
||||
a default and you will have to map it manually in your .vimrc file, or
|
||||
remove/change your existing <F5> mapping to another value. To customize the
|
||||
keyboard mapping in your .vimrc file, use the following line, changing the
|
||||
"<F5>" value to the key or key combination you wish to use:
|
||||
|
||||
call togglebg#map("<F5>")
|
||||
|
||||
Note that you'll want to use a single function key or equivalent if you want
|
||||
the plugin to work in all modes (normal, insert, visual).
|
||||
|
||||
When using the plugin during normal, visual, or insert mode, there should be
|
||||
no interruption in workflow. However, if you activate the plugin during
|
||||
REPLACE mode, you will switch to standard insert mode (you will leave the
|
||||
overwrite replace mode).
|
||||
|
||||
==============================================================================
|
||||
3. Solarized Terminal Issues *solarized-term*
|
||||
|
||||
If you are going to use Solarized in Terminal mode (i.e. not in a GUI version
|
||||
like gvim or macvim), **please please please** consider setting your terminal
|
||||
emulator's colorscheme to used the Solarized palette. I've included palettes
|
||||
for some popular terminal emulator as well as Xdefaults in the official
|
||||
Solarized download available from the Solarized homepage listed at the top of
|
||||
this help document. If you use Solarized *without* these colors, Solarized
|
||||
will need to be told to degrade its colorscheme to a set compatible with the
|
||||
limited 256 terminal palette (whereas by using the terminal's 16 ansi color
|
||||
values, you can set the correct, specific values for the Solarized palette).
|
||||
|
||||
If you do use the custom terminal colors, solarized.vim should work out of
|
||||
the box for you. If you are using a terminal emulator that supports 256
|
||||
colors and don't want to use the custom Solarized terminal colors, you will
|
||||
need to use the degraded 256 colorscheme. To do so, simply add the following
|
||||
line *before* the `colorschem solarized` line:
|
||||
|
||||
let g:solarized_termcolors=256
|
||||
|
||||
Again, I recommend just changing your terminal colors to Solarized values
|
||||
either manually or via one of the many terminal schemes available for import.
|
||||
|
||||
==============================================================================
|
||||
4. Solarized Options *solarized-options*
|
||||
|
||||
|
||||
AUTOGENERATE OPTIONS
|
||||
|
||||
You can easily modify and experiment with Solarized display options using the
|
||||
Solarized menu when using Vim in gui mode. Once you have things set to your
|
||||
liking, you can autogenerate the current option list in a format ready for
|
||||
insertion into your .vimrc file using the Solarized menu "Autogenerate
|
||||
Options" command or at the command line with:
|
||||
|
||||
:SolarizedOptions
|
||||
|
||||
|
||||
OPTION LIST
|
||||
|
||||
Set these in your vimrc file prior to calling the colorscheme.
|
||||
|
||||
option name default optional
|
||||
------------------------------------------------
|
||||
g:solarized_termcolors= 16 | 256
|
||||
g:solarized_termtrans = 0 | 1
|
||||
g:solarized_degrade = 0 | 1
|
||||
g:solarized_bold = 1 | 0
|
||||
g:solarized_underline = 1 | 0
|
||||
g:solarized_italic = 1 | 0
|
||||
g:solarized_contrast = "normal"| "high" or "low"
|
||||
g:solarized_visibility= "normal"| "high" or "low"
|
||||
g:solarized_hitrail = 0 | 1
|
||||
g:solarized_menu = 1 | 0
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
OPTION DETAILS
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_termcolors= 256 | 16 *'solarized_termcolors'*
|
||||
------------------------------------------------
|
||||
The most important option if you are using vim in terminal (non gui) mode!
|
||||
This tells Solarized to use the 256 degraded color mode if running in a 256
|
||||
color capable terminal. Otherwise, if set to `16` it will use the terminal
|
||||
emulators colorscheme (best option as long as you've set the emulators colors
|
||||
to the Solarized palette).
|
||||
|
||||
If you are going to use Solarized in Terminal mode (i.e. not in a GUI
|
||||
version like gvim or macvim), **please please please** consider setting your
|
||||
terminal emulator's colorscheme to used the Solarized palette. I've included
|
||||
palettes for some popular terminal emulator as well as Xdefaults in the
|
||||
official Solarized download available from:
|
||||
http://ethanschoonover.com/solarized . If you use Solarized without these
|
||||
colors, Solarized will by default use an approximate set of 256 colors. It
|
||||
isn't bad looking and has been extensively tweaked, but it's still not quite
|
||||
the real thing.
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_termtrans = 0 | 1 *'solarized_termtrans'*
|
||||
------------------------------------------------
|
||||
If you use a terminal emulator with a transparent background and Solarized
|
||||
isn't displaying the background color transparently, set this to 1 and
|
||||
Solarized will use the default (transparent) background of the terminal
|
||||
emulator. *urxvt* required this in my testing; iTerm2 did not.
|
||||
|
||||
Note that on Mac OS X Terminal.app, solarized_termtrans is set to 1 by
|
||||
default as this is almost always the best option. The only exception to this
|
||||
is if the working terminfo file supports 256 colors (xterm-256color).
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_degrade = 0 | 1 *'solarized_degrade'*
|
||||
------------------------------------------------
|
||||
For test purposes only; forces Solarized to use the 256 degraded color mode
|
||||
to test the approximate color values for accuracy.
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_bold = 1 | 0 *'solarized_bold'*
|
||||
------------------------------------------------
|
||||
------------------------------------------------
|
||||
g:solarized_underline = 1 | 0 *'solarized_underline'*
|
||||
------------------------------------------------
|
||||
------------------------------------------------
|
||||
g:solarized_italic = 1 | 0 *'solarized_italic'*
|
||||
------------------------------------------------
|
||||
If you wish to stop Solarized from displaying bold, underlined or
|
||||
italicized typefaces, simply assign a zero value to the appropriate
|
||||
variable, for example: `let g:solarized_italic=0`
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_contrast = "normal"| "high" or "low" *'solarized_contrast'*
|
||||
------------------------------------------------
|
||||
Stick with normal! It's been carefully tested. Setting this option to high
|
||||
or low does use the same Solarized palette but simply shifts some values up
|
||||
or down in order to expand or compress the tonal range displayed.
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_visibility = "normal"| "high" or "low" *'solarized_visibility'*
|
||||
------------------------------------------------
|
||||
Special characters such as trailing whitespace, tabs, newlines, when
|
||||
displayed using ":set list" can be set to one of three levels depending on
|
||||
your needs.
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_hitrail = 0 | 1 *'solarized_hitrail'*
|
||||
------------------------------------------------
|
||||
Visibility can make listchar entities more visible, but if one has set
|
||||
cursorline on, these same listchar values standout somewhat less due to the
|
||||
background color of the cursorline. g:solarized_hitrail enables highlighting
|
||||
of trailing spaces (only one of the listchar types, but a particularly
|
||||
important one) while in the cursoline in a different manner in order to make
|
||||
them more visible. This may not work consistently as Solarized is using
|
||||
a pattern match than can be overridden by a more encompassing syntax-native
|
||||
match such as a comment line.
|
||||
|
||||
|
||||
------------------------------------------------
|
||||
g:solarized_menu = 1 | 0 *'solarized_menu'*
|
||||
------------------------------------------------
|
||||
Solarized includes a menu providing access to several of the above
|
||||
display related options, including contrast and visibility. This allows
|
||||
for an easy method of testing different values quickly before settling
|
||||
on a final assignment for your .vimrc. If you wish to turn off this menu,
|
||||
assign g:solarized_menu a value of 0.
|
||||
|
||||
|
||||
vim:tw=78:noet:ts=8:ft=help:norl:
|
1
bundle/vim-less/.gitignore
vendored
1
bundle/vim-less/.gitignore
vendored
@ -1 +0,0 @@
|
||||
*.swp
|
@ -1,49 +0,0 @@
|
||||
# VIM-LESS
|
||||
|
||||
This vim bundle adds syntax highlighting, indenting and autocompletion for the dynamic stylesheet language [LESS](http://lesscss.org).
|
||||
|
||||
This bundle is compatible with [vim-css-color](https://github.com/skammer/vim-css-color),
|
||||
[vim-css3-syntax](https://github.com/hail2u/vim-css3-syntax) and possibly other plugins that place code
|
||||
in `after/syntax/css.vim` or `after/syntax/css/*.vim`.
|
||||
|
||||

|
||||
|
||||
|
||||
## Installing and Using
|
||||
|
||||
- Install [pathogen](http://www.vim.org/scripts/script.php?script_id=2332) into `~/.vim/autoload/` and add the
|
||||
following line to your `~/.vimrc`:
|
||||
|
||||
call pathogen#infect()
|
||||
|
||||
- Make a clone of the `vim-less` repository:
|
||||
|
||||
$ mkdir -p ~/.vim/bundle
|
||||
$ cd ~/.vim/bundle
|
||||
$ git clone https://github.com/groenewege/vim-less
|
||||
|
||||
- OR use [vundle](https://github.com/gmarik/vundle), adding this line to your `~/.vimrc`:
|
||||
|
||||
Bundle 'groenewege/vim-less'
|
||||
|
||||
- OR use git submodules:
|
||||
|
||||
$ git submodule add https://github.com/groenewege/vim-less.git bundle/vim-less
|
||||
$ git submodule init
|
||||
|
||||
|
||||
### Map
|
||||
.less to .css , lessc is required.
|
||||
|
||||
nnoremap <Leader>m :w <BAR> !lessc % > %:t:r.css<CR><space>
|
||||
|
||||
|
||||
## Credits
|
||||
|
||||
Inspiration from [vim-haml](https://github.com/tpope/vim-haml),
|
||||
[scss-syntax.vim](https://github.com/cakebaker/scss-syntax.vim) and
|
||||
[vim-less](https://github.com/lunaru/vim-less)
|
||||
|
||||
## License ##
|
||||
|
||||
MIT : [groenewege.mit-license.org](http://groenewege.mit-license.org/)
|
@ -1 +0,0 @@
|
||||
autocmd BufNewFile,BufRead *.less setf less
|
@ -1,25 +0,0 @@
|
||||
" Vim filetype plugin
|
||||
" Language: LessCSS
|
||||
" Author: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Maintainer: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Last Change: 2011 Sep 30
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let b:undo_ftplugin = "setl cms< def< inc< inex< ofu< sua<"
|
||||
|
||||
setlocal iskeyword+=-
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal define=^\\s*\\%(@mixin\\\|=\\)
|
||||
setlocal includeexpr=substitute(v:fname,'\\%(.*/\\\|^\\)\\zs','_','')
|
||||
setlocal omnifunc=csscomplete#CompleteCSS
|
||||
setlocal suffixesadd=.less
|
||||
setlocal comments=s1:/*,mb:*,ex:*/
|
||||
|
||||
let &l:include = '^\s*@import\s\+\%(url(\)\=["'']\='
|
||||
|
||||
" vim:set sw=2:
|
@ -1,10 +0,0 @@
|
||||
" Vim indent file
|
||||
" Language: LessCSS
|
||||
" Maintainer: Leonard Ehrenfried <leonard.ehrenfried@web.de>
|
||||
" Last Change: 2011 Sep 26
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! indent/css.vim
|
Binary file not shown.
Before Width: | Height: | Size: 51 KiB |
@ -1,64 +0,0 @@
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! syntax/css.vim
|
||||
runtime! after/syntax/css.vim
|
||||
" load files from vim-css3-syntax plugin (https://github.com/hail2u/vim-css3-syntax)
|
||||
runtime! after/syntax/css/*.vim
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn region lessDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssTagName,cssPseudoClass,cssUrl,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,lessDefinition,lessComment,lessClassChar,lessVariable,lessMixinChar,lessAmpersandChar,lessFunction,lessNestedSelector,@cssColors fold
|
||||
|
||||
syn match lessVariable "@[[:alnum:]_-]\+" contained
|
||||
syn match lessVariable "@[[:alnum:]_-]\+" nextgroup=lessVariableAssignment skipwhite
|
||||
syn match lessVariableAssignment ":" contained nextgroup=lessVariableValue skipwhite
|
||||
syn match lessVariableValue ".*;"me=e-1 contained contains=lessVariable,lessOperator,lessDefault,cssValue.*,@cssColors "me=e-1 means that the last char of the pattern is not highlighted
|
||||
|
||||
syn match lessOperator "+" contained
|
||||
syn match lessOperator "-" contained
|
||||
syn match lessOperator "/" contained
|
||||
syn match lessOperator "*" contained
|
||||
|
||||
syn match lessNestedSelector "[^/]* {"me=e-1 contained contains=cssTagName,cssAttributeSelector,lessAmpersandChar,lessVariable,lessMixinChar,lessFunction,lessNestedProperty
|
||||
syn match lessNestedProperty "[[:alnum:]]\+:"me=e-1 contained
|
||||
|
||||
syn match lessDefault "!default" contained
|
||||
|
||||
syn match lessMixinChar "\.[[:alnum:]_-]\@=" contained nextgroup=lessClass
|
||||
syn match lessAmpersandChar "&" contained nextgroup=lessClass,cssPseudoClass
|
||||
syn match lessClass "[[:alnum:]_-]\+" contained
|
||||
|
||||
" functions {{{
|
||||
|
||||
" string functions
|
||||
syn keyword lessFunction escape e % containedin=cssDefinition contained
|
||||
" misc functions
|
||||
syn keyword lessFunction unit containedin=cssDefinition contained
|
||||
" math functions
|
||||
syn keyword lessFunction ceil floor percentage round containedin=cssDefinition contained
|
||||
" color definition
|
||||
syn keyword lessFunction rgb rgba argb hsl hsla hsv hsva containedin=cssDefinition contained
|
||||
" color channel information
|
||||
syn keyword lessFunction hue saturation lightness red green blue alpha luma containedin=cssDefinition contained
|
||||
" color operations
|
||||
syn keyword lessFunction saturate desaturate lighten darken fadein fadeout fade spin mix greyscale contrast containedin=cssDefinition contained
|
||||
" color blending
|
||||
syn keyword lessFunction multiply screen overlay softlight hardlight difference exclusion average negation containedin=cssDefinition contained
|
||||
|
||||
" }}}
|
||||
|
||||
syn match lessComment "//.*$" contains=@Spell
|
||||
|
||||
hi def link lessVariable Special
|
||||
hi def link lessVariableValue Constant
|
||||
hi def link lessDefault Special
|
||||
hi def link lessComment Comment
|
||||
hi def link lessFunction Function
|
||||
hi def link lessMixinChar Special
|
||||
hi def link lessAmpersandChar Special
|
||||
hi def link lessNestedProperty Type
|
||||
hi def link lessClass PreProc
|
||||
|
||||
let b:current_syntax = "less"
|
@ -1,2 +0,0 @@
|
||||
--color
|
||||
--format d
|
@ -1,7 +0,0 @@
|
||||
language: ruby
|
||||
rvm:
|
||||
- 1.9.3
|
||||
before_install: sudo apt-get install vim-gtk
|
||||
before_script:
|
||||
- "export DISPLAY=:99.0"
|
||||
- "sh -e /etc/init.d/xvfb start"
|
@ -1,109 +0,0 @@
|
||||
## 2.2 (06/10/2013)
|
||||
Bugfixes:
|
||||
- Fix plugin break in PASTE mode. This fixes #44.
|
||||
|
||||
## 2.1 (04/26/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Fix 1 regression where cursors could potentially get out of sync in insert mode
|
||||
|
||||
Features:
|
||||
- Added some logic to debug latency. Fanning out to 30 cursors in insert mode with my vimrc took over 300ms. It's like than 20ms with a plain vimrc. Need to debug what setting is causing the slowing down in insert mode and inform users.
|
||||
|
||||
## 2.0 (04/24/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Fix inconsistent undo behavior. Changes made in multicursor insert mode are now undone together. This fixes #22.
|
||||
- Single key commands that do not terminate properly no longer cause ghostly cursors to linger on screen. An error message is now displayed informing the user the number of cursor locations that the input cannot be properly played back at. This fixes #28.
|
||||
|
||||
## 1.16 (04/23/2013)
|
||||
|
||||
Features:
|
||||
- Add integration tests using vimrunner. Hook up travis-ci to run continous integration on commit.
|
||||
|
||||
## 1.15 (04/22/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Fix plugin causing error bell. This fixes #29.
|
||||
|
||||
## 1.14 (04/22/2013)
|
||||
|
||||
Features:
|
||||
- Allow users to separate start key from next key. (credit: @xanderman)
|
||||
|
||||
## 1.13 (04/22/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Add support for switching to visual line mode from inside multicursor mode
|
||||
- Fix highlight issue where extra character at end of line is highlighted for visual selections covering more than 2 lines.
|
||||
|
||||
## 1.12 (04/19/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Fix tab character causing highlight errors. This fixes #18 and fixes #32
|
||||
|
||||
## 1.11 (04/18/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Fix regression where `C-n` doesn't exhibit correct behavior when all matches have been found
|
||||
- Clear echo messages when a new input is received
|
||||
|
||||
## 1.10 (04/17/2013)
|
||||
|
||||
Bugfixes:
|
||||
- `O` works now in normal mode. This fixes #24
|
||||
- Turn on `lazyredraw` during multicursor mode to prevent the sluggish screen redraws
|
||||
|
||||
Features:
|
||||
- Add command **MultipleCursorsFind** to add multiple virtual cursors using regexp. This closes #20
|
||||
|
||||
## 1.9 (04/17/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Fix starting multicursor mode in visual line mode. This fixes #25
|
||||
- Major refactoring to avoid getting in and out of visual mode as much as possible
|
||||
|
||||
## 1.8 (04/16/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Fix regression that causes call stack to explode with too many cursors
|
||||
|
||||
## 1.7 (04/15/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Finally fix the annoying highlighting problem when the last virtual cursor is on the last character of the line. The solution is a hack, but it should be harmless
|
||||
|
||||
## 1.6 (04/15/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Stop chaining dictionary function calls. This fixes #10 and #11
|
||||
|
||||
## 1.5 (04/15/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Exit Vim's visual mode before waiting for user's next input. This fixes #14
|
||||
|
||||
## 1.4 (04/14/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Don't use clearmatches(). It clears highlighting from other plugins. This fixes #13
|
||||
|
||||
## 1.3 (04/14/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Change mapping from using expression-quote syntax to using raw strings
|
||||
|
||||
## 1.2 (04/14/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Restore view when exiting from multicursor mode. This fixes #5
|
||||
- Remove the unnecessary user level mapping for 'prev' and 'skip' in visual mode, since we can purely detect those keys from multicursor mode
|
||||
|
||||
## 1.1 (04/14/2013)
|
||||
|
||||
Bugfixes:
|
||||
- Stop hijacking escape key in normal mode. This fixes #1, #2, and #3
|
||||
|
||||
## 1.0 (04/13/2013)
|
||||
|
||||
Initial release
|
@ -1,4 +0,0 @@
|
||||
source 'https://rubygems.org'
|
||||
gem 'vimrunner'
|
||||
gem 'rake'
|
||||
gem 'rspec'
|
@ -1,22 +0,0 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
diff-lcs (1.2.4)
|
||||
rake (10.0.4)
|
||||
rspec (2.13.0)
|
||||
rspec-core (~> 2.13.0)
|
||||
rspec-expectations (~> 2.13.0)
|
||||
rspec-mocks (~> 2.13.0)
|
||||
rspec-core (2.13.1)
|
||||
rspec-expectations (2.13.0)
|
||||
diff-lcs (>= 1.1.3, < 2.0)
|
||||
rspec-mocks (2.13.1)
|
||||
vimrunner (0.3.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
rake
|
||||
rspec
|
||||
vimrunner
|
@ -1,20 +0,0 @@
|
||||
Copyright 2013 Terry Ma
|
||||
|
||||
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.
|
@ -1,112 +0,0 @@
|
||||
# vim-multiple-cursors [](https://travis-ci.org/terryma/vim-multiple-cursors)
|
||||
|
||||
## About
|
||||
[There](https://github.com/paradigm/vim-multicursor) [have](https://github.com/felixr/vim-multiedit) [been](https://github.com/hlissner/vim-multiedit) [many](https://github.com/adinapoli/vim-markmultiple) [attempts](https://github.com/AndrewRadev/multichange.vim) at bringing Sublime Text's awesome [multiple selection][sublime-multiple-selection] feature into Vim, but none so far have been in my opinion a faithful port that is simplistic to use, yet powerful and intuitive enough for an existing Vim user. [vim-multiple-cursors] is yet another attempt at that.
|
||||
|
||||
### It's great for quick refactoring
|
||||

|
||||
|
||||
### Add a cursor to each line of your visual selection
|
||||

|
||||
|
||||
### Do it backwards too! This is not just a replay of the above gif :)
|
||||

|
||||
|
||||
### Add multiple cursors using regexes
|
||||

|
||||
|
||||
To see what keystrokes are used for the above example, see [this issue](https://github.com/terryma/vim-multiple-cursors/issues/39).
|
||||
|
||||
## Features
|
||||
- Live update in Insert mode
|
||||
- One key to rule it all! See [Quick Start](#quick-start) on what the key does in different scenarios
|
||||
- Works in Normal, Insert, and Visual mode for SINGLE key command
|
||||
|
||||
## Installation
|
||||
Install using [Pathogen], [Vundle], [Neobundle], or your favorite Vim package manager.
|
||||
|
||||
## Quick Start
|
||||
Out of the box, all you need to know is a single key `Ctrl-n`. Pressing the key in Normal mode highlights the current word under the cursor in Visual mode and places a virtual cursor at the end of it. Pressing it again finds the next ocurrence and places another virtual cursor at the end of the visual selection. If you select multiple lines in Visual mode, pressing the key puts a virtual cursor at every line and leaves you in Normal mode.
|
||||
|
||||
After you've marked all your locations with `Ctrl-n`, you can change the visual selection with normal Vim motion commands in Visual mode. You could go to Normal mode by pressing `v` and wield your motion commands there. Single key command to switch to Insert mode such as `c` or `s` from Visual mode or `i`, `a`, `I`, `A` in Normal mode should work without any issues.
|
||||
|
||||
At any time, you can press `<Esc>` to exit back to regular Vim.
|
||||
|
||||
Two additional keys are also mapped:
|
||||
- `Ctrl-p` in Visual mode will remove the current virtual cursor and go back to the previous virtual cursor location. This is useful if you are trigger happy with `Ctrl-n` and accidentally went too far.
|
||||
- `Ctrl-x` in Visual mode will remove the current virtual cursor and skip to the next virtual cursor location. This is useful if you don't want the current selection to be a candidate to operate on later.
|
||||
|
||||
You can also add multiple cursors using a regular expression. The command `MultipleCursorsFind` accepts a range and a pattern, and it will create a virtual cursor at the end of every match within the range. If no range is passed in, then it defaults to the entire buffer.
|
||||
|
||||
**NOTE:** If at any time you have lingering cursors on screen, you can press `Ctrl-n` in Normal mode and it will remove all prior cursors before starting a new one.
|
||||
|
||||
## Mapping
|
||||
Out of the box, only the single key `Ctrl-n` is mapped in regular Vim's Normal mode and Visual mode to provide the functionality mentioned above. `Ctrl-n`, `Ctrl-p`, `Ctrl-x`, and `<Esc>` are mapped in the special multicursor mode once you've added at least one virtual cursor to the buffer. If you don't like the plugin taking over your favorite key bindings, you can turn off the default with
|
||||
```
|
||||
let g:multi_cursor_use_default_mapping=0
|
||||
```
|
||||
|
||||
You can then map the 'next', 'previous', 'skip', and 'exit' keys like the following:
|
||||
```
|
||||
" Default mapping
|
||||
let g:multi_cursor_next_key='<C-n>'
|
||||
let g:multi_cursor_prev_key='<C-p>'
|
||||
let g:multi_cursor_skip_key='<C-x>'
|
||||
let g:multi_cursor_quit_key='<Esc>'
|
||||
```
|
||||
|
||||
By default, the 'next' key is also used to enter multicursor mode. If you want to use a different key to start multicursor mode than for selecting the next location, do like the following:
|
||||
```
|
||||
" Map start key separately from next key
|
||||
let g:multi_cursor_start_key='<F6>'
|
||||
```
|
||||
|
||||
**IMPORTANT:** Please note that currently only single keystrokes and special keys can be mapped. This contraint is also the reason why multikey commands such as `ciw` do not work and cause unexpected behavior in Normal mode. This means that a mapping like `<Leader>n` will NOT work correctly. For a list of special keys that are supported, see `help :key-notation`
|
||||
|
||||
**NOTE:** Please make sure to always map something to `g:multi_cursor_quit_key`, otherwise you'll have a tough time quitting from multicursor mode.
|
||||
|
||||
**NOTE:** Prior to version 1.3, the recommended way to map the keys is using the expressoin quote syntax in Vim, using something like `"\<C-n>"` or `"\<Esc>"` (see h: expr-quote). After 1.3, the recommended way is to use a raw string like above. If your key mappings don't appear to work, give the new syntax a try.
|
||||
|
||||
## Setting
|
||||
Currently there're two additional global settings one can tweak:
|
||||
### ```g:multi_cursor_exit_from_visual_mode``` (Default: 1)
|
||||
|
||||
If set to 0, then pressing `g:multi_cursor_quit_key` in _Visual_ mode will not quit and delete all existing cursors. This is useful if you want to press Escape and go back to Normal mode, and still be able to operate on all the cursors.
|
||||
|
||||
### ```g:multi_cursor_exit_from_insert_mode``` (Default: 1)
|
||||
If set to 0, then pressing `g:multi_cursor_quit_key` in _Insert_ mode will not quit and delete all existing cursors. This is useful if you want to press Escape and go back to Normal mode, and still be able to operate on all the cursors.
|
||||
|
||||
### Highlight
|
||||
The plugin uses the highlight group `multiple_cursors_cursor` and `multiple_cursors_visual` to highlight the virtual cursors and their visual selections respectively. You can customize them by putting something similar like the following in your vimrc:
|
||||
|
||||
```
|
||||
" Default highlighting (see help :highlight and help :highlight-link)
|
||||
highlight multiple_cursors_cursor term=reverse cterm=reverse gui=reverse
|
||||
highlight link multiple_cursors_visual Visual
|
||||
```
|
||||
|
||||
## Issues
|
||||
- Multi key commands like `ciw` do not work at the moment
|
||||
- All user input typed before Vim is able to fan out the last operation to all cursors is lost. This is a implementation decision to keep the input perfectly synced in all locations, at the cost of potentially losing user input.
|
||||
- Select mode is not implemented
|
||||
|
||||
## Changelog
|
||||
See [CHANGELOG.md](CHANGELOG.md)
|
||||
|
||||
## Contributing
|
||||
As one can see, there're still many issues to be resolved, patches and suggestions are always welcome! A list of open feature requests can be found [here](../../issues?labels=enhancement&state=open).
|
||||
|
||||
## Credit
|
||||
Obviously inspired by Sublime Text's [multiple selection][sublime-multiple-selection] feature, also encouraged by Emac's [multiple cursors][emacs-multiple-cursors] implemetation by Magnar Sveen
|
||||
|
||||
[vim-multiple-cursors]:http://github.com/terryma/vim-multiple-cursors
|
||||
[sublime-multiple-selection]:http://www.sublimetext.com/docs/2/multiple_selection_with_the_keyboard.html
|
||||
[Pathogen]:http://github.com/tpope/vim-pathogen
|
||||
[Vundle]:http://github.com/gmarik/vundle
|
||||
[Neobundle]:http://github.com/Shougo/neobundle.vim
|
||||
[emacs-multiple-cursors]:https://github.com/magnars/multiple-cursors.el
|
||||
|
||||
|
||||
|
||||
[](https://bitdeli.com/free "Bitdeli Badge")
|
||||
|
@ -1,11 +0,0 @@
|
||||
require 'rspec/core/rake_task'
|
||||
|
||||
RSpec::Core::RakeTask.new(:spec) do |t|
|
||||
t.pattern = 'spec/multiple_cursors_spec.rb'
|
||||
end
|
||||
|
||||
RSpec::Core::RakeTask.new(:benchmark) do |t|
|
||||
t.pattern = 'spec/benchmark_spec.rb'
|
||||
end
|
||||
|
||||
task :default => :spec
|
Binary file not shown.
Before Width: | Height: | Size: 101 KiB |
Binary file not shown.
Before Width: | Height: | Size: 265 KiB |
Binary file not shown.
Before Width: | Height: | Size: 182 KiB |
Binary file not shown.
Before Width: | Height: | Size: 532 KiB |
File diff suppressed because it is too large
Load Diff
@ -1,198 +0,0 @@
|
||||
*vim-multiple-cursors.txt* True Sublime Text multiple selection in Vim
|
||||
|
||||
____ _ __
|
||||
____ ___ __ __/ / /_(_)___ / /__ _______ ________________ __________
|
||||
/ __ `__ \/ / / / / __/ / __ \/ / _ \ / ___/ / / / ___/ ___/ __ \/ ___/ ___/
|
||||
/ / / / / / /_/ / / /_/ / /_/ / / __/ / /__/ /_/ / / (__ ) /_/ / / (__ )
|
||||
/_/ /_/ /_/\__,_/_/\__/_/ .___/_/\___/ \___/\__,_/_/ /____/\____/_/ /____/
|
||||
/_/
|
||||
|
||||
|
||||
Reference Manual~
|
||||
|
||||
|
||||
==============================================================================
|
||||
|
||||
CONTENTS *multiple-cursors-contents*
|
||||
1.Intro...................................|multiple-cursors-intro|
|
||||
2.Usage...................................|multiple-cursors-usage|
|
||||
3.Mappings................................|multiple-cursors-mappings|
|
||||
4.Global Options..........................|multiple-cursors-global-options|
|
||||
5.Issues..................................|multiple-cursors-issues|
|
||||
6.Contributing............................|multiple-cursors-contributing|
|
||||
7.License.................................|multiple-cursors-license|
|
||||
8.Credit..................................|multiple-cursors-credit|
|
||||
9.References..............................|multiple-cursors-references|
|
||||
|
||||
==============================================================================
|
||||
1. Intro *multiple-cursors-intro*
|
||||
|
||||
There [1] have [2] been [3] many [4] attempts [5] at bringing Sublime Text's
|
||||
awesome multiple selection [6] feature into Vim, but none so far have been in
|
||||
my opinion a faithful port that is simplistic to use, yet powerful and
|
||||
intuitive enough for an existing Vim user. *vim-multiple-cursors* is yet
|
||||
another attempt at that.
|
||||
|
||||
==============================================================================
|
||||
2. Usage *multiple-cursors-usage*
|
||||
|
||||
Out of the box, all you need to know is a single key CTRL-N. Pressing the key
|
||||
in Normal mode highlights the current word under the cursor in Visual mode and
|
||||
places a virtual cursor at the end of it. Pressing it again finds the next
|
||||
ocurrence and places another virtual cursor at the end of the visual
|
||||
selection. If you select multiple lines in Visual mode, pressing the key puts
|
||||
a virtual cursor at every line and leaves you in Normal mode.
|
||||
|
||||
After you've marked all your locations with CTRL-N, you can change the visual
|
||||
selection with normal Vim motion commands in Visual mode. You could go to
|
||||
Normal mode by pressing v and wield your motion commands there. Single key
|
||||
command to switch to Insert mode such as `c` or `s` from Visual mode or `i`,
|
||||
`a`, `I`, `A` in Normal mode should work without any issues.
|
||||
|
||||
At any time, you can press <Esc> to exit back to regular Vim.
|
||||
|
||||
Two additional keys are also mapped:
|
||||
|
||||
CTRL-P in Visual mode will remove the current virtual cursor and go back to
|
||||
the previous virtual cursor location. This is useful if you are trigger happy
|
||||
with Ctrl-n and accidentally went too far.
|
||||
|
||||
CTRL-X in Visual mode will remove the current virtual cursor and skip to the
|
||||
next virtual cursor location. This is useful if you don't want the current
|
||||
selection to be a candidate to operate on later.
|
||||
|
||||
You can also add multiple cursors using a regular expression. The command
|
||||
*MultipleCursorsFind* accepts a range and a pattern, and it will create a
|
||||
virtual cursor at the end of every match within the range. If no range is
|
||||
passed in, then it defaults to the entire buffer.
|
||||
|
||||
NOTE: If at any time you have lingering cursors on screen, you can press
|
||||
CTRL-N in Normal mode and it will remove all prior cursors before starting a
|
||||
new one.
|
||||
|
||||
==============================================================================
|
||||
3. Mappings *multiple-cursors-mappings*
|
||||
|
||||
*g:multi_cursor_use_default_mapping* (Default: 1)
|
||||
|
||||
Out of the box, only the single key CTRL-N is mapped in regular Vim's Normal
|
||||
mode and Visual mode to provide the functionality mentioned above. CTRL-N,
|
||||
CTRL-P, CTRL-X, and <ESC> are mapped in the special multicursor mode once
|
||||
you've added at least one virtual cursor to the buffer. If you don't like the
|
||||
plugin taking over your favorite key bindings, you can turn off the default
|
||||
with >
|
||||
|
||||
let g:multi_cursor_use_default_mapping=0
|
||||
<
|
||||
|
||||
*g:multi_cursor_next_key* (Default: '<C-n>')
|
||||
*g:multi_cursor_prev_key* (Default: '<C-p>')
|
||||
*g:multi_cursor_skip_key* (Default: '<C-x>')
|
||||
*g:multi_cursor_quit_key* (Default: '<Esc>')
|
||||
You can map the 'next', 'previous', 'skip', and 'exit' keys like the
|
||||
following: >
|
||||
|
||||
" Default mapping
|
||||
let g:multi_cursor_next_key='<C-n>'
|
||||
let g:multi_cursor_prev_key='<C-p>'
|
||||
let g:multi_cursor_skip_key='<C-x>'
|
||||
let g:multi_cursor_quit_key='<Esc>'
|
||||
<
|
||||
|
||||
*g:multi_cursor_start_key* (Default: 'g:multi_cursor_next_key')
|
||||
By default, the same key is used to enter multicursor mode as to select the
|
||||
next cursor location. If you want to use a different key to start multicursor
|
||||
mode than for selecting the next location, do like the following: >
|
||||
|
||||
" Map start key separately from next key
|
||||
let g:multi_cursor_start_key='<F6>'
|
||||
<
|
||||
|
||||
IMPORTANT: Please note that currently only single keystroes and special
|
||||
keys can be mapped. This contraint is also the reason why multikey commands
|
||||
such as `ciw` do not work and cause unexpected behavior in Normal mode. This
|
||||
means that a mapping like `<Leader>n` will NOT work correctly. For a list of
|
||||
special keys that are supported, see |key-notation|
|
||||
|
||||
NOTE: Please make sure to always map something to |g:multi_cursor_quit_key|,
|
||||
otherwise you'll have a tough time quitting from multicursor mode.
|
||||
|
||||
NOTE: Prior to version 1.3, the recommended way to map the keys is using the
|
||||
expressoin quote syntax in Vim, using something like `"\<C-n>"` or `"\<Esc>"`
|
||||
(see h: expr-quote). After 1.3, the recommended way is to use a raw string
|
||||
like above. If your key mappings don't appear to work, give the new syntax a
|
||||
try.
|
||||
|
||||
==============================================================================
|
||||
4. Global Options *multiple-cursors-global-options*
|
||||
|
||||
Currently there're two additional global settings one can tweak:
|
||||
|
||||
*g:multi_cursor_exit_from_visual_mode* (Defaut: 1)
|
||||
|
||||
If set to 0, then pressing |g:multi_cursor_quit_key| in Visual mode will not
|
||||
quit and delete all existing cursors. This is useful if you want to press
|
||||
Escape and go back to Normal mode, and still be able to operate on all the
|
||||
cursors.
|
||||
|
||||
*g:multi_cursor_exit_from_insert_mode* (Default: 1)
|
||||
|
||||
If set to 0, then pressing |g:multi_cursor_quit_key| in Insert mode will not
|
||||
quit and delete all existing cursors. This is useful if you want to press
|
||||
Escape and go back to Normal mode, and still be able to operate on all the
|
||||
cursors.
|
||||
|
||||
The plugin uses the highlight group `multiple_cursors_cursor` and
|
||||
`multiple_cursors_visual` to highlight the virtual cursors and their visual
|
||||
selections respectively. You can customize them by putting something similar
|
||||
like the following in your vimrc: >
|
||||
|
||||
" Default highlighting (see help :highlight and help :highlight-link)
|
||||
highlight multiple_cursors_cursor term=reverse cterm=reverse gui=reverse
|
||||
highlight link multiple_cursors_visual Visual
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
5. Issues *multiple-cursors-issues*
|
||||
|
||||
- Multi key commands like ciw do not work at the moment
|
||||
- All user input typed before Vim is able to fan out the last operation to all
|
||||
cursors is lost. This is a implementation decision to keep the input
|
||||
perfectly synced in all locations, at the cost of potentially losing user
|
||||
input.
|
||||
- Select mode is not implemented
|
||||
|
||||
==============================================================================
|
||||
6. Contributing *multiple-cursors-contributing*
|
||||
|
||||
The project is hosted on Github. Patches, feature requests and suggestions are
|
||||
always welcome!
|
||||
|
||||
Find the latest version of the plugin here:
|
||||
http://github.com/terryma/vim-multiple-cursors
|
||||
|
||||
==============================================================================
|
||||
7. License *multiple-cursors-license*
|
||||
|
||||
The project is licensed under the MIT license [7]. Copyrigth 2013 Terry Ma
|
||||
|
||||
==============================================================================
|
||||
8. Credit *multiple-cursors-credit*
|
||||
|
||||
The plugin is obviously inspired by Sublime Text's awesome multiple selection
|
||||
[6] feature. Some inspiration was also taken from Emac's multiple cursors [8]
|
||||
implementation.
|
||||
|
||||
==============================================================================
|
||||
9. References *multiple-cursors-references*
|
||||
|
||||
[1] https://github.com/paradigm/vim-multicursor
|
||||
[2] https://github.com/felixr/vim-multiedit
|
||||
[3] https://github.com/hlissner/vim-multiedit
|
||||
[4] https://github.com/adinapoli/vim-markmultiple
|
||||
[5] https://github.com/AndrewRadev/multichange.vim
|
||||
[6] http://www.sublimetext.com/docs/2/multiple_selection_with_the_keyboard.html
|
||||
[7] http://opensource.org/licenses/MIT
|
||||
[8] https://github.com/magnars/multiple-cursors.el
|
||||
|
||||
vim:tw=78:sw=4:ft=help:norl:
|
@ -1,66 +0,0 @@
|
||||
"===============================================================================
|
||||
" File: multiple_cursors.vim
|
||||
" Author: Terry Ma
|
||||
" Description: Emulate Sublime Text's multi selection feature
|
||||
" Potential Features:
|
||||
" - Create a blinking cursor effect? Good place to do it would be instead of
|
||||
" waiting for user input, cycle through the highlight
|
||||
" - Integrate with the status line? Maybe show a special multicursor mode?
|
||||
" - Support mouse? Ctrl/Cmd click to set cursor?
|
||||
"===============================================================================
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
function! s:init_settings(settings)
|
||||
for [key, value] in items(a:settings)
|
||||
let sub = ''
|
||||
if type(value) == 0
|
||||
let sub = '%d'
|
||||
elseif type(value) == 1
|
||||
let sub = '"%s"'
|
||||
endif
|
||||
let fmt = printf("let g:multi_cursor_%%s=get(g:, 'multi_cursor_%%s', %s)",
|
||||
\ sub)
|
||||
exec printf(fmt, key, key, value)
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
" Settings
|
||||
let s:settings = {
|
||||
\ 'exit_from_visual_mode': 1,
|
||||
\ 'exit_from_insert_mode': 1,
|
||||
\ 'use_default_mapping': 1,
|
||||
\ 'debug_latency': 0,
|
||||
\ }
|
||||
|
||||
let s:settings_if_default = {
|
||||
\ 'quit_key': '<Esc>',
|
||||
\ 'next_key': '<C-n>',
|
||||
\ 'prev_key': '<C-p>',
|
||||
\ 'skip_key': '<C-x>',
|
||||
\ }
|
||||
|
||||
call s:init_settings(s:settings)
|
||||
|
||||
if g:multi_cursor_use_default_mapping
|
||||
call s:init_settings(s:settings_if_default)
|
||||
endif
|
||||
|
||||
if !exists('g:multi_cursor_start_key') && exists('g:multi_cursor_next_key')
|
||||
let g:multi_cursor_start_key = g:multi_cursor_next_key
|
||||
endif
|
||||
|
||||
" External mappings
|
||||
if exists('g:multi_cursor_start_key')
|
||||
exec 'nnoremap <silent> '.g:multi_cursor_start_key.
|
||||
\' :call multiple_cursors#new("n")<CR>'
|
||||
exec 'xnoremap <silent> '.g:multi_cursor_start_key.
|
||||
\' :<C-u>call multiple_cursors#new("v")<CR>'
|
||||
endif
|
||||
|
||||
" Commands
|
||||
command! -nargs=1 -range=% MultipleCursorsFind
|
||||
\ call multiple_cursors#find(<line1>, <line2>, <q-args>)
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
@ -1,141 +0,0 @@
|
||||
require 'vimrunner'
|
||||
require 'vimrunner/rspec'
|
||||
|
||||
Vimrunner::RSpec.configure do |config|
|
||||
|
||||
# Use a single Vim instance for the test suite. Set to false to use an
|
||||
# instance per test (slower, but can be easier to manage).
|
||||
config.reuse_server = false
|
||||
|
||||
# Decide how to start a Vim instance. In this block, an instance should be
|
||||
# spawned and set up with anything project-specific.
|
||||
config.start_vim do
|
||||
# vim = Vimrunner.start
|
||||
# vim = Vimrunner::Server.new("/usr/local/bin/vim").start
|
||||
|
||||
# Or, start a GUI instance:
|
||||
vim = Vimrunner.start_gvim
|
||||
|
||||
# Setup your plugin in the Vim instance
|
||||
plugin_path = File.expand_path('../..', __FILE__)
|
||||
vim.add_plugin(plugin_path, 'plugin/multiple_cursors.vim')
|
||||
|
||||
# The returned value is the Client available in the tests.
|
||||
vim
|
||||
end
|
||||
end
|
||||
|
||||
def set_file_content(string)
|
||||
string = normalize_string_indent(string)
|
||||
File.open(filename, 'w'){ |f| f.write(string) }
|
||||
vim.edit filename
|
||||
end
|
||||
|
||||
def get_file_content()
|
||||
vim.write
|
||||
IO.read(filename).strip
|
||||
end
|
||||
|
||||
def before(string)
|
||||
set_file_content(string)
|
||||
end
|
||||
|
||||
def after(string)
|
||||
get_file_content().should eq normalize_string_indent(string)
|
||||
type ":q<CR>"
|
||||
end
|
||||
|
||||
def type(string)
|
||||
string.scan(/<.*?>|./).each do |key|
|
||||
if /<.*>/.match(key)
|
||||
vim.feedkeys "\\#{key}"
|
||||
else
|
||||
vim.feedkeys key
|
||||
end
|
||||
end
|
||||
sleep 0.2
|
||||
end
|
||||
|
||||
describe "Multiple Cursors" do
|
||||
let(:filename) { 'test.txt' }
|
||||
|
||||
specify "#benchmark" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
# type ':profile start /tmp/test.result<CR>'
|
||||
# type ':profile! file *multiple_cursors.vim<CR>'
|
||||
type ':let g:multi_cursor_debug_latency=1<CR>'
|
||||
|
||||
type 'VG<C-n>Vchellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello<Esc>'
|
||||
|
||||
type ':echo multiple_cursors#get_latency_debug_file()<CR>'
|
||||
sleep 3
|
||||
latency_file = vim.command 'echo multiple_cursors#get_latency_debug_file()'
|
||||
puts 'latency file = ' + latency_file
|
||||
|
||||
after <<-EOF
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
hellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohellohello
|
||||
EOF
|
||||
end
|
||||
|
||||
end
|
@ -1,288 +0,0 @@
|
||||
require 'spec_helper'
|
||||
|
||||
def set_file_content(string)
|
||||
string = normalize_string_indent(string)
|
||||
File.open(filename, 'w'){ |f| f.write(string) }
|
||||
vim.edit filename
|
||||
end
|
||||
|
||||
def get_file_content()
|
||||
vim.write
|
||||
IO.read(filename).strip
|
||||
end
|
||||
|
||||
def before(string)
|
||||
set_file_content(string)
|
||||
end
|
||||
|
||||
def after(string)
|
||||
get_file_content().should eq normalize_string_indent(string)
|
||||
end
|
||||
|
||||
def type(string)
|
||||
string.scan(/<.*?>|./).each do |key|
|
||||
if /<.*>/.match(key)
|
||||
vim.feedkeys "\\#{key}"
|
||||
else
|
||||
vim.feedkeys key
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "Multiple Cursors" do
|
||||
let(:filename) { 'test.txt' }
|
||||
|
||||
specify "#multiline replacement" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n><C-n>cworld<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
world
|
||||
world
|
||||
world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#single line replacement" do
|
||||
before <<-EOF
|
||||
hello hello hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n><C-n>cworld<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
world world world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#mixed line replacement" do
|
||||
before <<-EOF
|
||||
hello hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n><C-n>cworld<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
world world
|
||||
world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#new line in insert mode" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n>chello<CR>world<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
hello
|
||||
world
|
||||
hello
|
||||
world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#new line in insert mode middle of line" do
|
||||
before <<-EOF
|
||||
hello world
|
||||
hello world
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n>vlxi<cr><Esc>'
|
||||
|
||||
after <<-EOF
|
||||
hello
|
||||
world
|
||||
hello
|
||||
world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#normal mode 'o'" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n>voworld<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
hello
|
||||
world
|
||||
hello
|
||||
world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#normal mode 'O'" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n>vOworld<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
world
|
||||
hello
|
||||
world
|
||||
hello
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#find command basic" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
vim.normal ':MultipleCursorsFind hello<CR>'
|
||||
type 'cworld<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
world
|
||||
world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#visual line mode replacement" do
|
||||
before <<-EOF
|
||||
hello world
|
||||
hello world
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n>Vchi!<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
hi!
|
||||
hi!
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#skip key" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n><C-x>cworld<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
world
|
||||
hello
|
||||
world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#prev key" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n><C-n><C-p>cworld<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
world
|
||||
world
|
||||
hello
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#normal mode 'I'" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n>vIworld <Esc>'
|
||||
|
||||
after <<-EOF
|
||||
world hello
|
||||
world hello
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#normal mode 'A'" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n>vA world<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
hello world
|
||||
hello world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#undo" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n>cworld<Esc>u'
|
||||
|
||||
after <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
end
|
||||
|
||||
# 'd' is an operator pending command, which are not supported at the moment.
|
||||
# This should result in a nop, but we should still remain in multicursor mode.
|
||||
specify "#normal mode 'd'" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type '<C-n><C-n>vdx<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
hell
|
||||
hell
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#multiline visual mode" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type 'Vj<C-n>A world<Esc>'
|
||||
|
||||
after <<-EOF
|
||||
hello world
|
||||
hello world
|
||||
EOF
|
||||
end
|
||||
|
||||
specify "#set paste mode" do
|
||||
before <<-EOF
|
||||
hello
|
||||
hello
|
||||
EOF
|
||||
|
||||
type ':set paste<CR><C-n><C-n>cworld<Esc>:set nopaste<CR>'
|
||||
|
||||
after <<-EOF
|
||||
world
|
||||
world
|
||||
EOF
|
||||
end
|
||||
|
||||
end
|
@ -1,25 +0,0 @@
|
||||
require 'vimrunner'
|
||||
require 'vimrunner/rspec'
|
||||
|
||||
Vimrunner::RSpec.configure do |config|
|
||||
|
||||
# Use a single Vim instance for the test suite. Set to false to use an
|
||||
# instance per test (slower, but can be easier to manage).
|
||||
config.reuse_server = true
|
||||
|
||||
# Decide how to start a Vim instance. In this block, an instance should be
|
||||
# spawned and set up with anything project-specific.
|
||||
config.start_vim do
|
||||
# vim = Vimrunner.start
|
||||
|
||||
# Or, start a GUI instance:
|
||||
vim = Vimrunner.start_gvim
|
||||
|
||||
# Setup your plugin in the Vim instance
|
||||
plugin_path = File.expand_path('../..', __FILE__)
|
||||
vim.add_plugin(plugin_path, 'plugin/multiple_cursors.vim')
|
||||
|
||||
# The returned value is the Client available in the tests.
|
||||
vim
|
||||
end
|
||||
end
|
@ -1,11 +0,0 @@
|
||||
This is a version of Henning Hasemann's vim theme (http://www.vim.org/scripts/script.php?script_id=1492) packaged to work with Tim Pope's pathogen plugin (http://www.vim.org/scripts/script.php?script_id=2332).
|
||||
|
||||
To use it (assuming you're using pathogen):
|
||||
|
||||
- go to your bundle directory (.vim/bundle or .vimbundles) and clone the repo:
|
||||
|
||||
git clone git://github.com/therubymug/vim-pyte.git
|
||||
|
||||
- edit your .vimrc and add:
|
||||
|
||||
:colorscheme pyte
|
@ -1,92 +0,0 @@
|
||||
|
||||
set background=light
|
||||
|
||||
hi clear
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
let colors_name = "pyte"
|
||||
|
||||
if version >= 700
|
||||
hi CursorLine guibg=#f6f6f6
|
||||
hi CursorColumn guibg=#eaeaea
|
||||
hi MatchParen guifg=white guibg=#80a090 gui=bold
|
||||
|
||||
"Tabpages
|
||||
hi TabLine guifg=black guibg=#b0b8c0 gui=italic
|
||||
hi TabLineFill guifg=#9098a0
|
||||
hi TabLineSel guifg=black guibg=#f0f0f0 gui=italic,bold
|
||||
|
||||
"P-Menu (auto-completion)
|
||||
hi Pmenu guifg=white guibg=#808080
|
||||
"PmenuSel
|
||||
"PmenuSbar
|
||||
"PmenuThumb
|
||||
endif
|
||||
"
|
||||
" Html-Titles
|
||||
hi Title guifg=#202020 gui=bold
|
||||
hi Underlined guifg=#202020 gui=underline
|
||||
|
||||
|
||||
hi Cursor guifg=black guibg=#b0b4b8
|
||||
hi lCursor guifg=black guibg=white
|
||||
hi LineNr guifg=#ffffff guibg=#c0d0e0
|
||||
|
||||
hi Normal guifg=#202020 guibg=#f0f0f0
|
||||
|
||||
hi StatusLine guifg=white guibg=#8090a0 gui=bold,italic
|
||||
hi StatusLineNC guifg=#506070 guibg=#a0b0c0 gui=italic
|
||||
hi VertSplit guifg=#a0b0c0 guibg=#a0b0c0 gui=NONE
|
||||
|
||||
hi Folded guifg=#708090 guibg=#c0d0e0
|
||||
|
||||
hi NonText guifg=#c0c0c0 guibg=#e0e0e0
|
||||
" Kommentare
|
||||
hi Comment guifg=#a0b0c0 gui=italic
|
||||
|
||||
" Konstanten
|
||||
hi Constant guifg=#a07040
|
||||
hi String guifg=#4070a0
|
||||
hi Number guifg=#40a070
|
||||
hi Float guifg=#70a040
|
||||
"hi Statement guifg=#0070e0 gui=NONE
|
||||
" Python: def and so on, html: tag-names
|
||||
hi Statement guifg=#007020 gui=bold
|
||||
|
||||
|
||||
" HTML: arguments
|
||||
hi Type guifg=#e5a00d gui=italic
|
||||
" Python: Standard exceptions, True&False
|
||||
hi Structure guifg=#007020 gui=italic
|
||||
hi Function guifg=#06287e gui=italic
|
||||
|
||||
hi Identifier guifg=#5b3674 gui=italic
|
||||
|
||||
hi Repeat guifg=#7fbf58 gui=bold
|
||||
hi Conditional guifg=#4c8f2f gui=bold
|
||||
|
||||
" Cheetah: #-Symbol, function-names
|
||||
hi PreProc guifg=#1060a0 gui=NONE
|
||||
" Cheetah: def, for and so on, Python: Decorators
|
||||
hi Define guifg=#1060a0 gui=bold
|
||||
|
||||
hi Error guifg=red guibg=white gui=bold,underline
|
||||
hi Todo guifg=#a0b0c0 guibg=NONE gui=italic,bold,underline
|
||||
|
||||
" Python: %(...)s - constructs, encoding
|
||||
hi Special guifg=#70a0d0 gui=italic
|
||||
|
||||
hi Operator guifg=#408010
|
||||
|
||||
" color of <TAB>s etc...
|
||||
hi SpecialKey guifg=#d8a080 guibg=#e8e8e8 gui=italic
|
||||
|
||||
" Diff
|
||||
hi DiffChange guifg=NONE guibg=#e0e0e0 gui=italic,bold
|
||||
hi DiffText guifg=NONE guibg=#f0c8c8 gui=italic,bold
|
||||
hi DiffAdd guifg=NONE guibg=#c0e0d0 gui=italic,bold
|
||||
hi DiffDelete guifg=NONE guibg=#f0e0b0 gui=italic,bold
|
||||
|
||||
|
Reference in New Issue
Block a user