5

バッファーが読み取り専用の場合、キー "n" と "p" を "Cn" と "Cp" と同じように使用しようとしています (はい、私は怠け者です)。

.emacs ファイルでこのコードを使用します。

(when buffer-read-only (local-set-key "n" 'next-line))
(when buffer-read-only (local-set-key "p" 'previous-line))

これは、バッファが自動的に読み取り専用に設定されている場合 (つまり、w3m 内のように) は機能しますが、Cx Cq (toggle-read-only) を実行すると機能しないようです。それは言い続けている

Buffer is read-only: #<buffer buffername>

他の方法でこれがどのように機能するかはわかりません...

4

1 に答える 1

6

キーの定義は のロード中に評価されますが.emacs、読み取り専用ファイルにアクセスするたびに、および が実行されるたびに評価する必要がありますtoggle-read-only。さらに、バッファが再び読み書き可能になるたびに、それらを元に戻す必要があります。

view-modeこれらすべてを実装する代わりに、Emacsが読み取り専用バッファーでの自動アクティブ化を既にサポートしているという事実を利用できます。必要なのは、その機能を有効にして、でキーを定義することだけですview-mode-map

(setq view-read-only t)     ; enter view-mode for read-only files
(define-key view-mode-map "n" 'next-line)
(define-key view-mode-map "p" 'previous-line)
于 2013-04-02T15:48:28.633 に答える