Código lisp de configuração do Emacs que altera o modo de recuo elétrico antes e depois de colar da área de transferência

Código lisp de configuração do Emacs que altera o modo de recuo elétrico antes e depois de colar da área de transferência

A partir do Emacs 24.4 (eu acho), cj e ret foram trocados, então indent agora é chamado após ret. E esses recuos no modo de texto são relativos ao recuo, então, quando você cola o código recuado, o código é colado na diagonal em vez de alinhado:

# copied code
  line1
  line2
  line3

# pasted
  line1
    line2
      line3

Posso resolver essa configuração electric-indent-mode(comando flip/flop), mas gosto do comportamento relativo ao recuo enquanto escrevo no modo de texto. Quero desligá-lo apenas ao colar o texto.

Alguém tem um código que eu possa usar para definir um atalho de colagem que chame o modo de recuo elétrico, cole da área de transferência e ative novamente o modo de recuo elétrico?

Eu apreciaria qualquer explicação didática do código, para que eu possa lembrar do meu elisp esquecido.

Responder1

Isso só deve acontecer em um terminal de texto (onde "colar" acaba simplesmente enviando o texto caractere por caractere para o Emacs como se você tivesse digitado esses caracteres).

Desde o Emacs-25, isso não deve mais ser um problema porque ele usa o suporte "colar entre colchetes" do terminal de texto (de forma que o terminal envie sequências de escape especiais antes e depois do texto colado).

Também não há necessidade de configurá-lo: "simplesmente funciona".

informação relacionada