Permalink
Browse files

Converted nested repos to submodules.

  • Loading branch information...
1 parent 5ffb571 commit fd299de98f087c2a587a21f6c70a776b5def9eaa @jacobstr committed Feb 23, 2013
View
63 .gitmodules
@@ -0,0 +1,63 @@
+[submodule "https:/github.com/tpope/vim-abolish.git"]
+ path = https:/github.com/tpope/vim-abolish.git
+ url = ./bundle/vim-abolish
+[submodule "https:/github.com/rson/vim-bufstat.git"]
+ path = https:/github.com/rson/vim-bufstat.git
+ url = ./bundle/vim-bufstat
+[submodule "bundle/ack.vim"]
+ path = bundle/ack.vim
+ url = git@github.com:mileszs/ack.vim.git
+[submodule "bundle/ctrlp.vim"]
+ path = bundle/ctrlp.vim
+ url = git@github.com:kien/ctrlp.vim.git
+[submodule "bundle/html5.vim"]
+ path = bundle/html5.vim
+ url = git://github.com/othree/html5.vim.git
+[submodule "bundle/nerdcommenter"]
+ path = bundle/nerdcommenter
+ url = https://github.com/scrooloose/nerdcommenter.git
+[submodule "bundle/nerdtree"]
+ path = bundle/nerdtree
+ url = https://github.com/scrooloose/nerdtree.git
+[submodule "bundle/phpcomplete.vim"]
+ path = bundle/phpcomplete.vim
+ url = https://github.com/shawncplus/phpcomplete.vim.git
+[submodule "bundle/rainbow_parentheses.vim"]
+ path = bundle/rainbow_parentheses.vim
+ url = https://github.com/kien/rainbow_parentheses.vim.git
+[submodule "bundle/snipmate"]
+ path = bundle/snipmate
+ url = https://github.com/msanders/snipmate.vim.git
+[submodule "bundle/vim-bufsurf"]
+ path = bundle/vim-bufsurf
+ url = https://github.com/ton/vim-bufsurf.git
+[submodule "bundle/vim-coffee-script"]
+ path = bundle/vim-coffee-script
+ url = https://github.com/kchmck/vim-coffee-script.git
+[submodule "bundle/vim-easymotion"]
+ path = bundle/vim-easymotion
+ url = https://github.com/Lokaltog/vim-easymotion.git
+[submodule "bundle/vim-fugitive"]
+ path = bundle/vim-fugitive
+ url = https://github.com/tpope/vim-fugitive.git
+[submodule "bundle/vim-jade"]
+ path = bundle/vim-jade
+ url = git://github.com/digitaltoad/vim-jade.git
+[submodule "bundle/vim-latex"]
+ path = bundle/vim-latex
+ url = git://vim-latex.git.sourceforge.net/gitroot/vim-latex/vim-latex
+[submodule "bundle/vim-nerdtree-tabs"]
+ path = bundle/vim-nerdtree-tabs
+ url = https://github.com/jistr/vim-nerdtree-tabs.git
+[submodule "bundle/vim-powerline"]
+ path = bundle/vim-powerline
+ url = https://github.com/Lokaltog/vim-powerline.git
+[submodule "bundle/vim-repeat"]
+ path = bundle/vim-repeat
+ url = https://github.com/tpope/vim-repeat.git
+[submodule "bundle/vim-surround"]
+ path = bundle/vim-surround
+ url = https://github.com/tpope/vim-surround.git
+[submodule "bundle/vim-unimpaired"]
+ path = bundle/vim-unimpaired
+ url = https://github.com/tpope/vim-unimpaired.git
1 bundle/ack.vim
@@ -0,0 +1 @@
+Subproject commit 34d0b2fbc182b31d926632d170bc07d6a6fc3f9b
View
1 bundle/ack.vim/.gitignore
@@ -1 +0,0 @@
-tags
View
109 bundle/ack.vim/README.md
@@ -1,109 +0,0 @@
-# ack.vim #
-
-This plugin is a front for the Perl module
-[App::Ack](http://search.cpan.org/~petdance/ack/ack). Ack can be used as a
-replacement for 99% of the uses of _grep_. This plugin will allow you to run
-ack from vim, and shows the results in a split window.
-
-The *Official Version* of this plugin is available at [vim.org](http://www.vim.org/scripts/script.php?script_id=2572).
-
-## Installation ##
-
-
-### Ack
-
-You have to install [ack](http://betterthangrep.com/), of course.
-
-Install on Debian / Ubuntu with:
-
- sudo apt-get install ack-grep
-
-Install on Fedora with:
-
- su -l -c 'yum install ack'
-Install on Gentoo with:
-
- sudo emerge ack
-
-Install with Homebrew:
-
- brew install ack
-
-Install with MacPorts:
-
- sudo port install p5-app-ack
-
-Install with Gentoo Prefix:
-
- emerge ack
-
-Install on FreeBSD with:
-
- cd /usr/ports/textproc/p5-ack/ && make install clean
-
-You can specify a custom ack name and path in your .vimrc like so:
-
- let g:ackprg="<custom-ack-path-goes-here> -H --nocolor --nogroup --column"
-
-Otherwise, you are on your own.
-
-### The Plugin
-
-If you have [Rake](http://rake.rubyforge.org/) installed, you can just run: `rake install`.
-
-Otherwise, the file ack.vim goes in ~/.vim/plugin, and the ack.txt file belongs in ~/.vim/doc. Be sure to run
-
- :helptags ~/.vim/doc
-
-afterwards.
-
-
-## Usage ##
-
- :Ack [options] {pattern} [{directory}]
-
-Search recursively in {directory} (which defaults to the current directory) for the {pattern}.
-
-Files containing the search term will be listed in the split window, along with
-the line number of the occurrence, once for each occurrence. [Enter] on a line
-in this window will open the file, and place the cursor on the matching line.
-
-Just like where you use :grep, :grepadd, :lgrep, and :lgrepadd, you can use `:Ack`, `:AckAdd`, `:LAck`, and `:LAckAdd` respectively. (See `doc/ack.txt`, or install and `:h Ack` for more information.)
-
-**From the [ack docs](http://betterthangrep.com/)** (my favorite feature):
-
- --type=TYPE, --type=noTYPE
-
- Specify the types of files to include or exclude from a search. TYPE is a filetype, like perl or xml. --type=perl can also be specified as --perl, and --type=noperl can be done as --noperl.
-
- If a file is of both type "foo" and "bar", specifying --foo and --nobar will exclude the file, because an exclusion takes precedence over an inclusion.
-
- Type specifications can be repeated and are ORed together.
-
- See ack --help=types for a list of valid types.
-
-### Gotchas ###
-
-Some characters have special meaning, and need to be escaped your search pattern. For instance, '#'. You have to escape it like this `:Ack '\\\#define foo'` to search for `#define foo`. (From [blueyed in issue #5](https://github.com/mileszs/ack.vim/issues/5).)
-
-### Keyboard Shortcuts ###
-
-In the quickfix window, you can use:
-
- o to open (same as enter)
- go to preview file (open but maintain focus on ack.vim results)
- t to open in new tab
- T to open in new tab silently
- h to open in horizontal split
- H to open in horizontal split silently
- v to open in vertical split
- gv to open in vertical split silently
- q to close the quickfix window
-
-This Vim plugin is derived (and by derived, I mean copied, essentially) from
-Antoine Imbert's blog post [Ack and Vim
-Integration](http://blog.ant0ine.com/typepad/2007/03/ack-and-vim-integration.html) (in
-particular, the function at the bottom of the post). I added a help file that
-provides just enough reference to get you going. I also highly recommend you
-check out the docs for the Perl script 'ack', for obvious reasons: [ack -
-grep-like text finder](http://betterthangrep.com/).
View
23 bundle/ack.vim/Rakefile
@@ -1,23 +0,0 @@
-# Added by Josh Nichols, a.k.a. technicalpickles
-require 'rake'
-
-files = ['doc/ack.txt', 'plugin/ack.vim']
-
-desc 'Install plugin and documentation'
-task :install do
- vimfiles = if ENV['VIMFILES']
- ENV['VIMFILES']
- elsif RUBY_PLATFORM =~ /(win|w)32$/
- File.expand_path("~/vimfiles")
- else
- File.expand_path("~/.vim")
- end
- files.each do |file|
- target_file = File.join(vimfiles, file)
- FileUtils.mkdir_p File.dirname(target_file)
- FileUtils.cp file, target_file
-
- puts " Copied #{file} to #{target_file}"
- end
-
-end
View
84 bundle/ack.vim/doc/ack.txt
@@ -1,84 +0,0 @@
-*ack.txt* Plugin that integrates ack with Vim
-
-==============================================================================
-Author: Antoine Imbert <antoine.imbert+ackvim@gmail.com> *ack-author*
-License: Same terms as Vim itself (see |license|)
-
-==============================================================================
-INTRODUCTION *ack*
-
-This plugin is a front for the Perl module App::Ack. Ack can be used as a
-replacement for grep. This plugin will allow you to run ack from vim, and
-shows the results in a split window.
-
-:Ack[!] [options] {pattern} [{directory}] *:Ack*
-
- Search recursively in {directory} (which defaults to the current
- directory) for the {pattern}. Behaves just like the |:grep| command, but
- will open the |Quickfix| window for you. If [!] is not given the first
- error is jumped to.
-
-:AckAdd [options] {pattern} [{directory}] *:AckAdd*
-
- Just like |:Ack|, but instead of making a new list, the matches are
- appended to the current |quickfix| list.
-
-:AckFromSearch [{directory}] *:AckFromSearch*
-
- Just like |:Ack| but the pattern is from previous search.
-
-:LAck [options] {pattern} [{directory}] *:LAck*
-
- Just like |:Ack| but instead of the |quickfix| list, matches are placed in
- the current |location-list|.
-
-:LAckAdd [options] {pattern} [{directory}] *:LAckAdd*
-
- Just like |:AckAdd| but instead of the |quickfix| list, matches are added
- to the current |location-list|
-
-:AckFile [options] {pattern} [{directory}] *:AckFile*
-
- Search recursively in {directory} (which defaults to the current
- directory) for filenames matching the {pattern}. Behaves just like the
- |:grep| command, but will open the |Quickfix| window for you.
-
-:AckHelp[!] [options] {pattern} *:AckHelp*
-
- Search vim documentation files for the {pattern}. Behaves just like the
- |:Ack| command, but searches only vim documentation .txt files
-
-:LAckHelp [options] {pattern} *:LAckHelp*
-
- Just like |:AckHelp| but instead of the |quickfix| list, matches are placed
- in the current |location-list|.
-
-Files containing the search term will be listed in the split window, along
-with the line number of the occurrence, once for each occurrence. <Enter> on
-a line in this window will open the file, and place the cursor on the matching
-line.
-
-See http://betterthangrep.com/ for more information.
-
-==============================================================================
-MAPPINGS *ack-mappings*
-
-The following keyboard shortcuts are available in the quickfix window:
-
-o open file (same as enter).
-
-go preview file (open but maintain focus on ack.vim results).
-
-t open in a new tab.
-
-T open in new tab silently.
-
-h open in horizontal split.
-
-H open in horizontal split silently.
-
-v open in vertical split.
-
-gv open in vertical split silently.
-
-q close the quickfix window.
View
118 bundle/ack.vim/plugin/ack.vim
@@ -1,118 +0,0 @@
-" NOTE: You must, of course, install the ack script
-" in your path.
-" On Debian / Ubuntu:
-" sudo apt-get install ack-grep
-" With MacPorts:
-" sudo port install p5-app-ack
-
-" Location of the ack utility
-if !exists("g:ackprg")
- let s:ackcommand = executable('ack-grep') ? 'ack-grep' : 'ack'
- let g:ackprg=s:ackcommand." -H --nocolor --nogroup --column"
-endif
-
-if !exists("g:ack_apply_qmappings")
- let g:ack_apply_qmappings = !exists("g:ack_qhandler")
-endif
-
-if !exists("g:ack_apply_lmappings")
- let g:ack_apply_lmappings = !exists("g:ack_lhandler")
-endif
-
-if !exists("g:ack_qhandler")
- let g:ack_qhandler="botright copen"
-endif
-
-if !exists("g:ack_lhandler")
- let g:ack_lhandler="botright lopen"
-endif
-
-function! s:Ack(cmd, args)
- redraw
- echo "Searching ..."
-
- " If no pattern is provided, search for the word under the cursor
- if empty(a:args)
- let l:grepargs = expand("<cword>")
- else
- let l:grepargs = a:args . join(a:000, ' ')
- end
-
- " Format, used to manage column jump
- if a:cmd =~# '-g$'
- let g:ackformat="%f"
- else
- let g:ackformat="%f:%l:%c:%m"
- end
-
- let grepprg_bak=&grepprg
- let grepformat_bak=&grepformat
- try
- let &grepprg=g:ackprg
- let &grepformat=g:ackformat
- silent execute a:cmd . " " . escape(l:grepargs, '|')
- finally
- let &grepprg=grepprg_bak
- let &grepformat=grepformat_bak
- endtry
-
- if a:cmd =~# '^l'
- exe g:ack_lhandler
- let l:apply_mappings = g:ack_apply_lmappings
- else
- exe g:ack_qhandler
- let l:apply_mappings = g:ack_apply_qmappings
- endif
-
- if l:apply_mappings
- exec "nnoremap <silent> <buffer> q :ccl<CR>"
- exec "nnoremap <silent> <buffer> t <C-W><CR><C-W>T"
- exec "nnoremap <silent> <buffer> T <C-W><CR><C-W>TgT<C-W><C-W>"
- exec "nnoremap <silent> <buffer> o <CR>"
- exec "nnoremap <silent> <buffer> go <CR><C-W><C-W>"
- exec "nnoremap <silent> <buffer> h <C-W><CR><C-W>K"
- exec "nnoremap <silent> <buffer> H <C-W><CR><C-W>K<C-W>b"
- exec "nnoremap <silent> <buffer> v <C-W><CR><C-W>H<C-W>b<C-W>J<C-W>t"
- exec "nnoremap <silent> <buffer> gv <C-W><CR><C-W>H<C-W>b<C-W>J"
- endif
-
- " If highlighting is on, highlight the search keyword.
- if exists("g:ackhighlight")
- let @/=a:args
- set hlsearch
- end
-
- redraw!
-endfunction
-
-function! s:AckFromSearch(cmd, args)
- let search = getreg('/')
- " translate vim regular expression to perl regular expression.
- let search = substitute(search,'\(\\<\|\\>\)','\\b','g')
- call s:Ack(a:cmd, '"' . search .'" '. a:args)
-endfunction
-
-function! s:GetDocLocations()
- let dp = ''
- for p in split(&rtp,',')
- let p = p.'/doc/'
- if isdirectory(p)
- let dp = p.'*.txt '.dp
- endif
- endfor
- return dp
-endfunction
-
-function! s:AckHelp(cmd,args)
- let args = a:args.' '.s:GetDocLocations()
- call s:Ack(a:cmd,args)
-endfunction
-
-command! -bang -nargs=* -complete=file Ack call s:Ack('grep<bang>',<q-args>)
-command! -bang -nargs=* -complete=file AckAdd call s:Ack('grepadd<bang>', <q-args>)
-command! -bang -nargs=* -complete=file AckFromSearch call s:AckFromSearch('grep<bang>', <q-args>)
-command! -bang -nargs=* -complete=file LAck call s:Ack('lgrep<bang>', <q-args>)
-command! -bang -nargs=* -complete=file LAckAdd call s:Ack('lgrepadd<bang>', <q-args>)
-command! -bang -nargs=* -complete=file AckFile call s:Ack('grep<bang> -g', <q-args>)
-command! -bang -nargs=* -complete=help AckHelp call s:AckHelp('grep<bang>',<q-args>)
-command! -bang -nargs=* -complete=help LAckHelp call s:AckHelp('lgrep<bang>',<q-args>)
2 bundle/nerdtree
@@ -1 +1 @@
-Subproject commit 3e44d4ea5c3d8cfa192e66c77afd05629ddc92e6
+Subproject commit 40d05ace57fb51cc2c2b2e9eb81c4832ed291630
1 bundle/vim-abolish
@@ -1 +0,0 @@
-Subproject commit f8829a5f3e5a2a9c5e8a17f322aa9296a0cdb622
1 bundle/vim-bufstat
@@ -1 +0,0 @@
-Subproject commit afa9ff578cab4bd5d6bd8446ee6b7e25bad5e1d0
1 bundle/vim-easymotion
@@ -0,0 +1 @@
+Subproject commit 667a668e114e9ec0e5d4cbcb0962d835b23614c4
View
1 bundle/vim-easymotion/.gitignore
@@ -1 +0,0 @@
-doc/tags
View
52 bundle/vim-easymotion/README.md
@@ -1,52 +0,0 @@
-# Introduction
-
-EasyMotion provides a much simpler way to use some motions in vim. It
-takes the `<number>` out of `<number>w` or `<number>f{char}` by
-highlighting all possible choices and allowing you to press one key to
-jump directly to the target.
-
-When one of the available motions is triggered, all visible text
-preceding or following the cursor is faded, and motion targets are
-highlighted.
-
-EasyMotion is triggered by one of the provided mappings.
-
-# Important notes about the default bindings
-
-**The default leader has been changed to `<Leader><Leader>` to avoid
-conflicts with other plugins you may have installed.** This can easily be
-changed back to pre-1.3 behavior by rebinding the leader in your vimrc:
-
- let g:EasyMotion_leader_key = '<Leader>'
-
-All motions are now triggered with `<Leader><Leader>` by default, e.g.
-`<Leader><Leader>t`, `<Leader><Leader>gE`.
-
-## Usage example
-
-Type `<Leader><Leader>w` to trigger the word motion `w`. When the motion is
-triggered, the text is updated (no braces are actually added, the text
-is highlighted in red by default):
-
- <cursor>Lorem {a}psum {b}olor {c}it {d}met.
-
-Press `c` to jump to the beginning of the word "sit":
-
- Lorem ipsum dolor <cursor>sit amet.
-
-Similarly, if you're looking for an "o", you can use the `f` motion.
-Type `<Leader><Leader>fo`, and all "o" characters are highlighted:
-
- <cursor>L{a}rem ipsum d{b}l{c}r sit amet.
-
-Press `b` to jump to the second "o":
-
- Lorem ipsum d<cursor>olor sit amet.
-
-Jeffrey Way of Nettuts+ has also [written
-a tutorial](http://net.tutsplus.com/tutorials/other/vim-essential-plugin-easymotion/)
-about EasyMotion.
-
-## Animated demonstration
-
-![Animated demonstration](http://oi54.tinypic.com/2yysefm.jpg)
View
573 bundle/vim-easymotion/autoload/EasyMotion.vim
@@ -1,573 +0,0 @@
-" EasyMotion - Vim motions on speed!
-"
-" Author: Kim Silkebækken <kim.silkebaekken+vim@gmail.com>
-" Source repository: https://github.com/Lokaltog/vim-easymotion
-
-" Default configuration functions {{{
- function! EasyMotion#InitOptions(options) " {{{
- for [key, value] in items(a:options)
- if ! exists('g:EasyMotion_' . key)
- exec 'let g:EasyMotion_' . key . ' = ' . string(value)
- endif
- endfor
- endfunction " }}}
- function! EasyMotion#InitHL(group, colors) " {{{
- let group_default = a:group . 'Default'
-
- " Prepare highlighting variables
- let guihl = printf('guibg=%s guifg=%s gui=%s', a:colors.gui[0], a:colors.gui[1], a:colors.gui[2])
- if !exists('g:CSApprox_loaded')
- let ctermhl = &t_Co == 256
- \ ? printf('ctermbg=%s ctermfg=%s cterm=%s', a:colors.cterm256[0], a:colors.cterm256[1], a:colors.cterm256[2])
- \ : printf('ctermbg=%s ctermfg=%s cterm=%s', a:colors.cterm[0], a:colors.cterm[1], a:colors.cterm[2])
- else
- let ctermhl = ''
- endif
-
- " Create default highlighting group
- execute printf('hi default %s %s %s', group_default, guihl, ctermhl)
-
- " Check if the hl group exists
- if hlexists(a:group)
- redir => hlstatus | exec 'silent hi ' . a:group | redir END
-
- " Return if the group isn't cleared
- if hlstatus !~ 'cleared'
- return
- endif
- endif
-
- " No colors are defined for this group, link to defaults
- execute printf('hi default link %s %s', a:group, group_default)
- endfunction " }}}
- function! EasyMotion#InitMappings(motions) "{{{
- for motion in keys(a:motions)
- call EasyMotion#InitOptions({ 'mapping_' . motion : g:EasyMotion_leader_key . motion })
- endfor
-
- if g:EasyMotion_do_mapping
- for [motion, fn] in items(a:motions)
- if empty(g:EasyMotion_mapping_{motion})
- continue
- endif
-
- silent exec 'nnoremap <silent> ' . g:EasyMotion_mapping_{motion} . ' :call EasyMotion#' . fn.name . '(0, ' . fn.dir . ')<CR>'
- silent exec 'onoremap <silent> ' . g:EasyMotion_mapping_{motion} . ' :call EasyMotion#' . fn.name . '(0, ' . fn.dir . ')<CR>'
- silent exec 'vnoremap <silent> ' . g:EasyMotion_mapping_{motion} . ' :<C-U>call EasyMotion#' . fn.name . '(1, ' . fn.dir . ')<CR>'
- endfor
- endif
- endfunction "}}}
-" }}}
-" Motion functions {{{
- function! EasyMotion#F(visualmode, direction) " {{{
- let char = s:GetSearchChar(a:visualmode)
-
- if empty(char)
- return
- endif
-
- let re = '\C' . escape(char, '.$^~')
-
- call s:EasyMotion(re, a:direction, a:visualmode ? visualmode() : '', mode(1))
- endfunction " }}}
- function! EasyMotion#T(visualmode, direction) " {{{
- let char = s:GetSearchChar(a:visualmode)
-
- if empty(char)
- return
- endif
-
- if a:direction == 1
- let re = '\C' . escape(char, '.$^~') . '\zs.'
- else
- let re = '\C.' . escape(char, '.$^~')
- endif
-
- call s:EasyMotion(re, a:direction, a:visualmode ? visualmode() : '', mode(1))
- endfunction " }}}
- function! EasyMotion#WB(visualmode, direction) " {{{
- call s:EasyMotion('\(\<.\|^$\)', a:direction, a:visualmode ? visualmode() : '', '')
- endfunction " }}}
- function! EasyMotion#WBW(visualmode, direction) " {{{
- call s:EasyMotion('\(\(^\|\s\)\@<=\S\|^$\)', a:direction, a:visualmode ? visualmode() : '', '')
- endfunction " }}}
- function! EasyMotion#E(visualmode, direction) " {{{
- call s:EasyMotion('\(.\>\|^$\)', a:direction, a:visualmode ? visualmode() : '', mode(1))
- endfunction " }}}
- function! EasyMotion#EW(visualmode, direction) " {{{
- call s:EasyMotion('\(\S\(\s\|$\)\|^$\)', a:direction, a:visualmode ? visualmode() : '', mode(1))
- endfunction " }}}
- function! EasyMotion#JK(visualmode, direction) " {{{
- call s:EasyMotion('^\(\w\|\s*\zs\|$\)', a:direction, a:visualmode ? visualmode() : '', '')
- endfunction " }}}
- function! EasyMotion#Search(visualmode, direction) " {{{
- call s:EasyMotion(@/, a:direction, a:visualmode ? visualmode() : '', '')
- endfunction " }}}
-" }}}
-" Helper functions {{{
- function! s:Message(message) " {{{
- echo 'EasyMotion: ' . a:message
- endfunction " }}}
- function! s:Prompt(message) " {{{
- echohl Question
- echo a:message . ': '
- echohl None
- endfunction " }}}
- function! s:VarReset(var, ...) " {{{
- if ! exists('s:var_reset')
- let s:var_reset = {}
- endif
-
- let buf = bufname("")
-
- if a:0 == 0 && has_key(s:var_reset, a:var)
- " Reset var to original value
- call setbufvar(buf, a:var, s:var_reset[a:var])
- elseif a:0 == 1
- let new_value = a:0 == 1 ? a:1 : ''
-
- " Store original value
- let s:var_reset[a:var] = getbufvar(buf, a:var)
-
- " Set new var value
- call setbufvar(buf, a:var, new_value)
- endif
- endfunction " }}}
- function! s:SetLines(lines, key) " {{{
- try
- " Try to join changes with previous undo block
- undojoin
- catch
- endtry
-
- for [line_num, line] in a:lines
- call setline(line_num, line[a:key])
- endfor
- endfunction " }}}
- function! s:GetChar() " {{{
- let char = getchar()
-
- if char == 27
- " Escape key pressed
- redraw
-
- call s:Message('Cancelled')
-
- return ''
- endif
-
- return nr2char(char)
- endfunction " }}}
- function! s:GetSearchChar(visualmode) " {{{
- call s:Prompt('Search for character')
-
- let char = s:GetChar()
-
- " Check that we have an input char
- if empty(char)
- " Restore selection
- if ! empty(a:visualmode)
- silent exec 'normal! gv'
- endif
-
- return ''
- endif
-
- return char
- endfunction " }}}
-" }}}
-" Grouping algorithms {{{
- let s:grouping_algorithms = {
- \ 1: 'SCTree'
- \ , 2: 'Original'
- \ }
- " Single-key/closest target priority tree {{{
- " This algorithm tries to assign one-key jumps to all the targets closest to the cursor.
- " It works recursively and will work correctly with as few keys as two.
- function! s:GroupingAlgorithmSCTree(targets, keys)
- " Prepare variables for working
- let targets_len = len(a:targets)
- let keys_len = len(a:keys)
-
- let groups = {}
-
- let keys = reverse(copy(a:keys))
-
- " Semi-recursively count targets {{{
- " We need to know exactly how many child nodes (targets) this branch will have
- " in order to pass the correct amount of targets to the recursive function.
-
- " Prepare sorted target count list {{{
- " This is horrible, I know. But dicts aren't sorted in vim, so we need to
- " work around that. That is done by having one sorted list with key counts,
- " and a dict which connects the key with the keys_count list.
-
- let keys_count = []
- let keys_count_keys = {}
-
- let i = 0
- for key in keys
- call add(keys_count, 0)
-
- let keys_count_keys[key] = i
-
- let i += 1
- endfor
- " }}}
-
- let targets_left = targets_len
- let level = 0
- let i = 0
-
- while targets_left > 0
- " Calculate the amount of child nodes based on the current level
- let childs_len = (level == 0 ? 1 : (keys_len - 1) )
-
- for key in keys
- " Add child node count to the keys_count array
- let keys_count[keys_count_keys[key]] += childs_len
-
- " Subtract the child node count
- let targets_left -= childs_len
-
- if targets_left <= 0
- " Subtract the targets left if we added too many too
- " many child nodes to the key count
- let keys_count[keys_count_keys[key]] += targets_left
-
- break
- endif
-
- let i += 1
- endfor
-
- let level += 1
- endwhile
- " }}}
- " Create group tree {{{
- let i = 0
- let key = 0
-
- call reverse(keys_count)
-
- for key_count in keys_count
- if key_count > 1
- " We need to create a subgroup
- " Recurse one level deeper
- let groups[a:keys[key]] = s:GroupingAlgorithmSCTree(a:targets[i : i + key_count - 1], a:keys)
- elseif key_count == 1
- " Assign single target key
- let groups[a:keys[key]] = a:targets[i]
- else
- " No target
- continue
- endif
-
- let key += 1
- let i += key_count
- endfor
- " }}}
-
- " Finally!
- return groups
- endfunction
- " }}}
- " Original {{{
- function! s:GroupingAlgorithmOriginal(targets, keys)
- " Split targets into groups (1 level)
- let targets_len = len(a:targets)
- let keys_len = len(a:keys)
-
- let groups = {}
-
- let i = 0
- let root_group = 0
- try
- while root_group < targets_len
- let groups[a:keys[root_group]] = {}
-
- for key in a:keys
- let groups[a:keys[root_group]][key] = a:targets[i]
-
- let i += 1
- endfor
-
- let root_group += 1
- endwhile
- catch | endtry
-
- " Flatten the group array
- if len(groups) == 1
- let groups = groups[a:keys[0]]
- endif
-
- return groups
- endfunction
- " }}}
- " Coord/key dictionary creation {{{
- function! s:CreateCoordKeyDict(groups, ...)
- " Dict structure:
- " 1,2 : a
- " 2,3 : b
- let sort_list = []
- let coord_keys = {}
- let group_key = a:0 == 1 ? a:1 : ''
-
- for [key, item] in items(a:groups)
- let key = ( ! empty(group_key) ? group_key : key)
-
- if type(item) == 3
- " Destination coords
-
- " The key needs to be zero-padded in order to
- " sort correctly
- let dict_key = printf('%05d,%05d', item[0], item[1])
- let coord_keys[dict_key] = key
-
- " We need a sorting list to loop correctly in
- " PromptUser, dicts are unsorted
- call add(sort_list, dict_key)
- else
- " Item is a dict (has children)
- let coord_key_dict = s:CreateCoordKeyDict(item, key)
-
- " Make sure to extend both the sort list and the
- " coord key dict
- call extend(sort_list, coord_key_dict[0])
- call extend(coord_keys, coord_key_dict[1])
- endif
-
- unlet item
- endfor
-
- return [sort_list, coord_keys]
- endfunction
- " }}}
-" }}}
-" Core functions {{{
- function! s:PromptUser(groups) "{{{
- " If only one possible match, jump directly to it {{{
- let group_values = values(a:groups)
-
- if len(group_values) == 1
- redraw
-
- return group_values[0]
- endif
- " }}}
- " Prepare marker lines {{{
- let lines = {}
- let hl_coords = []
- let coord_key_dict = s:CreateCoordKeyDict(a:groups)
-
- for dict_key in sort(coord_key_dict[0])
- let target_key = coord_key_dict[1][dict_key]
- let [line_num, col_num] = split(dict_key, ',')
-
- let line_num = str2nr(line_num)
- let col_num = str2nr(col_num)
-
- " Add original line and marker line
- if ! has_key(lines, line_num)
- let current_line = getline(line_num)
-
- let lines[line_num] = { 'orig': current_line, 'marker': current_line, 'mb_compensation': 0 }
- endif
-
- " Compensate for byte difference between marker
- " character and target character
- "
- " This has to be done in order to match the correct
- " column; \%c matches the byte column and not display
- " column.
- let target_char_len = strlen(matchstr(lines[line_num]['marker'], '\%' . col_num . 'c.'))
- let target_key_len = strlen(target_key)
-
- " Solve multibyte issues by matching the byte column
- " number instead of the visual column
- let col_num -= lines[line_num]['mb_compensation']
-
- if strlen(lines[line_num]['marker']) > 0
- " Substitute marker character if line length > 0
- let lines[line_num]['marker'] = substitute(lines[line_num]['marker'], '\%' . col_num . 'c.', target_key, '')
- else
- " Set the line to the marker character if the line is empty
- let lines[line_num]['marker'] = target_key
- endif
-
- " Add highlighting coordinates
- call add(hl_coords, '\%' . line_num . 'l\%' . col_num . 'c')
-
- " Add marker/target lenght difference for multibyte
- " compensation
- let lines[line_num]['mb_compensation'] += (target_char_len - target_key_len)
- endfor
-
- let lines_items = items(lines)
- " }}}
- " Highlight targets {{{
- let target_hl_id = matchadd(g:EasyMotion_hl_group_target, join(hl_coords, '\|'), 1)
- " }}}
-
- try
- " Set lines with markers
- call s:SetLines(lines_items, 'marker')
-
- redraw
-
- " Get target character {{{
- call s:Prompt('Target key')
-
- let char = s:GetChar()
- " }}}
- finally
- " Restore original lines
- call s:SetLines(lines_items, 'orig')
-
- " Un-highlight targets {{{
- if exists('target_hl_id')
- call matchdelete(target_hl_id)
- endif
- " }}}
-
- redraw
- endtry
-
- " Check if we have an input char {{{
- if empty(char)
- throw 'Cancelled'
- endif
- " }}}
- " Check if the input char is valid {{{
- if ! has_key(a:groups, char)
- throw 'Invalid target'
- endif
- " }}}
-
- let target = a:groups[char]
-
- if type(target) == 3
- " Return target coordinates
- return target
- else
- " Prompt for new target character
- return s:PromptUser(target)
- endif
- endfunction "}}}
- function! s:EasyMotion(regexp, direction, visualmode, mode) " {{{
- let orig_pos = [line('.'), col('.')]
- let targets = []
-
- try
- " Reset properties {{{
- call s:VarReset('&scrolloff', 0)
- call s:VarReset('&modified', 0)
- call s:VarReset('&modifiable', 1)
- call s:VarReset('&readonly', 0)
- call s:VarReset('&spell', 0)
- call s:VarReset('&virtualedit', '')
- " }}}
- " Find motion targets {{{
- let search_direction = (a:direction == 1 ? 'b' : '')
- let search_stopline = line(a:direction == 1 ? 'w0' : 'w$')
-
- while 1
- let pos = searchpos(a:regexp, search_direction, search_stopline)
-
- " Reached end of search range
- if pos == [0, 0]
- break
- endif
-
- " Skip folded lines
- if foldclosed(pos[0]) != -1
- continue
- endif
-
- call add(targets, pos)
- endwhile
-
- let targets_len = len(targets)
- if targets_len == 0
- throw 'No matches'
- endif
- " }}}
-
- let GroupingFn = function('s:GroupingAlgorithm' . s:grouping_algorithms[g:EasyMotion_grouping])
- let groups = GroupingFn(targets, split(g:EasyMotion_keys, '\zs'))
-
- " Shade inactive source {{{
- if g:EasyMotion_do_shade
- let shade_hl_pos = '\%' . orig_pos[0] . 'l\%'. orig_pos[1] .'c'
-
- if a:direction == 1
- " Backward
- let shade_hl_re = '\%'. line('w0') .'l\_.*' . shade_hl_pos
- else
- " Forward
- let shade_hl_re = shade_hl_pos . '\_.*\%'. line('w$') .'l'
- endif
-
- let shade_hl_id = matchadd(g:EasyMotion_hl_group_shade, shade_hl_re, 0)
- endif
- " }}}
-
- " Prompt user for target group/character
- let coords = s:PromptUser(groups)
-
- " Update selection {{{
- if ! empty(a:visualmode)
- keepjumps call cursor(orig_pos[0], orig_pos[1])
-
- exec 'normal! ' . a:visualmode
- endif
- " }}}
- " Handle operator-pending mode {{{
- if a:mode == 'no'
- " This mode requires that we eat one more
- " character to the right if we're using
- " a forward motion
- if a:direction != 1
- let coords[1] += 1
- endif
- endif
- " }}}
-
- " Update cursor position
- call cursor(orig_pos[0], orig_pos[1])
- mark '
- call cursor(coords[0], coords[1])
-
- call s:Message('Jumping to [' . coords[0] . ', ' . coords[1] . ']')
- catch
- redraw
-
- " Show exception message
- call s:Message(v:exception)
-
- " Restore original cursor position/selection {{{
- if ! empty(a:visualmode)
- silent exec 'normal! gv'
- else
- keepjumps call cursor(orig_pos[0], orig_pos[1])
- endif
- " }}}
- finally
- " Restore properties {{{
- call s:VarReset('&scrolloff')
- call s:VarReset('&modified')
- call s:VarReset('&modifiable')
- call s:VarReset('&readonly')
- call s:VarReset('&spell')
- call s:VarReset('&virtualedit')
- " }}}
- " Remove shading {{{
- if g:EasyMotion_do_shade && exists('shade_hl_id')
- call matchdelete(shade_hl_id)
- endif
- " }}}
- endtry
- endfunction " }}}
-" }}}
-
-" vim: fdm=marker:noet:ts=4:sw=4:sts=4
View
319 bundle/vim-easymotion/doc/easymotion.txt
@@ -1,319 +0,0 @@
-*easymotion.txt* Version 1.3. Last change: 2011 Nov 7
-
-
- ______ __ ___ __ _
- / ____/____ ________ __/ |/ /____ / /_(_)____ ____
- / __/ / __ `/ ___/ / / / /|_/ // __ \/ __/ // __ \/ __ \
- / /___ / /_/ (__ ) /_/ / / / // /_/ / /_/ // /_/ / / / /
- /_____/ \__,_/____/\__, /_/ /_/ \____/\__/_/ \____/_/ /_/
- /____/
- - Vim motions on speed!
-
-
-==============================================================================
-CONTENTS *easymotion-contents*
-
- 1. Introduction ....................... |easymotion-introduction|
- 2. Usage .............................. |easymotion-usage|
- 2.1 Default mappings ............... |easymotion-default-mappings|
- 3. Requirements ....................... |easymotion-requirements|
- 4. Configuration ...................... |easymotion-configuration|
- 4.1 EasyMotion_keys ................ |EasyMotion_keys|
- 4.2 EasyMotion_do_shade ............ |EasyMotion_do_shade|
- 4.3 EasyMotion_do_mapping .......... |EasyMotion_do_mapping|
- 4.4 EasyMotion_grouping ............ |EasyMotion_grouping|
- 4.5 Custom highlighting ............ |easymotion-custom-hl|
- 4.6 Custom mappings ................ |easymotion-custom-mappings|
- 4.6.1 Leader key ............... |easymotion-leader-key|
- 4.6.2 Custom keys .............. |easymotion-custom-keys|
- 5. License ............................ |easymotion-license|
- 6. Known bugs ......................... |easymotion-known-bugs|
- 7. Contributing ....................... |easymotion-contributing|
- 8. Credits ............................ |easymotion-credits|
-
-==============================================================================
-1. Introduction *easymotion* *easymotion-introduction*
-
-EasyMotion provides a much simpler way to use some motions in vim. It takes
-the <number> out of <number>w or <number>f{char} by highlighting all possible
-choices and allowing you to press one key to jump directly to the target.
-
-When one of the available motions is triggered, all visible text preceding or
-following the cursor is faded, and motion targets are highlighted.
-
-==============================================================================
-2. Usage *easymotion-usage*
-
-EasyMotion is triggered by one of the provided mappings (see
-|easymotion-default-mappings| for details).
-
-Example: >
-
- <cursor>Lorem ipsum dolor sit amet.
-
-Type <Leader><Leader>w to trigger the word motion |w|. See
-|easymotion-leader-key| for details about the leader key. When the
-motion is triggered, the text is updated (no braces are actually added,
-the text is highlighted in red by default): >
-
- <cursor>Lorem {a}psum {b}olor {c}it {d}met.
-
-Press "c" to jump to the beginning of the word "sit": >
-
- Lorem ipsum dolor <cursor>sit amet.
-
-Similarly, if you're looking for an "o", you can use the |f| motion.
-Type <Leader><Leader>fo, and all "o" characters are highlighted: >
-
- <cursor>L{a}rem ipsum d{b}l{c}r sit amet.
-
-Press "b" to jump to the second "o": >
-
- Lorem ipsum d<cursor>olor sit amet.
-
-And that's it!
-
-------------------------------------------------------------------------------
-2.1 Default mappings *easymotion-default-mappings*
-
-The default configuration defines the following mappings in normal,
-visual and operator-pending mode:
-
- Mapping | Details
- ------------------|----------------------------------------------
- <Leader>f{char} | Find {char} to the right. See |f|.
- <Leader>F{char} | Find {char} to the left. See |F|.
- <Leader>t{char} | Till before the {char} to the right. See |t|.
- <Leader>T{char} | Till after the {char} to the left. See |T|.
- <Leader>w | Beginning of word forward. See |w|.
- <Leader>W | Beginning of WORD forward. See |W|.
- <Leader>b | Beginning of word backward. See |b|.
- <Leader>B | Beginning of WORD backward. See |B|.
- <Leader>e | End of word forward. See |e|.
- <Leader>E | End of WORD forward. See |E|.
- <Leader>ge | End of word backward. See |ge|.
- <Leader>gE | End of WORD backward. See |gE|.
- <Leader>j | Line downward. See |j|.
- <Leader>k | Line upward. See |k|.
- <Leader>n | Jump to latest "/" or "?" forward. See |n|.
- <Leader>N | Jump to latest "/" or "?" backward. See |N|.
-
-See |easymotion-leader-key| and |mapleader| for details about the leader key.
-See |easymotion-custom-mappings| for customizing the default mappings.
-
-==============================================================================
-3. Requirements *easymotion-requirements*
-
-EasyMotion has been developed and tested in vim 7.3, but it should run without
-any problems in vim 7.2.
-
-Vi-compatible mode must be disabled.
-
-==============================================================================
-4. Configuration *easymotion-configuration*
-
-EasyMotion will work fine without any configuration, but you can override the
-default behavior by setting configuration variables globally in your |vimrc|
-file.
-
-Example (this will change the target keys and disable shading): >
-
- let g:EasyMotion_keys = '1234567890'
- let g:EasyMotion_do_shade = 0
-
-------------------------------------------------------------------------------
-4.1 EasyMotion_keys *EasyMotion_keys*
-
-Set the keys which will be used for motion targets. Add as many keys as you
-want. There's a lower chance that the motion targets will be grouped if many
-keys are available.
-
-Default: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
-
-------------------------------------------------------------------------------
-4.2 EasyMotion_do_shade *EasyMotion_do_shade*
-
-The default behavior is to shade the text following the cursor (forward
-motions) or preceding the cursor (backward motions) to make the motion targets
-more visible. Set this option to 0 if you want to disable text shading.
-
-Default: 1
-
-------------------------------------------------------------------------------
-4.3 EasyMotion_do_mapping *EasyMotion_do_mapping*
-
-Set this option to 0 if you want to disable the default mappings. See
-|easymotion-default-mappings| for details about the default mappings.
-
-Note: If you disable this option, you'll have to map the motions yourself. See
-the plugin source code for mapping details. You usually shouldn't need to do
-this, see |easymotion-custom-mappings| for customizing the default mappings.
-
-Default: 1
-
-------------------------------------------------------------------------------
-4.4 EasyMotion_grouping *EasyMotion_grouping*
-
-When there are too many possible targets on the screen, the results have to be
-grouped. This configuration option lets you change which grouping algorithm
-you want to use. There are two grouping algorithms available:
-
- * Single-key priority (value: 1)
- -------------------
-
- This algorithm prioritizes single-key jumps for the targets closest to
- the cursor and only groups the last jump targets to maximize the amount
- of single-key jumps.
-
- This algorithm works recursively and will work with as few keys as two.
-
- Example (with |EasyMotion_keys| = "abcdef"): >
-
- x x x x x x x x x
-<
- The |w| motion is triggered: >
-
- a b c d e f f f f
- ^ ^ ^ ^ ^ Direct jump to target
- ^ ^ ^ ^ Enter group "f"
-<
- * Original (value: 2)
- --------
-
- This is the original algorithm which always groups all targets if there
- are too many possible motion targets.
-
- Example (with |EasyMotion_keys| = "abcdef"): >
-
- x x x x x x x x x
-<
- The |w| motion is triggered: >
-
- a a a a a a b b b
- ^ ^ ^ ^ ^ ^ Enter group "a"
- ^ ^ ^ Enter group "b"
-
-Default: 1
-
-------------------------------------------------------------------------------
-4.5 Custom highlighting *easymotion-custom-hl*
-
-The default EasyMotion configuration uses two highlighting groups that link
-to groups with default values. The highlighting groups are:
-
- * EasyMotionTarget
-
- Highlights motion targets, the default value is bold red
-
- * EasyMotionShade
-
- Highlights shaded text, the default value is dark gray
-
-There are two ways to override the default colors:
-
- 1) Set the highlighting in your color scheme
-
- This will only affect a single color scheme. The default red/gray colors
- will be used if you change the color scheme to one that doesn't assign
- any EasyMotion colors.
-
- Example: >
-
- hi EasyMotionTarget ctermbg=none ctermfg=green
- hi EasyMotionShade ctermbg=none ctermfg=blue
-<
- 2) Set the highlighting in your vimrc
-
- This is ideal if you want to link the colors to highlighting groups that
- are available in almost every color scheme, e.g. |ErrorMsg| (usually
- bright red) and Comment (usually faded). You can be sure that the
- color scheme's colors will be used instead of the default red/gray
- if you choose this option.
-
- Example: >
-
- hi link EasyMotionTarget ErrorMsg
- hi link EasyMotionShade Comment
-<
-------------------------------------------------------------------------------
-4.6 Custom mappings *easymotion-custom-mappings*
-
-EasyMotion allows you to customize all default mappings to avoid conflicts
-with existing mappings. It is possible to change the default leader key
-of all mappings to another key or sequence. It is also possible to fine
-tune the plugin to your need by changing every single sequence.
-
-4.6.1 Leader key *EasyMotion_leader_key* *easymotion-leader-key*
-
-The default leader key can be changed with the configuration option
-|EasyMotion_leader_key|.
-
-Set this option to the key sequence to use as the prefix of the mappings
-described in |easymotion-default-mappings|.
-
-Note: The default leader key has been changed to '<Leader><Leader>' to
-avoid conflicts with other plugins. You can revert to the original
-leader by setting this option in your vimrc: >
-
- let g:EasyMotion_leader_key = '<Leader>'
-<
-Default: '<Leader><Leader>'
-
-4.6.2 Custom Keys *easymotion-custom-keys*
-
-All custom mappings follow the same variable format: >
-
- EasyMotion_mapping_{motion} = {mapping}
-<
-Example: >
-
- let g:EasyMotion_mapping_f = '_f'
- let g:EasyMotion_mapping_T = '<C-T>'
-<
-See |easymotion-default-mappings| for a table of motions that can be mapped
-and their default values.
-
-Note: The leader key defined by |EasyMotion_leader_key| is not prepended to
-your customized mappings! You have to provide full key sequences when setting
-these options.
-
-==============================================================================
-5. License *easymotion-license*
-
-Creative Commons Attribution-ShareAlike 3.0 Unported
-
-http://creativecommons.org/licenses/by-sa/3.0/
-
-==============================================================================
-6. Known bugs *easymotion-known-bugs*
-
-None.
-
-==============================================================================
-7. Contributing *easymotion-contributing*
-
-If you experience any bugs or have feature requests, please open an issue on
-GitHub. Fork the source repository on GitHub and send a pull request if you
-have any code improvements.
-
-Author: Kim Silkebækken <kim.silkebaekken+vim@gmail.com>
-Source repository: https://github.com/Lokaltog/vim-easymotion
-
-==============================================================================
-8. Credits *easymotion-credits*
-
-- Ben Boeckel: ge and WORD motions
-- Drew Neil: operator-pending mappings
-- Rob O'Dwyer: customizable mappings without giving up all defaults
-- Michel D'Hooge: customizable leader
-- Maxime Bourget: search motion, improved JK motion behavior
-- Kearn Holliday: fix jumplist issues
-- Shougo Matsushita: fix CSApprox issue
-
-EasyMotion is based on Bartlomiej Podolak's great PreciseJump script, which
-can be downloaded here:
-
-http://www.vim.org/scripts/script.php?script_id=3437
-
-==============================================================================
-vim:tw=78:sw=4:ts=8:ft=help:norl:
View
73 bundle/vim-easymotion/plugin/EasyMotion.vim
@@ -1,73 +0,0 @@
-" EasyMotion - Vim motions on speed!
-"
-" Author: Kim Silkebækken <kim.silkebaekken+vim@gmail.com>
-" Source repository: https://github.com/Lokaltog/vim-easymotion
-
-" Script initialization {{{
- if exists('g:EasyMotion_loaded') || &compatible || version < 702
- finish
- endif
-
- let g:EasyMotion_loaded = 1
-" }}}
-" Default configuration {{{
- " Default options {{{
- call EasyMotion#InitOptions({
- \ 'leader_key' : '<Leader><Leader>'
- \ , 'keys' : 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
- \ , 'do_shade' : 1
- \ , 'do_mapping' : 1
- \ , 'grouping' : 1
- \
- \ , 'hl_group_target' : 'EasyMotionTarget'
- \ , 'hl_group_shade' : 'EasyMotionShade'
- \ })
- " }}}
- " Default highlighting {{{
- let s:target_hl_defaults = {
- \ 'gui' : ['NONE', '#ff0000' , 'bold']
- \ , 'cterm256': ['NONE', '196' , 'bold']
- \ , 'cterm' : ['NONE', 'red' , 'bold']
- \ }
-
- let s:shade_hl_defaults = {
- \ 'gui' : ['NONE', '#777777' , 'NONE']
- \ , 'cterm256': ['NONE', '242' , 'NONE']
- \ , 'cterm' : ['NONE', 'grey' , 'NONE']
- \ }
-
- call EasyMotion#InitHL(g:EasyMotion_hl_group_target, s:target_hl_defaults)
- call EasyMotion#InitHL(g:EasyMotion_hl_group_shade, s:shade_hl_defaults)
-
- " Reset highlighting after loading a new color scheme {{{
- augroup EasyMotionInitHL
- autocmd!
-
- autocmd ColorScheme * call EasyMotion#InitHL(g:EasyMotion_hl_group_target, s:target_hl_defaults)
- autocmd ColorScheme * call EasyMotion#InitHL(g:EasyMotion_hl_group_shade, s:shade_hl_defaults)
- augroup end
- " }}}
- " }}}
- " Default key mapping {{{
- call EasyMotion#InitMappings({
- \ 'f' : { 'name': 'F' , 'dir': 0 }
- \ , 'F' : { 'name': 'F' , 'dir': 1 }
- \ , 't' : { 'name': 'T' , 'dir': 0 }
- \ , 'T' : { 'name': 'T' , 'dir': 1 }
- \ , 'w' : { 'name': 'WB' , 'dir': 0 }
- \ , 'W' : { 'name': 'WBW', 'dir': 0 }
- \ , 'b' : { 'name': 'WB' , 'dir': 1 }
- \ , 'B' : { 'name': 'WBW', 'dir': 1 }
- \ , 'e' : { 'name': 'E' , 'dir': 0 }
- \ , 'E' : { 'name': 'EW' , 'dir': 0 }
- \ , 'ge': { 'name': 'E' , 'dir': 1 }
- \ , 'gE': { 'name': 'EW' , 'dir': 1 }
- \ , 'j' : { 'name': 'JK' , 'dir': 0 }
- \ , 'k' : { 'name': 'JK' , 'dir': 1 }
- \ , 'n' : { 'name': 'Search' , 'dir': 0 }
- \ , 'N' : { 'name': 'Search' , 'dir': 1 }
- \ })
- " }}}
-" }}}
-
-" vim: fdm=marker:noet:ts=4:sw=4:sts=4

0 comments on commit fd299de

Please sign in to comment.