Detect if a key is bound to something in vim

后端 未结 6 1957
暖寄归人
暖寄归人 2020-12-12 12:33

I\'d like to know if there is a way to figure out if a key does something in vim. I know that I can use :map to see user-defined mappings, but is there somethin

相关标签:
6条回答
  • 2020-12-12 12:59

    I skimmed through :help index and made a list of some of the unused nmap keys:

    • Q (switch to "Ex" mode)
    • Z except ZZ, ZQ
    • \
    • <Space> (same as l in the normal mode; the largest and the most underutilized key in the normal mode)
    • gb, gc, gl, gx, gy, gz
    • gs (sleep)
    • zp, zq, zu, zy
    • cd, cm, co, cp, cq, cr, cs, cu, cx, cy
    • dc, dm, do, dp, dq, dr, ds, du, dx, dy
    • gA, gB, gC, gG, gK, gL, gM, gO, gS, gX, gY, gZ
    • zB, zI, zJ, zK, zP, zQ, zP, zS, zT, zU, zV, zY, zZ
    • ]a, ]b, ]e, ]g, ]h, ]j, ]k, ]l, ]n, ]o, ]q, ]r, ]t, ]u, ]v, ]w, ]x, ]y
    • [a, [b, [e, [g, [h, [j, [k, [l, [n, [o, [q, [r, [t, [u, [v, [w, [x, [y
    • CTRL-G, CTRL-K
    • CTRL-\ a - z (reserved for extensions)
    • CTRL-\ A - Z (not used)

    Please update/comment.

    0 讨论(0)
  • 2020-12-12 13:10

    To check the default mapping:

    :help index
    

    For other mapping that is done by either users or plugin:

    :map
    :map!
    

    From http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial(Part_1):

    The first command displays the maps that work in normal, visual and select and operator pending mode. The second command displays the maps that work in insert and command-line mode.

    Typically the output of the above commands will span several pages. You can use the following set of commands to redirect the output to the vim_maps.txt file:

    :redir! > vim_maps.txt
    :map
    :map!
    :redir END
    
    0 讨论(0)
  • 2020-12-12 13:21

    Use :map! and :map for manually set keys and :help 'char(-combination)' to find out which keys are already mapped in vim out-of-the-box(/out of your specific compiling options). (Slightly off-topic but still regardable (I think): Use :scriptnames to see which files have been sourced in which order.)

    0 讨论(0)
  • 2020-12-12 13:24

    If you check out the suggested answer by Randy Morris you will find that

    :help index 
    

    will give you the list you want.

    0 讨论(0)
  • 2020-12-12 13:25

    Not a complete answer, but you may want to check out :help map-which-keys for a list of keys that vim recommends you to use in your custom maps.

    That help section has a recommendation of how to tell if a specific key is mapped to an action.

    0 讨论(0)
  • 2020-12-12 13:25

    You can use mapcheck.:-

    For example, I wanted to map <CR> ,i to gg=G to indented a file. To check if there is a mapping already for <CR> , i

    if mapcheck("\<CR>", "I") == "" |echo "no mapping"
    

    ...but this won't detect if the mapping is part of a sequence.

    0 讨论(0)
提交回复
热议问题