Comment mettre en commentaire une ligne de variable dans une liste de variables locale

9

Dans un fichier python, j'ai

# Local Variables:
# python-shell-interpreter: "python3"
# python-shell-virtualenv-path: "~/.virtualenvs/datascience"
# leo-python-args-to-send: "-f fqanalysis.txt"
# End:

Pendant quelques jours, je veux utiliser le fichier python sans le virtualenv spécifié, je voudrais donc commenter le paramètre de ligne python-shell-virtualenv-path, de sorte que la prochaine fois que j'ouvrirai le fichier python dans emacs python-shell-virtualenv-pathconserve sa valeur globale.

j'ai essayé

# ;;python-shell-virtualenv-path: "~/.virtualenvs/datascience"

et

## python-shell-virtualenv-path: "~/.virtualenvs/datascience"

mais à l'ouverture du fichier python, j'obtiens toujours l'erreur

File mode specification error: (error "Malformed local variable line: ...)

Comment commenter correctement la ligne de variable locale?

halloleo
la source
Lorsque je sélectionne la ligne contenant # python-shell-virtualenv-path: "~/.virtualenvs/datascience"et applique la commande comment-region, le résultat est # # python-shell-virtualenv-path: "~/.virtualenvs/datascience". Je ne sais pas si c'est la bonne façon de commenter les variables locales.
Nom

Réponses:

7

Sur la base d'une vérification rapide de C-hig (emacs) Specifying File Variables, je suis raisonnablement sûr que vous ne pouvez pas.

Je pense que vos options sont:

  • Déplacez le commentaire en dehors du bloc de variables locales.
  • Modifiez la variable (par exemple, donnez-lui un préfixe comme DISABLED:) de telle sorte que la valeur soit simplement attribuée à une variable que rien n'utilise.

Éditer:

Si vous ne voulez pas avoir à approuver un tas de DISABLED:foovariables pour safe-local-variable-values, vous pouvez adapter l'approche pour profiter du fait que les entrées successives encombrent les entrées précédentes si le même nom de variable est utilisé. Quelque chose comme:

# Local Variables:
# #: python-shell-interpreter: "python3"
# #: python-shell-virtualenv-path: "~/.virtualenvs/datascience"
# leo-python-args-to-send: "-f fqanalysis.txt"
# #: <comment>
# End:

Ce ne sont toujours pas des commentaires, mais cela signifie que vous n'avez qu'une seule variable locale nommée #(ou \#dans ce cas) avec la valeur <comment>, et Emacs ne vous interrogera pas sur les précédentes; vous pouvez donc réutiliser cette approche dans d'autres fichiers et ne vous retrouver qu'avec une seule safe-local-variable-valuesentrée pour toutes ces valeurs «commentées», tant que cette #: <comment>entrée est toujours la dernière.

(YMMV; cela n'est que légèrement testé et est évidemment une solution de contournement. Notez également que vous n'avez pas besoin d'utiliser le caractère de commentaire réel, car il s'agit en fait d'un nom de variable, vous pouvez donc l'appeler comme vous le souhaitez, tant qu'il n'est pas susceptible d'entrer en conflit avec tout nom de variable `` correct ''.)

Vous pourriez abandonner la nécessité d'une #: <comment>entrée, mais évitez tout de même de vous poser des questions si vous ajoutez ce qui suit à votre configuration:

(put '\# 'safe-local-variable (lambda (_) t))

Qui dit "TOUTES les valeurs de la variable #sont sûres.

phils
la source