Existe alguma maneira de visualizar as chaves atualmente mapeadas no Vim?

183

Basicamente, eu gostaria de visualizar todos os mapas de chaves feitos no buffer atual por todos os plugins, vimrc, etc, no buffer atual. Há alguma maneira de fazer isso?

Paul Wicks
fonte

Respostas:

238

Você pode fazer isso com o :mapcomando Existem também outras variantes.

  • :nmap para mapeamentos no modo normal
  • :vmap para mapeamentos no modo visual
  • :imap para mapeamentos no modo de inserção

A lista acima não está completa. Digitar :help mapno Vim fornecerá mais informações.

mat-
fonte
10
Apenas para esclarecer, eu acredito que :map, como a pergunta original pergunta, só mostra mapeamentos feitos por plugins, vimrc, etc. Se você quiser ver os atalhos de teclado padrão no vim, uso:index
Von
28
@Von, você talvez queira dizer :help index.
Lqueryvg
2
estes apenas dar-lhe os mapeamentos definidos pelo usuário, não o built-in (padrão) ligações
Tyler Durden
1
É possível gravá-los em um arquivo para revisá-los mais tarde?
Anton Daneyko
@AntonDaneyko Você pode usar o github.com/AndrewRadev/bufferize.vim para esse fim.
radlan 23/04
86
:redir! > vim_keys.txt
:silent verbose map
:redir END

Isso gera os atalhos, com onde foram definidos, para um arquivo de texto.

Ivan
fonte
1
Eu acredito que você pretendia usar o :redircomando, não o :remapcomando.
Aaron Hays
1
Obrigado, obrigado, obrigado!!! Finalmente descobri que o MacVim estava remapeando meu comando <A-Up>. Corrigido adicionando let macvim_skip_cmd_opt_movement = 1
RichS
54

Além de respostas sobre :mapsem argumentos: não perca sua forma detalhada ( :verbose map), que mostra onde os mapeamentos foram definidos (consulte :help map-verbose).

Ves
fonte
13

Simplesmente, basta executar as :map variantes sem argumentos.

:map
:imap
:vmap
Michael Berkowski
fonte
13

:mape seus amigos são a chave, :verboseadicionam informações e :redirpermitem o refinamento pós-pesquisa.

Eles são uma combinação perfeita para mostrar qual comando está vinculado a qual atalho e vice-versa, mas se você deseja pesquisar algumas chaves e evitar arquivos temporários sempre que precisar pesquisar mapeamentos, consulte scriptease e :Verbosecomando.

É um invólucro ativado :verbosepara mostrar o resultado em uma janela de visualização.

Dessa forma, você pode pesquisar o que quiser dentro dos resultados sem usar arquivos temporários

digite :Verbose mape use / ?como de costume.

albfan
fonte
4

Outra maneira é salvar a sessão em um arquivo e depois editar esse arquivo, pois contém todos os mapeamentos e configurações.

:mks[ession] [file] - Escreva um script Vim que restaure a sessão de edição atual.

Fernando Rodriguez
fonte