Como desativo completamente toda a indentação automática no Emacs? Preciso desabilitá-lo pelo menos para o modo Fundamental, mas estou bem com ele sendo desabilitado globalmente para a sessão atual.
Por favor, leia o restante desta pergunta antes de declarar uma duplicata. Todas as outras respostas que encontrei são para uma desativação muito mais direcionada do recuo. Eu realmente quero desativar completamente todo o recuo automático durante toda a sessão.
Definir electric-layout-mode
para nil
não funciona.
Detalhes
Às vezes, gosto de compor grandes mensagens de confirmação do Git com meu editor de texto ASCII do Windows. Essas mensagens freqüentemente têm listas de marcadores, blocos de código ou outras coisas em que a formatação precisa no meu documento de origem é significativa. Minha base de código está no Linux e eu me conecto à caixa usando um cliente SSH somente texto. Quando o Git entra no Emacs para editar a mensagem de confirmação, quero poder copiar a mensagem de confirmação de origem na área de transferência do Windows e colá-la usando os comandos de colar do Windows. Da perspectiva do Emacs, estou digitando o que foi encontrado no arquivo de texto do Windows. Infelizmente, quando o Emacs vê linhas recuadas, ele adiciona sua própria indentação automática, então recebo esse enorme triângulo de espaços em branco ao longo da borda esquerda do buffer.
Estou usando o GNU Emacs 24.3.1.
Gambiarra
Minha solução atual é transferir meu arquivo de texto do Windows para um sistema de arquivos montado pelo meu host Linux, carregar o arquivo no Emacs e usar kill e yank para transferir o conteúdo. Isso é um pouco desajeitado.
Exemplo
Aqui está um exemplo de bloco de texto:
a
- b
c
d
Aqui está como aparece quando colo isso no Emacs-under-ssh através da pasta MSWin:
a
- b
c
d
Se eu pressionar C-h l
depois de colar, eis o que vejo. Observe que as novas linhas são inseridas usando C-j
, não RET
.
a C-j C-j SPC SPC - SPC b C-j SPC SPC SPC SPC c C-j
SPC SPC SPC SPC d C-j C-h l
:set paste
? Isso basicamente diz "não toque no texto colado de forma alguma". O que também inclui recuo automático.
hack-local-variables-hook
- para desfazer essencialmente o que outros modos principais configuram como parte de seu inicialização padrão.fundamental-mode
é apenas uma pequena função internasimple.el
- ou seja(kill-all-local-variables) (run-mode-hooks)
,.M-x find-function RET fundamental-mode RET
- você pode modificar / criar o seu próprio, conforme necessário; no entanto, se você alterar o nome, ele não será usado por algumas funções - portanto, considere manter o mesmo nome.