Posso usar a tecla `<cmd>` no terminal Vim?

Respostas:

12

<D-> só funciona no MacVim.

Um google rápido retornará vários hacks e soluções de terceiros. Todas as soluções que conheço funcionam em todo o sistema ou são específicas de aplicativos: se você remapear Cmdapenas no iTerm2, como abrirá uma nova janela ou uma nova guia? Com ... com ... o ... MOUSE?

Não consigo imaginar um bom motivo para remapear a Cmdchave de qualquer coisa em um Mac. Isso seria insano.

O Vim não é o TextMate ou qualquer outro editor que você tenha usado antes. Não há como transferir todos os seus velhos hábitos sem problemas, sem entender.

Em vez de perder seu tempo tentando transformar o Vim e o seu terminal em algo que não é e não pode ser, você deve aprender a usar e personalizar o Vim com sabedoria. Todos os seus Cmd+ Shift+ Ctrl+ Altcombos não o levarão a lugar nenhum. Especialmente em um terminal onde Altmuitas vezes é problemático e Cmdinutilizável.

Considere usar <leader>( :help leader):

  • é portátil em todas as plataformas
  • é menos propenso a conflitos com seu sistema operacional ou emulador de terminal
  • abre muitas possibilidades fáceis de lembrar
romainl
fonte
Haha, obrigado grawity, está muito mais limpo agora.
romainl
Obrigado pela resposta. Eu tinha ouvido falar, <leader>mas não tinha certeza de como deveria ser usado. Concordo com o seu ponto de vista sobre portabilidade, isso é parte da razão pela qual estou mudando para o Vim. Obrigado.
Jordelver
Você pode remapear Cmda Controlem iTerm2, e, em seguida, na mesma janela, adicionar atalhos para abrir uma nova guia com ^t, etc. tudo funciona, então!
Sean Clark Hess
5

Eu descobri que o iterm2 tem uma opção nas configurações do teclado para fazer esse tipo de coisa. Para ex abaixo, mapeei command-enter para ser: wq

insira a descrição da imagem aquiinsira a descrição da imagem aqui

Neil McGill
fonte
Obrigado por esta solução. Isto é exatamente o que eu estava procurando. Eu sei sobre o <Leader>, mas acho que algumas coisas como salvar um arquivo devem ser universais.
Dmitry Biletskyy
4

Para comandos simples, existe uma solução enviando o código hexadecimal apropriado ao terminal. Por exemplo, eu queria salvar no vim pressionando cmd-s. I mapeados cmd-sem iterm2 para enviar o código hexadecimal 0x13que é o código para ctrl-s, então eu mapeados ctrl-spara :wqno vim.

jhickner
fonte
Como exatamente você faz uma coisa dessas? Obrigado.
Nunos 31/03
Não funcionou para mim o código hexadecimal 0x13: / imgur.com/RjxOoLY
michalzuber
Para o como fazer isso, veja as fotos abaixo - graças @jhickner para a idéia de olhar para iTerm2
Neil McGill
3

A solução de 2016 é usar o programa de código aberto Karabiner , que permite remapear modificadores e outras chaves com granularidade muito fina , por exemplo

  • Remapie apenas a esquerda ⌘ Cmd ou a Optiontecla.
  • Remapeie uma chave apenas para aplicativos específicos, por exemplo, apenas dentro do Terminal, Emacs ou máquina virtual.

Por exemplo, veja como remapear a ⌘ Cmdtecla esquerda para atuar Ctrl apenas dentro do Terminal (e deixar a tecla direita inalterada para que você ainda possa usar, por exemplo, ⌘ Cmd + Tabpara alternar entre aplicativos):

karabiner-screenshot

dorserg
fonte
Impressionante. Agora eu posso usar isso no Vim corretamente, embora o comando (esquerda) + tab não "alt tab". Eu posso usar o comando certo, mas existe alguma maneira de manter isso de alguma forma?
Meder omuraliev