Como faço para parar o emacs de me perguntar se eu quero carregar um arquivo grande?

18

Quando abro um arquivo grande no emacs, recebo uma mensagem dizendo 'o arquivo foo.bar é grande; realmente aberto?

Como faço para parar o emacs de me fazer essa pergunta o tempo todo? Em outras palavras, se eu abrir o arquivo, quero abri-lo, por maior que seja.

Tola Odejayi
fonte
Resposta está disponível aqui: superuser.com/questions/508498/... (setq nil-grande arquivo de alerta-limite)
R Perrin
A resposta de Gilles abaixo é mais completa e ensinará como resolver seus próximos problemas.
jrouquie

Respostas:

29

Via manual

No manual (que você pode navegar no Emacs em Info:) C-h i m Emacs RET: vá para o capítulo sobre arquivos e depois para a seção sobre como visitar (ou seja, abrir) arquivos. Procure a palavra "grande":

Se você tentar visitar um arquivo maior que large-file-warning-threshold(o padrão é 10000000, que é cerca de 10 megabytes), o Emacs solicita sua confirmação primeiro. Você pode responder y para continuar visitando o arquivo.

Esta não é a história completa, você pode encontrar mais informações consultando a documentação de large-file-warning-threshold( C-h v large-file-warning-threshold RET).

O limite de aviso de arquivo grande é uma variável definida em files.el.
Seu valor é 10000000

Tamanho máximo do arquivo acima do qual uma confirmação é solicitada.
Quando nulo, nunca solicite confirmação.

Para definir o valor, você pode usar a interface Personalizar (há um link na tela de ajuda para a variável) ou colocar a seguinte instrução no seu .emacs:

(setq large-file-warning-threshold nil)

Digite C-M-xenquanto o ponto estiver nessa linha para executá-lo agora.

Na interface Personalizar

Em "Arquivos", em "Localizar arquivos", existe uma configuração "Limite de aviso de arquivos grandes". Você pode configurá-lo para um valor alto, embora em uma máquina de 32 bits possa encontrar o limite rígido relativamente pequeno do Emacs em tamanhos inteiros.

Lendo a fonte

Veja a função para abrir arquivos: C-h k C-x C-f(ou C-h f find-file RET). Clique em files.elpara procurar o arquivo de origem (você deve ter as fontes Lisp instaladas). Não leia o código - é muito grande -, mas procure partes da mensagem nesse arquivo. Você encontrará

(defun abort-if-file-too-large (size op-type filename)
  "If file SIZE larger than `large-file-warning-threshold', allow user to abort.
OP-TYPE specifies the file operation being performed (for message to user)."
  (when (and large-file-warning-threshold size
       (> size large-file-warning-threshold)
       (not (y-or-n-p
         (format "File %s is large (%dMB), really %s? "
             (file-name-nondirectory filename)
             (/ size 1048576) op-type))))
      (error "Aborted")))

A mensagem é exibida apenas quando algumas condições são atendidas. A primeira condição é large-file-warning-threshold(interpretada como booleana), ou seja, large-file-warning-thresholddeve ser nula. Portanto, você pode desativar a mensagem configurando essa variável para nil. (Você pode confirmar que é uma variável global observando sua definição no mesmo arquivo - é um item personalizável, e a documentação explica como é usada se você não estiver familiarizado o suficiente com o Lisp e apenas descobrir que a variável é importante em alguns caminho.)

Gilles 'SO- parar de ser mau'
fonte
Estou impressionado com os detalhes e as referências que você forneceu. Muito obrigado, Gilles.
Tola Odejayi