ローカル変数リストの変数行をコメント化する方法


9

私が持っているPythonファイルで

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

数日間、virtualenvを指定せずにpythonファイルを使用したいので、行の設定をコメントアウトしてpython-shell-virtualenv-path次にemacsでpythonファイルを開いたときにpython-shell-virtualenv-path、グローバル値が保持されるようにします。

私は試した

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

そして

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

しかし、pythonファイルを開くと、常にエラーが発生します

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

ローカル変数の行を正しくコメントアウトするにはどうすればよいですか?


を含む行を選択し# python-shell-virtualenv-path: "~/.virtualenvs/datascience"てコマンドを適用するcomment-regionと、結果はになり# # python-shell-virtualenv-path: "~/.virtualenvs/datascience"ます。ローカル変数をコメント化する正しい方法であるかどうかはわかりません。
名前

回答:


7

の簡単なチェックに基づいてC-hig (emacs) Specifying File Variables、私はあなたができないことを合理的に確信しています。

私はあなたのオプションは次のとおりだと思います:

  • コメントをローカル変数ブロックの外に移動します。
  • DISABLED:何も使用しない変数に値が割り当てられるように、変数を変更します(たとえば、のようにプレフィックスを付けます)。

編集:

の一連のDISABLED:foo変数を承認する必要がないsafe-local-variable-values場合は、同じ変数名を使用すると、連続するエントリが以前のエントリを上書きするという事実を利用するアプローチを採用できます。何かのようなもの:

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

これらはまだコメントではありませんが、名前が付けられた(またはこのインスタンスでは)値が1 だけのローカル変数があり、Emacsは以前の変数についてクエリを実行しません。そのため、このアプローチを他のファイルで再利用し、そのようなすべての「コメント」された値の単一のエントリのみで終わる可能性があります(そのエントリが常に最後に来る限り)。#\#<comment>safe-local-variable-values#: <comment>

(YMMV;これは簡単にテストされただけで、明らかにハック回避策です。実際の変数名なので、実際のコメント文字を使用する必要がないことにも注意してください。そうでない限り、好きなように呼び出すことができます「適切な」変数名と競合する可能性があります。)

#: <comment>エントリの必要性をなくすことができますが、構成に以下を追加した場合は質問されません。

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

「変数のすべての値#は安全です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.