Qual é o significado de 'g'?

10

Nota: esta pergunta tem dois tipos de respostas no StackOverflow, mas pensei que talvez uma resposta melhor viesse daqui e, se não, pelo menos ela será documentada onde deveria estar:


Qual é o significado semântico da letra gnos comandos do modo normal? Eu tenho usado o heck fora de gg, Ge <n>G, mas até hoje, eu nunca tinha pensado para descobrir o que a semântica de gestão na maior Zen de Vi .

Hoje eu tive que minúsculas constantes no meu código, e achei que deveria haver uma maneira melhor do que caractere por caractere (já <n>~que não funciona, por qualquer motivo estranho que eu não saiba). Eu o encontrei g~, especificamente g~iw.

Isso me levou a encontrar as respostas vinculadas, mas elas têm explicações menos satisfatórias e estão no StackOverflow, e não no vi.SE, para inicializar.

Assim,

Qual é o significado vi-semântico de g?

Por um significado semântico, espero que as pessoas entendam, como ciwsignifica mudança na palavra, assim csignifica mudança i, significa item interno do texto e wsignifica palavra delineada por espaço ou pontuação excluindo _.

PS, como faço para marcar isso?

malan
fonte

Respostas:

12

gé um pouco de uma chave estranha no vim. Muitas outras teclas têm uma palavra específica para descrever sua categoria:

  • h, j, k, l, }, {, w, e, Etc, são todos os movimentos . Eles dizem ao seu cursor para se mover.

  • d, c, y, Etc, são todos os operadores . Eles mudam o texto em que operam de uma maneira específica e você diz a eles em que texto operar, fazendo uma moção .

gnão tem um nome como este. Se eu tivesse que criar um nome, chamaria de espaço para nome . Bram Moolenaar e Bill Joy Tenho certeza que tiveram muitas operações úteis (como ir para o início / fim do arquivo ou ir para [line]) que fazem sentido para criar um atalho para o vim padrão, mas não serão usadas com frequência suficiente para justificar o atalho de uma tecla, pois eles são reservados para itens mais úteis / usados ​​com mais freqüência hjkl, como or de p, e existem apenas 95 teclas para escolher. toneladas de atalhos de teclado que todos começam com g. O que eles têm em comum? Absolutamente nada. Por acaso, são coisas úteis que não valem a pena dar um atalho de uma tecla.

Realmente, ggé um movimento, como todos os outros movimentos que listei, apenas usa uma sequência de duas teclas. g~é um operador, assim como todos os outros operadores que listei, apenas usa uma sequência de duas teclas.

Existem vários outros "namespace" como chaves no vim. Por exemplo, procure ajuda

  • :h z (Comandos que começam com 'z')
  • :h [ (Comandos que começam com '[')
James
fonte
2
Assim gé como um líder de sistema, em oposição a um líder de usuário. Só tem que memorizar os combos. Obrigado.
malan 30/01/19
7
g e z e realmente gosto de namespaces para o próximo caractere. Isso
ocorre
11
@ChristianBrabandt Sim, espaço para nome é uma ótima palavra para isso.
James
11
IMHO esta resposta não deve usar a palavra líder desde existe uma chave líder no vim e não deve ser confundido com g, z, [, ], e <C-w>. Eu usaria namespace keycomo sugerido.
Hotschke 31/01/19
11
Mais importante, ge zduas teclas não foram usadas no modo normal pelo vi . Dado o número de teclas disponíveis, usá-las como prefixos para comandos específicos do Vim era realmente a única maneira de adicionar muitos novos comandos no modo normal sem recorrer à codificação.
21419 jamessan