Alteração do cursor mal por estado

10

Até hoje, quando eu estava no estado normal evil, o cursor era um bloco e passava para um raio-I quando estava no estado de inserção. Algo mudou, no entanto, e o cursor agora é sempre o raio-I. Como posso recuperar o antigo comportamento?

De maneira mais geral, como altero a aparência do cursor de acordo com evilos diferentes estados?

Ryan
fonte
3
Uma parte: Uma boa maneira de encontrar as variáveis ​​que Dan referenciou em sua resposta é usar apropos. Você pode bater C-h a( apropos), digite uma pesquisa ( "cursor do mal"), e bateu RETpara encontrar a documentação de todas as correspondentes funções, variáveis, comandos, etc. Helm tem um built-in fonte para isso também: helm-apropos.
nanny
1
@ nanny +1 por mencionar apropos. Observe, no entanto, que isso C-h aestá vinculado apropos-commandpor padrão, o qual listará apenas os comandos correspondentes . Se você quiser apropos-commandconsiderar funções não interativas , precisará fazê-lo C-u C-h a. O aproposcomando (que irá mostrar ambos os comandos e variáveis) não está vinculado a uma chave por padrão.
precisa saber é
@itsjeyd: Opa, essa foi a minha pior parte do teclado. Eu editei @ comentário da babá de apropos-commandque apropos- Acontece que eu tinha rebote C-h ade aproposum longo tempo atrás, esqueceu, e assumiu que era o padrão.
Dan
@ Dan Ah, as armadilhas de ter privilégios de moderador ...;)
itsjeyd

Respostas:

12

A variável cursor-typecontrola como a aparência do cursor, por padrão t, usa o cursor especificado para o quadro (consulte a documentação para obter opções). Se você deseja que o cursor seja o padrão de um bloco, você pode (setq cursor-type 'box).

No entanto, evilfornece vários cursores diferentes para os diferentes estados, que você pode ajustar para fornecer um lembrete visual do estado em que você está quando digita:

  • evil-normal-state-cursor
  • evil-insert-state-cursor
  • evil-visual-state-cursor
  • evil-motion-state-cursor
  • evil-replace-state-cursor
  • evil-operator-state-cursor

A doutrina afirma que cada um destes:

Pode ser um tipo de cursor conforme cursor-type, uma sequência de cores transmitida para set-cursor-color, uma função de argumento zero para alterar o cursor ou uma lista dos itens acima.

Portanto, por exemplo, se você quiser uma barra amarela com 5 pixels de largura no estado de inserção e uma caixa cheia de roxo no estado normal, faça o seguinte:

(setq evil-insert-state-cursor '((bar . 5) "yellow")
      evil-normal-state-cursor '(box "purple"))

Consulte a documentação para cursor-typeobter suas opções no ajuste do cursor.

Dan
fonte
Você sabe por acaso, como configurar o cursor para minibuffer? Parece que sempre permanece como está configurado para o modo normal.
Yuki
@Yuki: se você quer dizer a aparência, eu não sei do alto da minha cabeça. Se você quiser más ligações no minibuffer, siga os links na discussão deste post e / ou dê uma olhada nesta essência do github .
Dan