当我在默认版本(emacs -Q)中查看emacs中的pdf时,doc-view工作正常。但在我的emacs的自定义版本中,打开即使是最小的PDF也会挂起emacs。可能的原因是什么?
编辑:我使用了二分法,发现linum模式产生了问题。一旦我把它关闭,文档正确地打开,没有任何延迟。有没有办法关闭doc-view模式的linum-mode? p>
编辑:这是非常无组织的,但我在这里发布我的.emacs。
;C-x C-q read only mode enabled or disabled
;FULL SCREEN ON STARTUP START
(defun fullscreen ()
(interactive)
(x-send-client-message nil 0 nil "_NET_WM_STATE" 32
'(2 "_NET_WM_STATE_FULLSCREEN" 0)))
(fullscreen)
(setq initial-scratch-message "rough buffer.")
(global-visual-line-mode t)
;needed so that emacs knows how to display dvi(basically binary file generated by latex which is then converted to pdf) files.Device Independent file format
;C-c C-v to generate PDF
(setq inhibit-splash-screen 0)
(global-linum-mode t)
;C++ CUSTOMIZATIONS
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode)) ;.h files are treated as c files instaed of c++ in emacs. Remove it!
(require 'cl)
(defun file-in-directory-list-p (file dirlist)
"Returns true if the file specified is contained within one of
the directories in the list. The directories must also exist."
(let ((dirs (mapcar 'expand-file-name dirlist))
(filedir (expand-file-name (file-name-directory file))))
(and
(file-directory-p filedir)
(member-if (lambda (x) ; Check directory prefix matches
(string-match (substring x 0 (min(length filedir) (length x))) filedir))
dirs))))
(defun buffer-standard-include-p ()
"Returns true if the current buffer is contained within one of
the directories in the INCLUDE environment variable."
(and (getenv "INCLUDE")
(file-in-directory-list-p buffer-file-name (split-string (getenv "INCLUDE") path-separator))))
(add-to-list 'magic-fallback-mode-alist '(buffer-standard-include-p . c++-mode))
;indentation customization(replacing tabs by 4 spaces)
(setq-default c-basic-offset 4
tab-width 4
indent-tabs-mode t)
;Indentating the curly braces(the braces don't indent with the inner code)
(setq c-default-style "linux"
c-basic-offset 4)
;handling uncommon file extensions
(add-to-list 'auto-mode-alist '("\\.ext\\'" . c-mode))
;C++ CUSTOMIZATIONS END
(show-paren-mode 1) ;highlighting matching parenthses
(global-font-lock-mode 1)
(defun delete-selected-region ()
"delete selected region"
(interactive)
(delete-region (point) (mark)))
(global-set-key (kbd "C-z") 'delete-selected-region)
;SELECTED REGION DELETION USING C-Z (THIS ALSO HELPS TO PREVENT ACCIDENTAL ICONIFICATION OF EMACS DUE TO C-Z) END
(show-paren-mode 1) ;highlighting matching parenthses
(transient-mark-mode t)
(global-font-lock-mode 1)
;LINE DUPLICATION USING C-d START
(defun line-duplicate ()
"line-duplication"
(interactive)
(setq position (point))
(command-execute (kbd "C-a C-k C-k C-y C-y"))
(goto-char position)
)
(global-set-key (kbd "C-M-d") 'line-duplicate)
;can also simply use
;(global-set-key "\C-d" "\C-S-BACKSPACE\C-y\C-y")
;LINE DUPLICATION USING C-d END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;images display
;; -- laoding images in org mode
;; enable image mode first
(setq-default iimage-mode t)
;Splitted window switching with C-TAB
(global-set-key (kbd "<C-escape>") 'other-window)
;
;hiding code(hiding the contents of a function)C-c @ C-h and C-c @ C-s
(add-hook 'c-mode-common-hook #'hs-minor-mode)
(add-hook 'c++-mode-common-hook #'hs-minor-mode)
(add-hook 'java-mode-common-hook #'hs-minor-mode)
;(setq-default hs-minor-mode 1)
(global-set-key (kbd "C-c C-h") (kbd "C-c @ C-h")) ;;hiding block of code
(global-set-key (kbd "C-c C-r") (kbd "C-c @ C-s")) ;;revealing block of code
;black screen
(invert-face 'default)
;removing the ststus line
;(setq-default mode-line-format nil)
;(insert-image (create-image "~/car.jpg"))
(setq-default fill-column 72)
(setq auto-fill-mode 1)
(setq major-mode 'text-mode)
;No backup files
(setq make-backup-files nil)
(blink-cursor-mode -1)
(set-scroll-bar-mode 'right)
;disables scroll bar
;(if (fboundp 'scroll-bar-mode) (scroll-bar-mode 1))
(auto-image-file-mode 1)
(setq hippie-expand-try-functions-list
'(;try-expand-all-abbrevs
yas/hippie-try-expand
try-complete-file-name
try-expand-list
;; FIXME this function is causing unexpected point movement.
;; try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-complete-lisp-symbol-partially
try-complete-lisp-symbol
try-expand-all-abbrevs
))
;disabling tool bar
(tool-bar-mode -1)
(put 'upcase-region 'disabled nil)
;Qt customizations
(make-face 'qt-keywords-face)
(set-face-foreground 'qt-keywords-face "BlueViolet")
(font-lock-add-keywords 'c++-mode '(("\\<Q_OBJECT\\>" . 'qt-keywords-face)))
(font-lock-add-keywords 'c++-mode '(("\\<SIGNAL\\|SLOT\\>" . 'qt-keywords-face)))
(font-lock-add-keywords 'c++-mode '(("\\<Q[A-Z3][A-Za-z0-9]*" . 'qt-keywords-face)))
(setq auto-mode-alist (cons '("\\.pro$" . makefile-mode) auto-mode-alist))
;
;hideshow: hide initial blocks of comments
(load-library "hideshow")
(add-hook 'c++-mode-hook (lambda () (hs-minor-mode 1)) )
(add-hook 'c-mode-hook (lambda () (hs-minor-mode 1)) )
(add-hook 'makefile-mode-hook (lambda () (hs-minor-mode 1)) )
(add-hook 'css-mode-hook (lambda () (hs-minor-mode 1)) )
(add-hook 'java-mode-hook (lambda () (hs-minor-mode 1)) )
(add-hook 'python-mode-hook (lambda () (hs-minor-mode 1)) )
(add-hook 'sh-mode-hook (lambda () (hs-minor-mode 1)) )
(setq hs-minor-mode-hook 'hs-hide-initial-comment-block)
;
;cool theme visit by M-x color-theme-select
;(color-theme-robin-hood)
;(set-face-background 'font-lock-comment-face "red")
;(require 'color-theme)
;(color-theme-initialize)
;(color-theme-whateveryouwant)
(set-background-color "black")
(set-border-color "white")
(setq font-lock-maximum-decoration t)
;; ;FONT SIZE
(set-face-attribute 'default nil :height 86)
;; ;FONT SIZE
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;miscellaneous
(setq max-mini-window-height .25)
(which-function-mode)
;the perfect terminal ansi-term
;(desktop-save-mode
;a couple of productivity incrementers
(defalias 'rs 'replace-string)
(defalias 'qr 'query-replace)
(defalias 'rr 'replace-regexp)
(defalias 'yes-or-no-p 'y-or-n-p) ; y or n is enough
(defalias 'qrr 'query-replace-regexp)
(defalias 'g 'goto-line)
(defalias 'bd 'bookmark-delete)
(defalias 'acm 'auto-complete-mode)
(defalias 'hsa 'hs-show-all)
(defalias 'hha 'hs-hide-all)
(defalias 'sb 'speedbar)
(defalias 'gfr 'gtags-find-rtag)
;(setq TEXpdf-mode t)
;(add-hook 'doc-view-mode-hook 'auto-revert-mode)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(ansi-color-names-vector ["#242424" "#e5786d" "#95e454" "#cae682" "#8ac6f2" "#333366" "#ccaa8f" "#f6f3e8"])
'(custom-enabled-themes (quote (wheatgrass)))
'(custom-safe-themes (quote ("de4403b9a108d38f35a1717b43a8ebe40410dd44b6324e3bc1adfdb658a8004c" default))))
;insert date using emacs
(defun insertdate ()
(interactive)
(insert (format-time-string "%d-%m-%Y")))
(global-set-key [(f5)] 'insertdate)
(add-to-list 'load-path "~/.emacs.d/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
(ac-config-default)
(load-file "~/.emacs.d/bufferSwitch.el")
(defun encrypt ()
(interactive)
(epa-encrypt-region (point-min) (point-max) nil nil nil)
)
(global-set-key (kbd "C-c C-e") 'encrypt)
(defun decrypt ()
(interactive)
(epa-decrypt-region (point-min) (point-max))
)
(global-set-key (kbd "C-c C-d") 'decrypt)
(defun terminal-come ()
(interactive)
(command-execute (kbd "C-x 2 ESC 14 C-x ^ C-<escape>"))
(if (equal (get-buffer "*ansi-term*") nil) (command-execute (kbd "M-x ansi-term RET")) (switch-to-buffer "*ansi-term*"))
)
(global-set-key (kbd "C-x C-c") 'terminal-come)
(setq ido-enable-flex-matching t)
(setq ido-everywhere t)
(ido-mode 1)
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8-unix)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
;; 1- if remove-if is not found, add here (require 'cl)
;; 2- in my emacs 23, I had to remove the "b" from "lambda (b)"
(require 'cl)
(when (require 'tabbar nil t)
(setq tabbar-buffer-groups-function
(lambda (b) (list "All Buffers")))
(setq tabbar-buffer-list-function
(lambda ()
(remove-if
(lambda(buffer)
(find (aref (buffer-name buffer) 0) " *"))
(buffer-list))))
(tabbar-mode))
(setq tabbar-buffer-groups-function
(lambda ()
(list "All")))
(require 'tabbar)
(tabbar-mode 1)
(global-set-key [(C-S-iso-lefttab)] 'tabbar-backward)
(global-set-key (kbd "C-<tab>") 'tabbar-forward)
(load-file "~/.emacs.d/commoncppfunctions.el")
(set-face-attribute 'default nil :height 94)
(add-hook 'asm-mode-set-comment-hook
'(lambda ()
(setq asm-comment-char ?#)))
(menu-bar-mode -1)
;(setq mode-line-format nil)
;bookmarks
(global-set-key (kbd "C-c C-z") 'bookmark-set)
(global-set-key (kbd "C-c C-a") 'bookmark-jump)
(global-set-key (kbd "C-c C-q") 'bookmark-delete)
(global-set-key (kbd "C-`") 'shell-command)
(global-set-key (kbd "C-!") 'gtags-pop-stack)
(defadvice bookmark-jump (after bookmark-jump activate)
(let ((latest (bookmark-get-bookmark bookmark)))
(setq bookmark-alist (delq latest bookmark-alist))
(add-to-list 'bookmark-alist latest)))
(display-time-mode 1)
;highlighting todo,fixme, bug
(add-hook 'prog-mode-common-hook
(lambda ()
(font-lock-add-keywords nil
'(("\\<\\(FIXME\\|TODO\\|BUG\\):" 1 font-lock-warning-face t)))))
(setq load-path (cons ".emacs.d/" load-path))
(autoload 'gtags-mode "gtags" "" t)
(setq term-default-bg-color "#000000")
(setq term-default-fg-color "#7cfc00")
(add-hook 'prog-mode-hook (lambda () (gtags-mode 1)))
(scroll-bar-mode -1)
(defun auto-recompile-emacs-file ()
(interactive)
(when (and buffer-file-name (string-match "\\.emacs" buffer-file-name))
(let ((byte-file (concat buffer-file-name "\\.elc")))
(if (or (not (file-exists-p byte-file))
(file-newer-than-file-p buffer-file-name byte-file))
(byte-compile-file buffer-file-name)))))
(add-hook 'after-save-hook 'auto-recompile-emacs-file)
(require 'color-theme)
(color-theme-initialize)
;(setq color-theme-is-global t)
;(color-theme-arjen)
;don't you fiddle with this. this is added by custom, if reused, in another syatem, this might have to be deleted.
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:inherit nil :stipple nil :background "black" :foreground "green" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 90 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))))
'(compilation-info ((((class color) (min-colors 88) (background dark)) (:foreground "red" :weight bold))))
'(cursor ((t (:background "red"))))
'(custom-comment ((((class grayscale color) (background dark)) (:background "dim gray" :height 110))))
'(custom-state ((((class color) (background dark)) (:foreground "pink1"))))
'(font-lock-comment-delimiter-face ((default (:inherit font-lock-comment-face :height 97)) (((class color) (min-colors 16)) nil)))
'(font-lock-comment-face ((((class color) (min-colors 88) (background dark)) (:foreground "chocolate1" :height 90))))
'(font-lock-function-name-face ((((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue" :height 96))))
'(font-lock-preprocessor-face ((t (:inherit font-lock-builtin-face :weight semi-bold))))
'(font-lock-string-face ((((class color) (min-colors 88) (background dark)) (:foreground "LightSalmon" :height 97))))
'(font-lock-variable-name-face ((((class color) (min-colors 89)) (:foreground "midnight blue"))))
'(highlight ((((class color) (min-colors 89)) (:background "azure3" :foreground "white"))))
'(ido-only-match ((((class color)) (:foreground "khaki4"))))
'(mode-line ((((class color) (min-colors 88)) (:background "red" :foreground "black" :box (:line-width -1 :color "blue" :style released-button)))))
'(region ((((class color) (min-colors 89)) (:background "sienna4" :foreground "white"))))
'(tool-bar ((default (:foreground "black" :box (:line-width 3 :style released-button))) (((type x w32 ns) (class color)) (:background "blue")))))
(set-face-foreground 'default "green")
(column-number-mode)
答案 0 :(得分:6)
(add-hook 'doc-view-mode-hook
(lambda ()
(linum-mode -1)
))
答案 1 :(得分:4)
“ 我的init文件中的内容导致了什么问题? ”的答案很简单:递归地将您的init文件平分,直到找到哪个sexp是罪魁祸首。
人们很容易误以为这是低效或愚蠢的。它既不是。是的,它是盲目的。但是,采取行动往往比盲目行事更糟糕:错误观念,错误的假设。
如果你需要提醒自己二元搜索的力量(这就是这个),请记住要求在第一个棋盘广场上用一粒米饭付钱的圣人的故事,在第二个棋盘广场加倍square,在第三个方块加倍......根本没时间将你的init文件缩小到有问题的表达式。
要将其平分,您可以执行以下操作之一:
评论一个部分(1/2,然后是3/4,然后是7/8,......):M-x comment-region
是你的朋友。并C-u
取消注释。
M-x eval-region
试试吧。它比你想象的花费的时间少。