Je comprends cela nil
, 0
et / ou -1
sont utilisés pour désactiver certaines fonctionnalités et t
, 1
et / ou +1
sont utilisés pour activer certaines fonctionnalités. Lors de l'attribution de variables ou de l'activation / désactivation de modes mineurs, que dois-je choisir?
J'ai vu toutes ces variations utilisées à un moment ou à un autre. Cela m'amène à me demander s'il y a réellement une différence entre eux. J'ai vu que parfois, l'utilisation 0
ne fonctionne pas pour moi, alors que nil
oui. Existe-t-il des différences de lieu d'utilisation?
Réponses:
TL; DR
Avant de définir une variable, vous devez savoir comment cette variable doit être interprétée. De même, avant d'appeler une fonction (y compris celles utilisées pour basculer entre les modes mineurs), vous devez savoir comment les arguments de cette fonction sont interprétés.
Utilisez C-hfet C-hvpour consulter la documentation de la fonction ou variable en question. Il doit spécifier les valeurs attendues.
"Non nul" signifie littéralement tout ce qui ne l'est pas
nil
. Cela inclut0
les nombres négatifs.Modes mineurs
Prenons un exemple spécifique. Tapez C-hf
blink-cursor-mode
et appuyez RETpour voir la documentation de la fonction pourblink-cursor-mode
:Nous pouvons activer le mode Curseur Blink de l'une des manières suivantes:
Notez qu'un argument de
t
va fonctionner, même si la chaîne doc ne le mentionne pas spécifiquement. Bien que ce soit souvent le cas, votre pari le plus sûr est d'utiliser ce que la chaîne de doc vous dit d'utiliser, ce qui dans ce cas est une valeur positive.Notez également qu'un argument de
nil
fonctionnera. Je déconseille fortementnil
de cette façon car cela rend votre intention peu claire. Si je survolais votre code lisp et que je voyais unnil
argument, je supposerais que vous vouliez désactiver le mode mineur.Nous pouvons également désactiver
blink-cursor-mode
de la manière suivante:Notez à nouveau que ce
nil
n'est pas l' une des façons de désactiver ce mode mineur. Cela est vrai de presque tous les modes mineurs que vous rencontrerez.Variables
Voyons maintenant un exemple de variable. Tapez C-hv
truncate-lines
et appuyez RETpour consulter la documentation de la variabletruncate-lines
:Vous pouvez activer la troncature de l'une des manières suivantes:
Cela peut vous surprendre que le
0
et le-1
fonctionnent. Encore une fois, je vous déconseille de les utiliser car cela rend vos intentions peu claires.La seule façon de désactiver la troncature est la suivante:
En d'autres termes, vous pouvez définir
truncate-lines
un nombre égal à des chiffres, des lettres, des chaînes, des listes ou tout ce que vous voulez, tant qu'il ne sera pas évalué,nil
il activera la troncature. (Mais vous devriez vraiment vous en tenir àt
ou1
).la source
Ce sont toutes des choses différentes. 0, 1 et -1 sont des nombres différents;
nil
est un symbole.Ils sont chacun utilisés partout, pour de nombreuses choses différentes. Pour savoir à quoi chacun est utilisé dans un contexte particulier , consultez la documentation de ce contexte . Et cela inclut des contextes d'activation ou de désactivation de différents modes, l'activation et la désactivation de différentes choses à l'aide de variables, et de nombreux autres contextes.
En somme:
La doc pour un mode donné vous indique généralement comment l'activer et le désactiver. S'il vous dit d'utiliser 1 ou -1 ou
nil
ou nonnil
pour quelque chose, c'est ce que cela signifie. Il existe des règles générales pour activer et désactiver les modes (de manière interactive et à partir du code Lisp). Mais il semble que vous ayez vraiment besoin de commencer par obtenir des informations générales.Consultez le doc Emacs pour savoir comment demander de l'aide et d'autres informations à Emacs lui - même : comment vérifier la valeur d'une variable, comment voir le doc d'une variable ou d'une fonction (y compris une fonction qui active / désactive un mode) , etc.
Vous pouvez commencer par utiliser
C-h C-h
( Ctrl-h Ctrl-h) pour en savoir plus sur le système d'aide d'Emacs. Et construisez à partir de là.C-h r
vous met dans le manuel Emacs. Essayez le tutoriel Emacs:C-h t
. Et consultez la page Emacs Wiki Newbie et la page sur LearningEmacs .Pour commencer à découvrir Emacs Lisp:,
C-h i
choisissez le manuel nomméEmacs Lisp Intro
et commencez à lire. Et consultez la page Wiki d'Emacs sur l' apprentissage d'Emacs Lisp .la source
nil
l'équivalent logique de faux ett
de vrai et le reste ne sont que des nombres. Mais je ne savais pas dans quels contextes ils étaient habituellement utilisés.