Eu entendo que nil
, 0
e / ou -1
são usados para desativar alguns recursos e t
, 1
e / ou +1
são usados para habilitar algumas características. Ao atribuir variáveis ou ativar / desativar modos secundários, qual devo escolher?
Eu já vi todas essas variações usadas em um ponto ou outro. Isso me leva a pensar se há realmente uma diferença entre eles. Vi que às vezes usar 0
não funciona para mim, enquanto nil
funciona. Existem diferenças de onde eles são usados?
Respostas:
TL; DR
Antes de definir qualquer variável, você deve saber como essa variável deve ser interpretada. Da mesma forma, antes de chamar qualquer função (incluindo as usadas para alternar entre modos menores), você deve saber como os argumentos dessa função são interpretados.
Use C-hfe C-hvconsulte a documentação da função ou variável em questão. Ele deve especificar os valores que são esperados.
"Não nulo" significa literalmente qualquer coisa que não seja
nil
. Isso inclui0
números negativos.Modos menores
Vamos dar um exemplo específico. Digite C-hf
blink-cursor-mode
e pressione RETpara ver a documentação da função parablink-cursor-mode
:Podemos ativar o modo Cursor intermitente de qualquer uma das seguintes maneiras:
Observe que um argumento de
t
funcionará, mesmo que a sequência de documentos não o tenha mencionado especificamente. Embora esse seja geralmente o caso, sua aposta mais segura é usar o que a sequência de documentos diz para você usar, o que, nesse caso, é um valor positivo.Além disso, observe que um argumento de
nil
funcionará. Eu recomendaria fortemente contranil
dessa maneira, porque torna sua intenção pouco clara. Se eu estivesse examinando seu código lisp e vi umnil
argumento, presumiria que você desejava desativar o modo secundário.Também podemos desativar
blink-cursor-mode
das seguintes maneiras:Observe novamente que essa não
nil
é uma das maneiras de desativar esse modo secundário. Isso é verdade em quase todos os modos menores que você encontrará.Variáveis
Agora vamos ver um exemplo de variável. Digite C-hv
truncate-lines
e pressione RETpara consultar a documentação da variáveltruncate-lines
:Você pode ativar o truncamento de qualquer uma das seguintes maneiras:
Pode surpreendê-lo que o
0
e o-1
irá funcionar. Novamente, eu recomendaria não usá-los, pois isso torna suas intenções pouco claras.A única maneira de desativar o truncamento é esta:
Em outras palavras, você pode definir
truncate-lines
igual a números, letras, strings, listas, ou qualquer outra coisa que você quiser, desde que não avalia anil
ele vai permitir truncagem. (Mas você realmente deve ficar comt
ou1
).fonte
Todas essas são coisas diferentes. 0, 1 e -1 são números diferentes;
nil
é um símbolo.Cada um deles é usado em todo o lugar, para muitas coisas diferentes. Para descobrir para que cada um é usado em um contexto específico , consulte o documento desse contexto . E isso inclui contextos de ativar ou desativar diferentes modos, ativar e desativar diferentes coisas usando variáveis e muitos outros contextos.
Em suma:
O documento para um determinado modo geralmente informa como ativá-lo e desativá-lo. Se ele lhe diz para usar 1 ou -1 ou
nil
ou nãonil
para alguma coisa, então é isso que significa. Existem algumas regras gerais para ativar e desativar os modos (interativamente e a partir do código Lisp). Mas parece que você realmente precisa começar com algumas informações gerais.Consulte o documento do Emacs para saber como solicitar ajuda e outras informações do próprio Emacs : como verificar o valor de uma variável, como ver o documento de uma variável ou função (incluindo uma função que ativa / desativa um modo) , e assim por diante.
Você pode começar usando
C-h C-h
( Ctrl-h Ctrl-h), para aprender sobre o sistema de ajuda do Emacs. E construir a partir daí.C-h r
coloca você no manual do Emacs. Experimente o tutorial Emacs:C-h t
. E verifique o Emacs Wiki Novato página ea página sobre LearningEmacs .Para começar a aprender sobre o Emacs Lisp:,
C-h i
escolha o manual nomeadoEmacs Lisp Intro
e comece a ler. E verifique a página Wiki do Emacs sobre o Learning Emacs Lisp .fonte
nil
é o equivalente lógico de falso et
verdadeiro e o resto são apenas números. Mas eu não tinha certeza de que contextos eles eram geralmente usado em.