Bagaimana mengomentari baris variabel dalam daftar variabel lokal

9

Dalam file python yang saya miliki

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

Selama beberapa hari saya ingin menggunakan file python tanpa virtualenv yang ditentukan, jadi saya ingin mengomentari pengaturan garis python-shell-virtualenv-path, sehingga lain kali saya membuka file python di emacs python-shell-virtualenv-pathmenjaga nilai globalnya.

Saya mencoba

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

dan

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

tetapi saat membuka file python saya selalu mendapatkan kesalahan

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

Bagaimana cara saya mengomentari baris variabel lokal dengan benar?

halo
sumber
Ketika saya memilih baris yang berisi # python-shell-virtualenv-path: "~/.virtualenvs/datascience"dan menerapkan perintah comment-region, hasilnya adalah # # python-shell-virtualenv-path: "~/.virtualenvs/datascience". Saya tidak tahu apakah ini cara yang benar untuk berkomentar variabel lokal.
Sebutkan

Jawaban:

7

Berdasarkan pemeriksaan cepat C-hig (emacs) Specifying File Variables, saya cukup yakin Anda tidak bisa.

Saya pikir pilihan Anda adalah:

  • Pindahkan komentar di luar blok variabel lokal.
  • Ubah variabel (mis. Berikan awalan seperti DISABLED:) sehingga nilainya hanya ditetapkan untuk variabel yang tidak digunakan.

Edit:

Jika Anda tidak ingin harus menyetujui banyak DISABLED:foovariabel untuk safe-local-variable-values, Anda bisa menyesuaikan pendekatan untuk mengambil keuntungan dari fakta bahwa entri berturut-turut clobber sebelumnya jika nama variabel yang sama digunakan. Sesuatu seperti:

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

Ini masih bukan komentar, tetapi itu berarti Anda hanya memiliki satu variabel lokal bernama #(atau \#dalam hal ini) dengan nilai <comment>, dan Emacs tidak akan meminta Anda tentang yang sebelumnya; jadi Anda bisa menggunakan kembali pendekatan ini di file lain dan hanya berakhir dengan satu safe-local-variable-valuesentri untuk semua nilai 'komentar' tersebut, selama #: <comment>entri itu selalu datang terakhir.

(YMMV; ini hanya diuji ringan, dan jelas merupakan solusi peretasan. Perhatikan juga bahwa Anda tidak perlu menggunakan karakter komentar yang sebenarnya, karena itu sebenarnya nama variabel, sehingga Anda dapat menyebutnya apa pun yang Anda inginkan, asalkan tidak kemungkinan akan bertentangan dengan nama variabel yang 'pantas'.)

Anda bisa menghilangkan kebutuhan untuk #: <comment>entri tetapi masih menghindari pertanyaan yang diajukan jika Anda menambahkan yang berikut ke konfigurasi Anda:

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

Yang mengatakan "SEMUA nilai untuk variabel #aman.

phils
sumber