Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tomtom/tinykeymap_vim
Tiny, temporary keymaps
https://github.com/tomtom/tinykeymap_vim
vim vim-plugin
Last synced: 5 days ago
JSON representation
Tiny, temporary keymaps
- Host: GitHub
- URL: https://github.com/tomtom/tinykeymap_vim
- Owner: tomtom
- License: gpl-3.0
- Created: 2012-08-28T20:58:20.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2024-02-17T11:43:03.000Z (9 months ago)
- Last Synced: 2024-02-17T12:35:20.201Z (9 months ago)
- Topics: vim, vim-plugin
- Language: Vim Script
- Homepage: http://www.vim.org/scripts/script.php?script_id=4199
- Size: 129 KB
- Stars: 35
- Watchers: 5
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README
- Changelog: CHANGES.TXT
- License: LICENSE.TXT
Awesome Lists containing this project
README
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 , 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: mb
diff ... Navigate/operate on |diff|s
Enter map: md
filter ... "filter" text in a buffer using folds
Enter map: mf
lines ... Navigate/operate on lines (similar to vimscript #4140)
Enter map: ml
loc ... Navigate the |location-list|
Enter map: mo
qfl ... Navigate the |quickfix| list
Enter map: mq
tabs ... Navigate/operate on tabs
Enter map: gt
undo ... Navigate/operate on the undo tree (with optional support for
vimscript #4177)
Enter map: mu
windows ... Navigate/operate on windows
Enter map: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 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 "", 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 messagesubmode (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 details.
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_vimLicense: GPLv3 or later