-
Notifications
You must be signed in to change notification settings - Fork 6
Tiny, temporary keymaps
License
tomtom/tinykeymap_vim
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This plugin is a 90% clone of Andy Wokula's tinymode (vimscript #2223). It takes a different approach that hopefully avoids certain problems without creating new ones. tinymode actually creates maps to do its job, tinykeymap only creates maps for the entry sequence and uses the |getchar()| function to handle further input. This plugin lets users define "temporary keymaps", a.k.a. tinykeymaps, with the |tinykeymap#EnterMap()| function. Users can define a map to activate a tinykeymap. Users can then use single key shortcuts to trigger commands defined with |tinykeymap#Map()|. Pressing an undefined key or <Esc>, deactivates the tinykeymap. tinykeymap comes with the following pre-defined tinykeymaps (see |g:tinykeymap#mapleader| and the related g:tinykeymap#*#map variables for how to customize the key binding): buffers ... Navigate/operate on buffers Enter map: <Leader>mb diff ... Navigate/operate on |diff|s Enter map: <Leader>md filter ... "filter" text in a buffer using folds Enter map: <Leader>mf lines ... Navigate/operate on lines (similar to vimscript #4140) Enter map: <Leader>ml loc ... Navigate the |location-list| Enter map: <Leader>mo qfl ... Navigate the |quickfix| list Enter map: <Leader>mq tabs ... Navigate/operate on tabs Enter map: gt undo ... Navigate/operate on the undo tree (with optional support for vimscript #4177) Enter map: <Leader>mu windows ... Navigate/operate on windows Enter map: <C-W> Example definition for a "tabs" tinykeymap (heavily based on Andy Wokula's tabs mode for tinymode): > call tinykeymap#EnterMap('tabs', 'gt', {'name': 'Tabs mode'}) call tinykeymap#Map('tabs', 'n', 'tabnew') call tinykeymap#Map('tabs', 't', 'norm! gt') call tinykeymap#Map('tabs', 'T', 'norm! gT') call tinykeymap#Map("tabs", "^", "tabfirst") call tinykeymap#Map("tabs", "$", "tablast") call tinykeymap#Map("tabs", "c", "tabclose") Example use of the above tinykeymap: E.g. pressing gt3n^c2t will: gt ... Enter tabs mode 3n ... create 3 new tabs, ^ ... select the first one, c ... close it, and 2t ... move to the second tab on the right. A tinykeymap is exited (1) by pressing <Esc> or (2) by timeout (see |g:tinykeymap#timeout|). Differences to tinymode: - tinykeymaps and maps may have options (optional) - tinykeymaps can be buffer-local - dealing with [count] is easier (if a map contains "<count>", this placeholder is replaced with the current [count], i.e. a previously entered number; otherwise the expression is evaluated [count] times) - avoid a certain misleading error message submode (vimscript #2467) is another package that provides similar functionality. ----------------------------------------------------------------------- Install~ In order to install the vba, open the vba file in VIM and type: > :so % See :help vimball for de 6088 tails. Optional enhancements: tlib (vimscript #1863) ... highlight current line in some maps By default, tinykeymap will load all tinykeymaps in your 'runtimepath'. If this is not what you want, set |g:tinykeymaps_default| in your |vimrc| file. Also available via git: http://github.com/tomtom/tinykeymap_vim/ Bug tracker: https://github.com/tomtom/tinykeymap_vim/issues/ Dependencies: tlib :: http://github.com/tomtom/tlib_vim License: GPLv3 or later
About
Tiny, temporary keymaps
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published