A convenção de que o cursor está “sobre” um caractere no modo normal é arbitrária? [fechadas]

0

Esta é uma pergunta geral que surge quando observamos o comportamento não natural do editor para alguém que não esteja totalmente familiarizado com vim :

  • inserir insert e sair imediatamente altera a posição do cursor
  • excluindo e colando (incorretamente) um [ ]word produz some[ ][ ]wordand the rest (espaço em branco marcado como [ ] para clareza)

Suponha que haja um editor vim -like que defina a convenção de que o texto é sempre colado, inserido, adicionado à esquerda da posição do cursor, a menos que seja instruído de outra forma. Naturalmente, seria necessário permitir o cursor sobre um caractere de nova linha (e, por exemplo, permitir excluí-lo).

Isso tornaria esse editor mal projetado (por exemplo, inconsistente com seus próprios comandos e movimentos)?

Em outras palavras, a convenção vim é arbitrária ou bem projetada?

    
por sevo 31.07.2016 / 19:23

2 respostas

2

Sato Katsura e Julie Pelletier já esclareceram sua confusão de que o Vim tem muitos comandos e opções à sua disposição. Vou discutir algumas razões pelas quais o modo de inserção funciona da maneira que funciona.

Em um terminal, um caractere é não sempre sob o cursor, por exemplo:

  • O cursor pode estar acima de EOL
  • O cursor pode estar sobre um novo caractere de linha, mas um novo caractere de linha é um caractere que não é exibido nos terminais.

No Vim, mesmo em normal mode , o cursor pode estar em uma posição que não tenha um caractere. Para ver este comportamento, note que a e i executam o mesmo em uma linha vazia.

Outro motivo para ter maneiras diferentes de inserir insert-mode é o fato de que a pesquisa de padrão move o cursor da posição atual do cursor para o início da correspondência. Como você pode mover o cursor sobre a duração da correspondência, você deseja que o comando insert insira o modo de inserção antes da partida.

Observe também que digitar / em normal-mode move o cursor temporariamente para um caractere para frente, o que permite pesquisar repetidamente novas correspondências do mesmo padrão.

    
por 31.07.2016 / 19:59
1

Eu não entendo sua confusão, mas há instruções muito restritas em vi , que vim estende:

i: insert text before the cursor
I: insert text at the beginning of the line
a: append text after the cursor
A: append text at the end of the line
p: paste the buffer after the cursor
P: paste the buffer before the cursor

E a lista continua e continua.

    
por 31.07.2016 / 19:33

Tags