Come commentare una riga variabile in un elenco di variabili locali


9

In un file Python ho

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

Per un paio di giorni voglio usare il file python senza virtualenv specificato, quindi vorrei commentare l'impostazione della linea python-shell-virtualenv-path, in modo che la prossima volta che apro il file python in emacs python-shell-virtualenv-pathmantenga il suo valore globale.

Provai

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

e

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

ma aprendo il file Python ottengo sempre l'errore

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

Come posso commentare correttamente la riga della variabile locale?


Quando seleziono la riga contenente # python-shell-virtualenv-path: "~/.virtualenvs/datascience"e applico il comando comment-region, il risultato è # # python-shell-virtualenv-path: "~/.virtualenvs/datascience". Non so se sia il modo corretto di commentare le variabili locali.
Nome

Risposte:


7

Sulla base di un rapido controllo di C-hig (emacs) Specifying File Variables, sono ragionevolmente sicuro che non puoi.

Penso che le tue opzioni siano:

  • Sposta il commento fuori dal blocco delle variabili locali.
  • Cambia la variabile (es. Dagli un prefisso simile DISABLED:) in modo tale che il valore sia semplicemente assegnato a una variabile che nulla usa.

Modificare:

Se non si desidera approvare un gruppo di DISABLED:foovariabili safe-local-variable-values, è possibile adattare l'approccio per trarre vantaggio dal fatto che le voci successive bloccano quelle precedenti se si utilizza lo stesso nome di variabile. Qualcosa di simile a:

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

Questi non sono ancora commenti, ma significa avete solo una singola variabile locale chiamata #(o \#in questo caso) con il valore <comment>, e Emacs non vi relativo a quelle precedenti; così puoi riutilizzare questo approccio in altri file e finire con una sola safe-local-variable-valuesvoce per tutti questi valori "commentati", purché quella #: <comment>voce sia sempre l'ultima.

(YMMV; questo è solo leggermente testato ed è ovviamente una soluzione alternativa per l'hacking. Nota anche che non è necessario utilizzare il carattere di commento effettivo, poiché in realtà è un nome variabile, quindi puoi chiamarlo come vuoi, purché non lo sia probabilmente in conflitto con qualsiasi nome di variabile 'appropriato'.)

Potresti abbandonare la necessità di #: <comment>inserire una voce ma evitare comunque di fare domande se hai aggiunto quanto segue alla tua configurazione:

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

Che dice "TUTTI i valori per la variabile #sono sicuri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.