0

Ubuntu 10.10 で GNU Emacs 23.1.1 を使用しています。

.emacs に従う必要があります。

(custom-set-variables
  '(cua-mode t nil (cua-base))
  '(inhibit-startup-screen t)
)

(show-paren-mode 1)
(setq show-paren-delay 0)

;; perl mode stuff
(fset 'perl-mode 'cperl-mode)
(setq cperl-indent-level 4
      cperl-close-paren-offset -4
      cperl-continued-statement-offset 0
      cperl-indent-parens-as-block t
      cperl-tab-always-indent t
      cperl-invalid-face nil
)

$ emacs -nwタブのインデントを行うと、正常に機能します。タブのインデントを使用して GUI バージョンを起動すると、$ emacs機能しません。スペースのインデントしか得られません。

GUIでもタブのインデントを取得するにはどうすればよいですか?

cperl conf は emacswiki から取られました

私が持っているemacsパッケージ:

$ dpkg -l | grep emacs
ii  emacs                                23.1+1-4ubuntu7.2+maverick1                       The GNU Emacs editor (metapackage)
ii  emacs-goodies-el                     33.6ubuntu1                                       Miscellaneous add-ons for Emacs
ii  emacs-snapshot                       1:20090909-1                                      The GNU Emacs editor (development snapshot)
ii  emacs-snapshot-bin-common            1:20090909-1                                      The GNU Emacs editor's shared, architecture dependent files
ii  emacs-snapshot-common                1:20090909-1                                      The GNU Emacs editor's common infrastructure
ii  emacs23                              23.1+1-4ubuntu7.2+maverick1                       The GNU Emacs editor (with GTK+ user interface)
ii  emacs23-bin-common                   23.1+1-4ubuntu7.2+maverick1                       The GNU Emacs editor's shared, architecture dependent files
ii  emacs23-common                       23.1+1-4ubuntu7.2+maverick1                       The GNU Emacs editor's shared, architecture independent infrastructure
ii  emacsen-common                       1.4.19ubuntu1                                     Common facilities for all emacsen

編集:申し訳ありませんが、動作を正しく研究していないことに気付きました。gui と -nw の両方で、既にタブでインデントされているファイルを編集するとタブが使用されますが、新しいファイルを編集するとスペースでインデントされます。

4

1 に答える 1

0

まず、起動時に*Messages*とのバッファを確認します。*Warnings*そこに何が失敗しているのかについてのヒントがあるかもしれません。特に、*Messages*emacs がロードしているすべてのスタートアップ ファイルを一覧表示する必要があります。Ubuntu では、これにはファイル/etc/emacsだけでなく.emacs.

それでも問題が解決しない場合は、emacs デバッガーで対話的に .emacs を実行してみてください。で emacs を開始しemacs -nw -q、.emacs をバッファーにロードします。実行M-x edebug-all-formsして実行しますM-x eval-buffer。スペースを繰り返し押して、ファイルをステップ実行します。

編集:indent-tabs-mode両方の環境で perl バッファーの値を確認してください。これは、タブ文字またはスペースでインデントするかどうかを制御するために使用されます。追加(setq-default indent-tabs-mode t)すると、emacs は強制的にタブ文字でインデントされます。

于 2011-05-26T21:22:52.563 に答える