No VIM, posso descobrir quais teclas eu digitei?

11

Às vezes, uso o VIM e algo acontece, e não sei o que foi ou o que digitei que causou. Existe uma maneira de listar algumas das chaves recentes que foram digitadas e, melhor ainda, descobrir quais ações foram acionadas?

Owen
fonte

Respostas:

7

Vimtem uma opção que -Wvocê pode abusar, mas não funcionará enquanto Vimainda estiver em execução.

-w {scriptout}

Todos os caracteres que você digita são gravados no arquivo {scriptout}, até você sair do Vim. Isso é útil se você deseja criar um arquivo de script para ser usado com "vim -s" ou ": source!". Se o arquivo {scriptout} existir, os caracteres serão anexados.

-W {scriptout}

Como -w, mas um arquivo existente é substituído.

Chamando Vimcom, por exemplo, um alias

vim -W /tmp/vimlog-$(id -un)

permitirá que você inspecione less /tmp/vimlog-$(id -un)ou o cat -v /tmp/vimlog-$(id -un)que você digitou literalmente depois de sair Vim.

peth
fonte
Essa é uma ideia interessante. Vou tentar e ver se aprendo alguma coisa.
Owen
3

Primeiro, verifique se o vim está lembrando todas as linhas da história. Isso define o histórico para 1000 comandos e pesquisas:

:set history=1000

Se você digitar o início do que está procurando, poderá usar as teclas para rolar pelo histórico - isso se aplica a comandos e pesquisas.

Por exemplo, se você procurou por porcelana , Cuba e Chade, então, Chipre :

Você pode digitar /ce pressionar várias vezes. Você vai encontrá-lo exibe /cyprus, em seguida, /cubaem seguida, /china( /Chadé ignorada porque não começar com um c ).

Outros comandos:

  • :history lista o histórico inteiro.
  • :his lista o histórico de comandos.
  • :his / lista o histórico de pesquisa.
Gaff
fonte
2
Eu não acho que isso se aplica a comandos de modo normais somente a comandos ex modo (isto é os comandos que começam com ':', exemplo: e: w: q)
kmkkmk
1
Para ver o histórico dos comandos ex, você também pode simplesmente digitar q:no modo normal. mesmo vale para o histórico de pesquisa comq/
Yab
2

Você pode adicionar isso ao seu .vimrc:

set showcmd

Ele mostrará na barra de status o comando que você está executando ao digitá-los. Embora isso não lhe dê uma história, esta é a solução mais próxima que eu conheço.

Se, no entanto, você está falando sobre excomandos, o desespero de Gareth é o caminho a percorrer

Yab
fonte