[submodule "ctrlp"]
path = vim/bundle/ctrlp.vim
- url = https://github.com/kien/ctrlp.vim.git
+ url = git://github.com/kien/ctrlp.vim.git
[submodule "vim-json"]
path = vim/bundle/vim-json
- url = https://github.com/elzr/vim-json.git
+ url = git://github.com/elzr/vim-json.git
+
+[submodule "vim-easymotion"]
+ path = vim/bundle/vim-easymotion
+ url = git://github.com/Lokaltog/vim-easymotion.git
+
+[submodule "LargeFile"]
+ path = vim/bundle/LargeFile
+ url = git://github.com/vim-scripts/LargeFile.git
+++ /dev/null
-" 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
+++ /dev/null
-*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:
+++ /dev/null
-" 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
+++ /dev/null
-" LargeFile: Sets up an autocmd to make editing large files work with celerity
-" Author: Charles E. Campbell, Jr.
-" Date: Sep 23, 2008
-" Version: 4
-" GetLatestVimScripts: 1506 1 :AutoInstall: LargeFile.vim
-
-" ---------------------------------------------------------------------
-" Load Once: {{{1
-if exists("g:loaded_LargeFile") || &cp
- finish
-endif
-let g:loaded_LargeFile = "v4"
-let s:keepcpo = &cpo
-set cpo&vim
-
-" ---------------------------------------------------------------------
-" Commands: {{{1
-com! Unlarge call s:Unlarge()
-com! -bang Large call s:LargeFile(<bang>0,expand("%"))
-
-" ---------------------------------------------------------------------
-" Options: {{{1
-if !exists("g:LargeFile")
- let g:LargeFile= 20 " in megabytes
-endif
-
-" ---------------------------------------------------------------------
-" LargeFile Autocmd: {{{1
-" for large files: turns undo, syntax highlighting, undo off etc
-" (based on vimtip#611)
-augroup LargeFile
- au!
- au BufReadPre * call <SID>LargeFile(0,expand("<afile>"))
- au BufReadPost *
- \ if &ch < 2 && (getfsize(expand("<afile>")) >= g:LargeFile*1024*1024 || getfsize(expand("<afile>")) == -2)
- \| echomsg "***note*** handling a large file"
- \| endif
-augroup END
-
-" ---------------------------------------------------------------------
-" s:LargeFile: {{{2
-fun! s:LargeFile(force,fname)
-" call Dfunc("LargeFile(force=".a:force." fname<".a:fname.">)")
- if a:force || getfsize(a:fname) >= g:LargeFile*1024*1024 || getfsize(a:fname) <= -2
- syn clear
- let b:eikeep = &ei
- let b:ulkeep = &ul
- let b:bhkeep = &bh
- let b:fdmkeep= &fdm
- let b:swfkeep= &swf
- set ei=FileType
- setlocal noswf bh=unload fdm=manual ul=-1
- let fname=escape(substitute(a:fname,'\','/','g'),' ')
- exe "au LargeFile BufEnter ".fname." set ul=-1"
- exe "au LargeFile BufLeave ".fname." let &ul=".b:ulkeep."|set ei=".b:eikeep
- exe "au LargeFile BufUnload ".fname." au! LargeFile * ". fname
- echomsg "***note*** handling a large file"
- endif
-" call Dret("s:LargeFile")
-endfun
-
-" ---------------------------------------------------------------------
-" s:Unlarge: this function will undo what the LargeFile autocmd does {{{2
-fun! s:Unlarge()
-" call Dfunc("s:Unlarge()")
- if exists("b:eikeep") |let &ei = b:eikeep |endif
- if exists("b:ulkeep") |let &ul = b:ulkeep |endif
- if exists("b:bhkeep") |let &bh = b:bhkeep |endif
- if exists("b:fdmkeep")|let &fdm = b:fdmkeep|endif
- if exists("b:swfkeep")|let &swf = b:swfkeep|endif
- syn on
- doau FileType
-" call Dret("s:Unlarge")
-endfun
-
-" ---------------------------------------------------------------------
-" Restore: {{{1
-let &cpo= s:keepcpo
-unlet s:keepcpo
-" vim: ts=4 fdm=marker