3

GTKツールキットでemacs23.2を使用しています。次のconfigure-paramsを使用してソースからemacsをビルドしました:

./configure --prefix=/usr --without-makeinfo --without-sound

これは、次の構成でemacsを構築します。

  ビルドプロセスはどこでソースコードを見つける必要がありますか?/ home / **** / incoming / emacs-23.2
  Emacsはどのオペレーティングシステムとマシン記述ファイルを使用する必要がありますか?
        `s /gnu-linux.h'および`m/ intel386.h'
  emacsはどのコンパイラで構築する必要がありますか?gcc -g -O2 -Wdeclaration-after-statement -Wno-pointer-sign  
  EmacsはGNUバージョンのmallocを使用する必要がありますか?はい
      (GNU CライブラリからのDougLeaの新しいmallocを使用します。)
  Emacsはバッファに再配置アロケータを使用する必要がありますか?はい
  Emacsはバッファー割り当てにmmap(2)を使用する必要がありますか?いいえ
  Emacsはどのウィンドウシステムを使用する必要がありますか?x11
  Emacsはどのツールキットを使用する必要がありますか?GTK
  X Windowsヘッダーファイルはどこにありますか?標準dirs
  X Windowsライブラリはどこにありますか?標準dirs
  Emacsは-lXaw3dを使用しますか?いいえ
  Emacsは-lXpmを使用しますか?はい
  Emacsは-ljpegを使用しますか?はい
  Emacsは-ltiffを使用しますか?はい
  Emacsはgifライブラリを使用していますか?はい-lgif
  Emacsは-lpngを使用しますか?はい
  Emacsは-lrsvg-2を使用しますか?いいえ
  Emacsは-lgpmを使用しますか?はい
  Emacsは-ldbusを使用しますか?はい
  Emacsは-lgconfを使用しますか?いいえ
  Emacsは-lfreetypeを使用しますか?はい
  Emacsは-lm17n-fltを使用しますか?いいえ
  Emacsは-lotfを使用しますか?はい
  Emacsは-lxftを使用しますか?はい
  Emacsはツールキットのスクロールバーを使用していますか?はい

私のOSはOpenSuSE11.1で、GTKのバージョンは2.14.4です。Up / Downキーを押しながら一般的なサイズ(約1000行)のファイル内をスクロールすると、emacsがほぼハングし、約50%のCPU負荷が発生します。私は次のプラグインを使用しています:

  • 私がやります
  • 亜麻
  • タブバー
  • auto-complete-config

でemacsを起動-qすると問題が修正されますが、プラグインがありません。私のどの部分が.emacsこの行動に責任があるのか​​理解できません。これが私のファイルの抜粋です.emacs

(イド語が必要)
(イドモード1)

('linumが必要)
(グローバル-アマモード1)

('タブバーが必要)
(タブバーモード1)
(tabbar-local-mode 0)
(tabbar-mwheel-mode 0)
(setq tabbar-buffer-groups-function
      (ラムダ()
        (リスト「すべて」)))
(global-set-key [M-left]'tabbar-backward)
(global-set-key [M-right]'tabbar-forward)

;; ツールバーを非表示にします(gtkなど)
(ツールバーモード-1)

;; マウススクロールの機能強化
(setq mouse-wheel-progressive-speed nil)
(setq mouse-wheel-scroll-amount'(5((shift)。5)((control)。nil)))

;; スマートホーム
(defun smart-beginning-of-line()
  「HOMEを押すと、カーソルを現在の行の最初のnone空白文字にジャンプさせます。」
  (相互の作用)
  (let((oldpos(point)))
    (インデントに戻る)
    (および(= oldpos(ポイント))
         (行頭)))))
('smart-beginning-of-line' CUA'moveを置く)
(global-set-key [home]'smart-beginning-of-line)

(カスタムセット変数
  ;; custom-set-variablesはCustomによって追加されました。
  ;; 手作業で編集すると、めちゃくちゃになることがありますのでご注意ください。
  ;; initファイルには、そのようなインスタンスが1つだけ含まれている必要があります。
  ;; 複数ある場合は、正しく機能しません。
 '(列番号モードt)
 '(cua-mode t nil(cua-base))
 '(カスタムバッファインデント4)
 '(delete-selection-mode nil)
 '(display-time-24hr-format t)
 '(display-time-day-and-date 1)
 '(表示時間モードt)
 '(global-font-lock-mode t nil(font-lock))
 '(inhibit-startup-buffer-menu t)
 '(inhibit-startup-screen t)
 '(pc-select-meta-moves-sexps t)
 '(pc-select-selection-keys-のみt)
 '(pc-selection-mode t nil(pc-select))
 '(スクロールバーモード(引用符で右))
 '(show-paren-mode t)
 '(標準インデント4)
 '(uniquify-buffer-name-style(quote forward)nil(uniquify)))

(setq-デフォルトのタブ幅4)
(setq-デフォルトのインデント-タブ-モードt)
(setq c-basic-offset 4)

;; 現在の行の強調表示
(global-hl-line-mode 1)
(set-face-background'hl-line "#E8F2FE")

(defalias'yes-or-no-p' y-or-np)
(表示時間)
(set-language-environment "Latin-1")

;; モードに応じてカーソルの色を変更する
(setq djcb-read-only-color "gray")
;; 有効な値は、t、nil、box、hollow、bar、(bar。WIDTH)、hbar、
;; (hbar。HEIGHT); set-cursor-typeのドキュメントを参照してください
(setq djcb-read-only-cursor-type'hbar)
(setq djcb-overwrite-color "red")
(setq djcb-overwrite-cursor-type'ボックス)
(setq djcb-normal-color "black")
(setq djcb-normal-cursor-type'bar)

(defun djcb-set-cursor-according-to-mode()
  「いくつかのマイナーモードに従って、カーソルの色とタイプを変更します。」
  (条件
    (バッファ読み取り専用
      (set-cursor-color djcb-read-only-color)
      (setqカーソルタイプdjcb-読み取り専用カーソルタイプ))
    (上書きモード
      (set-cursor-color djcb-overwrite-color)
      (setqカーソルタイプdjcb-overwrite-cursor-type))
    (t
      (set-cursor-color djcb-normal-color)
      (setqカーソルタイプdjcb-normal-cursor-type))))
(add-hook'post-command-hook' djcb-set-cursor-according-to-mode)

(define-key global-map'[C-right]' forward-sexp)
(define-key global-map'[C-left]' backward-sexp)
(define-keyグローバルマップ'[s-left]' windmove-left)
(define-keyグローバルマップ'[s-right]' windmove-right)
(define-keyグローバルマップ'[s-up]' windmove-up)
(define-keyグローバルマップ'[s-down]' windmove-down)
(define-key global-map'[S-down-mouse-1]' mouse-stay-and-copy)
(define-key global-map'[CMS-down-mouse-1]' mouse-stay-and-swap)
(define-keyグローバルマップ'[S-mouse-2]' mouse-yank-and-kill)
(define-key global-map'[CS-down-mouse-1]' mouse-stay-and-kill)
(define-key global-map "\ Ca"'mark-whole-buffer)

(カスタムセットフェイス
  ;; custom-set-facesはCustomによって追加されました。
  ;; 手作業で編集すると、めちゃくちゃになることがありますのでご注意ください。
  ;; initファイルには、そのようなインスタンスが1つだけ含まれている必要があります。
  ;; 複数ある場合は、正しく機能しません。
 '(default((t(:inherit nil:stipple nil:background "#f7f9fa":foreground "#191919":inverse-video nil:box nil:strike-through nil:overline nil:underline nil:slant normal:weight normal :height 98:width normal:foundry "unknown":family "DejaVu Sans Mono"))))
 '(font-lock-builtin-face((((class color)(min-colors 88)(background light))(:foreground "#642880":weight bold))))
 '(font-lock-comment-face((((class color)(min-colors 88)(background light))(:foreground "#3f7f5f"))))
 '(font-lock-constant-face((((class color)(min-colors 88)(background light))(:weight bold))))
 '(font-lock-doc-face((t(:inherit font-lock-string-face:foreground "#3f7f5f"))))
 '(font-lock-function-name-face((((class color)(min-colors 88)(background light))(:foreground "Black":weight bold))))
 '(font-lock-keyword-face((((class color)(min-colors 88)(background light))(:foreground "#7f0055":weight bold))))
 '(font-lock-preprocessor-face((t(:inherit font-lock-builtin-face:foreground "#7f0055":weight bold))))
 '(font-lock-string-face((((class color)(min-colors 88)(background light))(:foreground "#0000c0"))))
 '(font-lock-type-face((((class color)(min-colors 88)(background light))(:foreground "#7f0055":weight bold))))
 '(font-lock-variable-name-face((((class color)(min-colors 88)(background light))(:foreground "Black"))))
 '(minibuffer-prompt((t(:foreground "medium blue"))))
 '(mode-line((t(:background "#222222":foreground "White"))))
 '(tabbar-button((t(:inherit tabbar-default:foreground "dark red"))))
 '(tabbar-button-highlight((t(:inherit tabbar-default:background "white":box(:line-width 2:color "white")))))
 '(tabbar-default((t(:background "gray90":foreground "gray50":box(:line-width 3:color "gray90"):height 100))))
 '(tabbar-highlight((t(:underline t))))
 '(tabbar-selected((t(:inherit tabbar-default:foreground "blue":weight bold))))
 '(tabbar-separator((t nil)))
 '(tabbar-unselected((t(:inherit tabbar-default)))))

助言がありますか?よろしくお願いいたします。mefiX

4

3 に答える 3

5

私には大丈夫そうです。emacs -qで問題なく動作するという事実は、問題を解決できることを意味するため、重要です。

さて、誰かがあなたのファイルに基づいて簡単な診断を提供してくれることを願っていますが、そうでない場合(そして7時間経ちました)、いつでも標準の.emacs-debuggingの遅いコーチを試すことができます。それは特に楽しいことではありませんが、うまくいくでしょう。

あなたの喜びを選んだ:

(A)分割統治

.emacsを精神的に4つの部分に分割します。次に、4つの別々のトライアルemacs構成を作成して、問題の原因となっている四半期を特定します。最初はemacsの1/4、次は半分、次は4分の3、最後はすべてです。

emacs --no-site-file    # see if the problem is in your site-wide emacs init
emacs -q -l config1     # is it in the first quarter
emacs -q -l config2     # is it in the first half (i.e. the second quarter)
emacs -q -l config3     # is it in the third quarter
emads -q -l config4     # gotta be here, but test again to be sure

犯人が見つからない場合は、さらに分割することができます。犯人がいると思われる場合、またはこのメソッドの見た目が似ている場合は、次のことを試してください。

(B)各ステップを確認します

空白のemacsをロードするemacs -q

バッファ内の.emacsにアクセスします

別のバッファにある1Kラインファイルにアクセスします。

eval-last-sexp Cx Ceまたはeval-regionを使用して、.emacsの各セクションまたは行を最初から体系的に、または疑わしい関数呼び出しから開始して試行します。

ゆっくりと、しかし確実に、あなたはそれを吸うでしょう。申し訳ありませんが、即時診断を提供することはできません。

于 2010-06-02T14:56:15.107 に答える
2

私の経験では、linumモードをオフにすると、スクロールフリーズの問題が解決します。

于 2011-12-06T18:21:36.580 に答える
0

私はemacs24でも同じ問題を抱えていました。それを遅くしたタブバーモードであることが判明しました。

于 2012-09-13T14:11:20.543 に答える