Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


This is a mirror of

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 some example maps to make it easier to ...

    buffers ... navigate/operate on buffers
    diff    ... navigate/operate on |diff|s
    filter  ... "filter" text in a buffer using folds
    lines   ... navigate/operate on lines (similar to vimscript #4140)
    loc     ... navigate the |location-list|
    qfl     ... navigate the |quickfix| list
    tabs    ... navigate/operate on tabs
    undo    ... navigate/operate on the undo tree (with optional support for 
                vimscript #4177)
    windows ... navigate/operate on windows

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 

tinykeymap comes with the following pre-defined tinykeymaps:

    tabs    gt         :: Operate on tabs
    windows <C-W>      :: Operate on windows
    buffers <Leader>mb :: Operate on buffers
    diff    <Leader>md :: Make it easier to work with |diff|s
    filter  <Leader>mf :: Fold lines not matching some pattern (default: word 
                         under cursor)
    lines   <Leader>ml :: Operate on lines
    loc     <Leader>mo :: Operate on the |location-list|
    qfl     <Leader>mq :: Operate on the |quickfix| list
    undo    <Leader>mu :: Operate on the |undo| tree

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)

Something went wrong with that request. Please try again.