buffer anônimo inicial do Emacs

0

Eu costumava ter no meu arquivo emacs .init.el as seguintes duas linhas usadas para inibir a tela inicial e para mudar para um buffer anônimo

(setq inhibit-splash-screen t) (switch-to-buffer "**")

Recentemente, comecei a usar emacs --daemon e emacsclient e meu buffer inicial está definido como *scratch* . Eu não quero interação Lisp e a mensagem irritante do scratch, então eu escrevi a seguinte linha no meu init.el

(setq initial-buffer-choice "**")

O problema é que o novo buffer inicial é diferente do tradicional ** buffer. Na verdade, ao fechar o emacs, sou solicitado a salvar um arquivo chamado ** , embora não queira esse tipo de comportamento, só quero meu tradicional buffer ** anônimo.

Eu sei que posso definir manualmente initial-major-mode e initial-scratch-message e continuar usando *scratch* , mas eu realmente gostaria de usar ** .

Como posso resolver este problema?

    
por Katjun 15.12.2017 / 17:37

1 resposta

0

Da documentação de initial-buffer-choice :

If the value is nil and ‘inhibit-startup-screen’ is nil, show the startup screen. If the value is a string, switch to a buffer visiting the file or directory that the string specifies. If the value is a function, call it with no arguments and switch to the buffer that it returns. If t, open the ‘scratch’ buffer.

Você definiu o valor como uma string, então ele troca um buffer visitando o arquivo que a string especifica .

Você pode definir o valor como uma função retornando o buffer que você quer selecionar:

(setq initial-buffer-choice (lambda () (get-buffer-create "**")))

Note que usei get-buffer-create , porque se o buffer não existir, a função passada retornará nil , o que pode causar problemas ao criar novos quadros.

    
por 04.02.2018 / 16:27

Tags