Using :map
provides a list of all mappings in Vim. But, I am unable to search through the list. I am surprised to see it being opened in a different type of window unlike usual Vim help files. Is there a way to have it available in the usual form?
Vim uses its internal pager to display the output of :map
, which has pretty limited functionalities (see :h pager
for more info).
If you want to access the output of :map
in a normal vim buffer, you could use :redir
:
:redir @a> " redirect output to register a
:map
:redir END
:put a " paste the output of :map in the current buffer
Note that you can redirect to a file, to a variable, etc... See :h redir
for more details.
Don't be surprised. :map
is not related at all with :help
so there's no reason whatsoever to expect it to work like :help
.
You can give :map
an argument to narrow-down the listing:
:map ,
With the right values for wildmenu
and/or wildmode
, you can tab-complete :map
:
:map ,<Tab>
You can also list the current mappings with <Cd>
:
:map <C-d>
You can also use the mode-specific variants of :map
to get a more manageable list:
:imap ,
:nmap ,
:xmap ,
and so on…
But keep in mind that :map
only lists custom mappings (made by you or your plugins). If you want a list of default mappings, check out :help index
.
Here's a robust function to create a searchable vertical split with the sorted output of :maps
function! s:ShowMaps()
let old_reg = getreg("a") " save the current content of register a
let old_reg_type = getregtype("a") " save the type of the register as well
try
redir @a " redirect output to register a
" Get the list of all key mappings silently, satisfy "Press ENTER to continue"
silent map | call feedkeys("\<CR>")
redir END " end output redirection
vnew " new buffer in vertical window
put a " put content of register
" Sort on 4th character column which is the key(s)
%!sort -k1.4,1.4
finally " Execute even if exception is raised
call setreg("a", old_reg, old_reg_type) " restore register a
endtry
endfunction
com! ShowMaps call s:ShowMaps() " Enable :ShowMaps to call the function
nnoremap \m :ShowMaps<CR> " Map keys to call the function
The last line maps the two keys \\ m to call the function, change this as you wish.
对于neovim,望远镜具有开箱即用的映射列表和搜索功能: builtin.keymaps
。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.