Como comentar uma linha de variável em uma lista de variáveis ​​local

9

Em um arquivo python eu tenho

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

Por alguns dias, quero usar o arquivo python sem o virtualenv especificado, portanto, gostaria de comentar a configuração da linha python-shell-virtualenv-path, para que da próxima vez que eu abrir o arquivo python no emacs python-shell-virtualenv-pathmantenha seu valor global.

eu tentei

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

e

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

mas ao abrir o arquivo python eu sempre recebo o erro

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

Como faço para comentar a linha de variável local corretamente?

halloleo
fonte
Quando seleciono a linha que contém # python-shell-virtualenv-path: "~/.virtualenvs/datascience"e aplico o comando comment-region, o resultado é # # python-shell-virtualenv-path: "~/.virtualenvs/datascience". Não sei se é a maneira correta de comentar variáveis ​​locais.
Name

Respostas:

7

Com base em uma verificação rápida C-hig (emacs) Specifying File Variables, tenho quase certeza de que você não pode.

Eu acho que suas opções são:

  • Mova o comentário para fora do bloco de variáveis ​​locais.
  • Altere a variável (por exemplo, dê-lhe um prefixo DISABLED:) de forma que o valor seja simplesmente atribuído a uma variável que nada usa.

Editar:

Se você não quiser aprovar várias DISABLED:foovariáveis safe-local-variable-values, poderá adaptar a abordagem para tirar vantagem do fato de que entradas sucessivas desbotam as anteriores, se o mesmo nome de variável for usado. Algo como:

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

Ainda não são comentários, mas significa que você só tem uma única variável local chamada #(ou \#nesse caso) com o valor <comment>, e o Emacs não consultará você sobre as anteriores; para que você possa reutilizar essa abordagem em outros arquivos e acabar com uma única safe-local-variable-valuesentrada para todos esses valores 'comentados', desde que essa #: <comment>entrada sempre chegue por último.

(YMMV; isso é apenas levemente testado e obviamente é uma solução alternativa para invasões. Observe também que você não precisa usar o caractere de comentário real, pois é na verdade um nome de variável, para que você possa chamá-lo como quiser, desde que não seja provável conflito com qualquer nome de variável 'adequado'.)

Você pode deixar de lado a necessidade de uma #: <comment>entrada, mas ainda evitar perguntas, se tiver adicionado o seguinte à sua configuração:

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

Que diz "TODOS os valores para a variável #são seguros.

phils
fonte