2

Emacs でインデントの問題を解決しようとしておりsh-mode( の後に二重のインデントが表示されます)、手動でインデントを設定してから、実行してインデントを自動的に構成thenできることがわかりました。C-c >

ただし、この構成は現在のセッションにのみ適用され、自動構成の結果として変更された変数が見つからないようです。(ただし、機能しました:インデントは一貫して私が望むものです。)実行すると、「ローカルルールセット」と表示されますが、どのローカルルールが設定されているかはわかりません。

もちろん、Emacs を再起動すると、ローカル構成が失われ、auto-config コマンドを再度実行する必要があります。

このサイトで、変数とその値の一覧表示に関する多くの質問を見つけましたが、現在のセッションでのみ変更されたものを一覧表示する方法がわかりません。この投稿を使用して、C-c >コマンドを実行して出力を比較する前後に変数をダンプしました。明らかに違うものはありません。

したがって、私の質問は2つあると思います。

  1. セッション変数が「ローカル ルール」の意味するものである場合、どの変数が設定されているかを調べるにはどうすればよいですか?
  2. 「ローカルルール」が別の意味である場合、それは何ですか?また、どうすればそれらの変更を自分の~/.emacsファイルに転送できますか?
4

2 に答える 2

0

これは答えというよりも不完全な回避策ですが、それは始まりです!

アイデアは、シェル スクリプトが読み込まれるとすぐに sh-learn-buffer-indent をトリガーすることです。~/.emacs以下をファイルに追加します。

(add-hook 'sh-set-shell-hook 'sh-learn-buffer-indent)

いくつかの重要な注意事項:

  1. シェル スクリプトがロードされたときに、既に正しくフォーマットされていると想定しています。
  2. 大きなファイルの場合は遅くなる可能性があります。

(これは明らかに言及されており、私が提出したバグレポートsh-script.elを介して Noam Postavsky によって注意を喚起されました。)

于 2017-08-24T13:54:40.923 に答える