Emacsのインストールは全攻略の一つを配置して簡単な配置をコンパイルします.
****************************************************************************************** オリジナル作品は、転載時に必ずハイパーリンクで文章の原典を明示してください.http://blog.csdn.net/gqb_driver/articale/detail/29407717,著者:gqb 666 /******************************************************************************************************************************************/
一、コンパイルインストール
1.準備作業
(1)据え付け
svn、ssh sudo appt-get install ssh subversion(2)セットアップtexinfo(manパッケージをコンパイルするために)sudo ap-get install texinfo(3)コンパイルに必要なサポートパッケージをインストールして、環境に応じてsudo ap-get build-dep empacs 21 ligtk 2.0-dev最新のソースコードを設定します.http://ftp.gnu.org/pub/gnu/emacs/ 3.コンパイル、インストール作成ディレクトリ:/opt/emaacs 24は、ここにemaacsをインストールします.sudo mkdir/opt/emaacs 24注:インストールディレクトリを指定すると、コンパイルしたbinaryは、別の場所に分散されます. emaacsインストールディレクトリを指定して、デフォルトは/usr/local–enable-font-backendでemaacsに雅黒フォントをサポートさせます.with-freetypeサポートfreetypeフォント–with-to olkit=gtk指定環境はgtkで間違いがない場合は続けます.問題がなければインストールできます.sudo make installクリーンアップ:make clean 4.あなたのインストールパスを追加してインストールし終わったら/usr/local/binでリンクします.
リンクができたら、端末にemaacsを入力すればemaacsを起動できます.
二、機能プラグインの設定(コードリーダー神器)
emaacsをsourceinsightコードブラウザのように変えます.
必要なソフトウェア:cscope-155.tar.gz http://sourceforge.net/projects/cscope ecb-23.3.tar.gz http://sourceforge.net/projects/ecb しかし、一般的に設置されたGNU emaacsには、3つの追加的なパッケージサポートが必要です. スピードバー http://sourceforge.net/projects/cedet これらの3つのバッグをダウンロードしてコピーします./opt/emiacs 24/eieibo-0017.tar.gz semantic-1.4.tar.gz speedbar-0114 beta.gzインストールecbと3つのサポートバッグ:濞cd/opt/emicas 24/site-lisp #tar zxfv ecb-23.22.tar.gz #tar zxfv eieibo-0017.tar.gz #tar zxfv semantic-1.4.tar.gz #tar zxfv speedbar-0114 beta 4.gzは4つの接続をします. ln-s ecb-2332 ecb ln-s eieigo-0017 eimo ln-s semantic-1.4 semantic ln-s speedbar-0114 beta 4 speedbar そして変更 site-start.elファイル(一部のシステムはuuntuのようです.site-start.elファイルは/etc/exacsディレクトリの下にあります.) 次の5行を追加します (setq load-path) (setq load-path) (setq load-path(「/opt/emaacs 24/site-lisp/speedbar」)) (setq load-path) (require'ecb) emaacsを再起動します. M-x ecb-activate cscopeのインストールを見てください.もっと簡単です.tar zxfv cscope-155.tar.gz $cd cscope-155$ $メーク #make install その後、contrib/xcscope/ディレクトリのcscope-inndexerをPATHディレクトリ、たとえば/usr/local/binにコピーします. xcscope.elをコピーします. /opt/emaacs 24/site-lisp 修正/opt/emaacs 24/site-lisp/site-start.el 追加 (require'xcscope) emaacsを再起動し、Cファイルを開いてみます.何か変化がありますか? 上記の二つのソフトウェアの使用説明は彼らが持っている文書を見てみてください.とてもよく分かります.
三、ECB操作キー
(Emacs.pdf http://download.csdn.net/detail/gqb666/7534613)
以下は簡単なキーバインディングです.より多くの情報はecb-minor-modeドキュメントで検索できます.
最初にリストされたのは、基本キーマッピングプレフィックス、すなわちいくつかの具体的なコマンドキーであり、これに基づいて追加されるものである.
key
binding
C-c
C-c.
C-c.f
C-c.g
ジャンプ類(goto)
C-c.l
レイアウトクラス(layout)
C-c.m
ウィンドウ最大化クラス(maximize)
(1)ジャンプ類命令(goto、 プレフィックス:C-c.g )
key
場所を移動
C-c.g 1
編集エリア1
C-c.g 2
編集エリア2
C-c.g a
アナリゼウィンドウ
C-c.g b
speedbarウィンドウ
C-c.g c
complationウィンドウ
C-c.g d
directoresウィンドウ
C-c.g h
historyウィンドウ
C-c.g l
前回の編集
C-c.g m
methodsウィンドウ
C-c.g s
sourcesウィンドウ
(2)レイアウトクラス(layout、プレフィックスC-c.l)
key
操作
C-c.l.
レイアウトを変更
C-c.l r
レイアウトを変更
C-c.l t
レイアウトロックスイッチ
C-c.l w
表示されるECBウィンドウをロックします.
(3)ウィンドウ最大化クラス(maximize、プレフィックスC-c.m)
key
操作ウィンドウ
C-c.m a
アナリゼウィンドウ
C-c.m b
speedbarウィンドウ
C-c.m d
directoresウィンドウ
C-c.m h
historyウィンドウ
C-c.m
methodsウィンドウ
C-c.m s
sourcesウィンドウ
四.emaacsプロファイル
(config.emaacshttp://download.csdn.net/detail/gqb666/7534621)
添付します.emaacsプロファイルはユーザーディレクトリに置きます.cd~、として保存します.emaacsは行番号などのマルチファンクションプラグインがあります.
一、コンパイルインストール
1.準備作業
(1)据え付け
svn、ssh sudo appt-get install ssh subversion(2)セットアップtexinfo(manパッケージをコンパイルするために)sudo ap-get install texinfo(3)コンパイルに必要なサポートパッケージをインストールして、環境に応じてsudo ap-get build-dep empacs 21 ligtk 2.0-dev最新のソースコードを設定します.http://ftp.gnu.org/pub/gnu/emacs/ 3.コンパイル、インストール作成ディレクトリ:/opt/emaacs 24は、ここにemaacsをインストールします.sudo mkdir/opt/emaacs 24注:インストールディレクトリを指定すると、コンパイルしたbinaryは、別の場所に分散されます. emaacsインストールディレクトリを指定して、デフォルトは/usr/local–enable-font-backendでemaacsに雅黒フォントをサポートさせます.with-freetypeサポートfreetypeフォント–with-to olkit=gtk指定環境はgtkで間違いがない場合は続けます.問題がなければインストールできます.sudo make installクリーンアップ:make clean 4.あなたのインストールパスを追加してインストールし終わったら/usr/local/binでリンクします.
リンクができたら、端末にemaacsを入力すればemaacsを起動できます.
二、機能プラグインの設定(コードリーダー神器)
emaacsをsourceinsightコードブラウザのように変えます.
必要なソフトウェア:cscope-155.tar.gz http://sourceforge.net/projects/cscope ecb-23.3.tar.gz http://sourceforge.net/projects/ecb しかし、一般的に設置されたGNU emaacsには、3つの追加的なパッケージサポートが必要です. スピードバー http://sourceforge.net/projects/cedet これらの3つのバッグをダウンロードしてコピーします./opt/emiacs 24/eieibo-0017.tar.gz semantic-1.4.tar.gz speedbar-0114 beta.gzインストールecbと3つのサポートバッグ:濞cd/opt/emicas 24/site-lisp #tar zxfv ecb-23.22.tar.gz #tar zxfv eieibo-0017.tar.gz #tar zxfv semantic-1.4.tar.gz #tar zxfv speedbar-0114 beta 4.gzは4つの接続をします. ln-s ecb-2332 ecb ln-s eieigo-0017 eimo ln-s semantic-1.4 semantic ln-s speedbar-0114 beta 4 speedbar そして変更 site-start.elファイル(一部のシステムはuuntuのようです.site-start.elファイルは/etc/exacsディレクトリの下にあります.) 次の5行を追加します (setq load-path) (setq load-path) (setq load-path(「/opt/emaacs 24/site-lisp/speedbar」)) (setq load-path) (require'ecb) emaacsを再起動します. M-x ecb-activate cscopeのインストールを見てください.もっと簡単です.tar zxfv cscope-155.tar.gz $cd cscope-155$ $メーク #make install その後、contrib/xcscope/ディレクトリのcscope-inndexerをPATHディレクトリ、たとえば/usr/local/binにコピーします. xcscope.elをコピーします. /opt/emaacs 24/site-lisp 修正/opt/emaacs 24/site-lisp/site-start.el 追加 (require'xcscope) emaacsを再起動し、Cファイルを開いてみます.何か変化がありますか? 上記の二つのソフトウェアの使用説明は彼らが持っている文書を見てみてください.とてもよく分かります.
三、ECB操作キー
(Emacs.pdf http://download.csdn.net/detail/gqb666/7534613)
以下は簡単なキーバインディングです.より多くの情報はecb-minor-modeドキュメントで検索できます.
最初にリストされたのは、基本キーマッピングプレフィックス、すなわちいくつかの具体的なコマンドキーであり、これに基づいて追加されるものである.
key
binding
C-c
C-c.
C-c.f
C-c.g
ジャンプ類(goto)
C-c.l
レイアウトクラス(layout)
C-c.m
ウィンドウ最大化クラス(maximize)
(1)ジャンプ類命令(goto、 プレフィックス:C-c.g )
key
場所を移動
C-c.g 1
編集エリア1
C-c.g 2
編集エリア2
C-c.g a
アナリゼウィンドウ
C-c.g b
speedbarウィンドウ
C-c.g c
complationウィンドウ
C-c.g d
directoresウィンドウ
C-c.g h
historyウィンドウ
C-c.g l
前回の編集
C-c.g m
methodsウィンドウ
C-c.g s
sourcesウィンドウ
(2)レイアウトクラス(layout、プレフィックスC-c.l)
key
操作
C-c.l.
レイアウトを変更
C-c.l r
レイアウトを変更
C-c.l t
レイアウトロックスイッチ
C-c.l w
表示されるECBウィンドウをロックします.
(3)ウィンドウ最大化クラス(maximize、プレフィックスC-c.m)
key
操作ウィンドウ
C-c.m a
アナリゼウィンドウ
C-c.m b
speedbarウィンドウ
C-c.m d
directoresウィンドウ
C-c.m h
historyウィンドウ
C-c.m
methodsウィンドウ
C-c.m s
sourcesウィンドウ
四.emaacsプロファイル
(config.emaacshttp://download.csdn.net/detail/gqb666/7534621)
添付します.emaacsプロファイルはユーザーディレクトリに置きます.cd~、として保存します.emaacsは行番号などのマルチファンクションプラグインがあります.
;; , C-X C-F ~, .emacs _emacs.
;;
;; linux ,windows
;;(set-language-environment 'Chinese-GB)
;;(set-keyboard-coding-system 'utf-8)
;;(set-clipboard-coding-system 'utf-8)
;;(set-terminal-coding-system 'utf-8)
;;(set-buffer-file-coding-system 'utf-8)
;;(set-default-coding-systems 'utf-8)
;;(set-selection-coding-system 'utf-8)
;;(modify-coding-system-alist 'process "*" 'utf-8)
;;(setq default-process-coding-system '(utf-8 . utf-8))
;;(setq-default pathname-coding-system 'utf-8)
;;(set-file-name-coding-system 'utf-8)
;;(setq ansi-color-for-comint-mode t) ;; shell-mode ,
;;
;;(set-foreground-color "grey")
;;(set-background-color "black")
;;(set-cursor-color "grey")
;;(set-mouse-color "gold1")
;;
(setq column-number-mode t)
(setq line-number-mode t)
(global-linum-mode t)
;;
(setq display-line-number-format "%4d|")
;; ` '
(setq inhibit-startup-message t)
;; gnus
(setq gnus-inhibit-startup-message t)
;;
(global-font-lock-mode 't)
;; 。 shell-mode text-mode
(setq font-lock-maximum-decoration t)
(setq font-lock-global-modes '(not shell-mode text-mode))
(setq font-lock-verbose t)
(setq font-lock-maximum-size '((t . 1048576) (vm-mode . 5250000)))
;; c k&r
(add-hook 'c-mode-hook
'(lambda ()
(c-set-style "k&r")))
;; c++ stroustrup
(add-hook 'c++-mode-hook
'(lambda()
(c-set-style "stroustrup")))
;;
;; ,
(show-paren-mode t)
(setq show-paren-style 'parentheses)
;; buffer
(setq frame-title-format "emacs@%b")
;; Shell ansi color
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
;; Win
;; shift+
(pc-selection-mode)
;; Emacs 。
(require 'thumbs)
(auto-image-file-mode t)
;;
(display-time-mode 1);; , minibuffer
(setq display-time-24hr-format t);; 24
(setq display-time-day-and-date t);;
(setq display-time-use-mail-icon t);;
(setq display-time-interval 10);;
;;
;;(set-scroll-bar-mode nil)
;;
;;(tool-bar-mode nil)
;;
(setq default-directory "F:/")
;; Emacs yes 。 y yes,n no
(fset 'yes-or-no-p 'y-or-n-p)
;; TAB indent, 。 Makefile , makefile-mode TAB TAB ,
(setq-default indent-tabs-mode nil)
(setq default-tab-width 8)
(setq tab-stop-list ())
;; sentence-end 。 fill
(setq sentence-end "\\([。!?]\\|……\\|[.?!][]\"')}]*\\($\\|[ \t]\\)\\)[ \t
]*")
(setq sentence-end-double-space nil)
;; , ,
;;(setq mouse-avoidance-mode 'animate)
;;
(auto-compression-mode 1)
;; C-k ,
(setq-default kill-whole-line t)
;;
(setq make-backup-files nil)
;;
(setq auto-save-mode nil)
;;
(setq-default make-backup-files nil)
;; emacs
(setq x-select-enable-clipboard t)
;;
;;(setq mouse-yank-at-point t)
;; ,
(setq user-full-name "XXXXXX")
(setq user-mail-address "[email protected]")
;;
;;(setq require-final-newline t)
;; home buffer ,end buffer
(global-set-key [home] 'beginning-of-buffer)
(global-set-key [end] 'end-of-buffer)
;; Lisp
;; ido.el
(require 'ido)
(ido-mode t)
;;
(autoload 'table-insert "table" "WYGIWYS table editor")
;; C-F5, ; F5,
;; M-x gdb gdb, C-c C-n Next line,C-c C-s step in
(defun du-onekey-compile ()
"Save buffers and start compile"
(interactive)
(save-some-buffers t)
(switch-to-buffer-other-window "*compilation*")
(compile compile-command))
(global-set-key [C-f5] 'compile)
(global-set-key [f5] 'du-onekey-compile)
;; F6 Emacs gdb
(global-set-key [f6] 'gdb)
;; C-F4, ,F4
(global-set-key [C-f4] 'previous-error)
(global-set-key [f4] 'next-error)
;; shell buffer, ( ), 。
;; F8 buffer shell,C-f8 buffer shell
(defun open-eshell-other-buffer ()
"Open eshell in other buffer"
(interactive)
(split-window-vertically)
(eshell))
(global-set-key [(f8)] 'open-eshell-other-buffer)
(global-set-key [C-f8] 'eshell)
;; F9 speedbar
;; n p ,
;; + ,- ,RET ,g speedbar
(setq speedbar-show-unknown-files t);;
(setq dframe-update-speed nil);; , g
(setq speedbar-update-flag nil)
;;(setq speedbar-use-images nil);; image
(setq speedbar-verbosity-level 0)
(global-set-key [f9] 'speedbar)
;; [C-f9] dired
(global-set-key [C-f9] 'dired)
;; dired
(setq dired-recursive-copies 'top)
(setq dired-recursive-deletes 'top)
;; F10
;;(global-set-key [f10] 'undo)
;; F11 Emacs
;;(global-set-key [f11] 'calendar)
;; F12
;;(global-set-key [f12] 'list-bookmarks)
;; ,
(setq time-stamp-active t)
(setq time-stamp-warn-inactive t)
(setq time-stamp-format "%:y-%02m-%02d %3a %02H:%02M:%02S chunyu")
;; C-g goto-line
(global-set-key (kbd "C-g") 'goto-line)
;; M- setmark , C-@ setmark , C-@
(global-set-key (kbd "M-<SPC>") 'set-mark-command)
;; , calendar pC
(setq calendar-remove-frame-by-deleting t)
(setq calendar-week-start-day 1) ;
(setq mark-diary-entries-in-calendar t) ; calendar diary
(setq mark-holidays-in-calendar nil) ; diary ,calendar
(setq view-calendar-holidays-initially nil) ; calendar
;; , , calendar h
(setq christian-holidays nil)
(setq hebrew-holidays nil)
(setq islamic-holidays nil)
(setq solar-holidays nil)
(setq general-holidays '((holiday-fixed 1 1 " ")
(holiday-fixed 2 14 " ")
(holiday-fixed 3 14 " ")
(holiday-fixed 4 1 " ")
(holiday-fixed 5 1 " ")
(holiday-float 5 0 2 " ")
(holiday-fixed 6 1 " ")
(holiday-float 6 0 3 " ")
(holiday-fixed 7 1 " ")
(holiday-fixed 8 1 " ")
(holiday-fixed 9 10 " ")
(holiday-fixed 10 1 " ")
(holiday-fixed 12 25 " ")))
;; Calendar
;; ( “ ” ,“ ” )
;; q calendar
;; C-f
;; C-b
;; C-n
;; C-p
;; M-}
;; M-{
;; C-x ]
;; C-x [
;; C-a
;; C-e
;; M-a
;; M-e
;; M-<
;; M->
;; Calendar
;; g d
;; o
;; .
;; p d , 。
;; C-c C-l Calendar
;; Calendar LATEX 。
;; t m
;; t M
;; t d
;; t w 1
;; t w 2
;; t w 3 ISO-SYTLE
;; t w 4
;; t y
;; EMACS Calendar :
;; h
;; x
;; u
;; e 。
;; M-x holiday 。
;; , , :
;; S ( S)
;; p C
;; g C
;;========== CC-Mode begin ==========
;; CC-mode http://cc-mode.sourceforge.net/
;;(add-to-list 'load-path "~/lisp/cc-mode")
;;(require 'cc-mode)
(c-set-offset 'inline-open 0)
(c-set-offset 'friend '-)
(c-set-offset 'substatement-open 0)
;; C/C++
(defun my-c-mode-common-hook()
(setq tab-width 4 indent-tabs-mode nil)
(c-toggle-auto-hungry-state 1)
;;
(define-key c-mode-base-map [(control \`)] 'hs-toggle-hiding)
(define-key c-mode-base-map [(return)] 'newline-and-indent)
;;(define-key c-mode-base-map [(f5)] 'compile)
(define-key c-mode-base-map [(meta \`)] 'c-indent-command)
(define-key c-mode-base-map [(tab)] 'my-indent-or-complete)
(define-key c-mode-base-map [(meta ?/)] 'semantic-ia-complete-symbol-menu)
;;
(setq c-macro-shrink-window-flag t)
(setq c-macro-preprocessor "cpp")
(setq c-macro-cppflags " ")
(setq c-macro-prompt-flag t)
(setq hs-minor-mode t)
(setq abbrev-mode t)
)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
;; C++
(defun my-c++-mode-hook()
(setq tab-width 4 indent-tabs-mode nil)
(c-set-style "stroustrup")
)
;; cedet
;;(load-file "~/lisp/cedet/common/cedet.el")
;; Semantic
(setq semanticdb-project-roots
(list
(expand-file-name "/")))
;; , , tab
(defun my-indent-or-complete ()
(interactive)
(if (looking-at "\\>")
(hippie-expand nil)
(indent-for-tab-command))
)
(global-set-key [(control tab)] 'my-indent-or-complete)
;; hippie , senator
(autoload 'senator-try-expand-semantic "senator")
(setq hippie-expand-try-functions-list
'(
senator-try-expand-semantic
try-expand-dabbrev
try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-expand-list
try-expand-list-all-buffers
try-expand-line
try-expand-line-all-buffers
try-complete-file-name-partially
try-complete-file-name
try-expand-all-abbrevs
try-complete-lisp-symbol-partially
try-complete-lisp-symbol
try-expand-whole-kill
)
)
;; ========== CC-Mode end ==========
;; , C-\ ( Ctrl )
;;(add-to-list 'load-path "~/lisp/wubi")
;;(require 'wubi)
;;(register-input-method "chinese-wubi" "Chinese-GB" 'quail-use-package "wubi" "wubi")
;;(wubi-load-local-phrases)
;;(setq default-input-method "chinese-wubi")
;; ,Ctrl-+ add-wubi 、Ctrl-- del-wubi
;;(global-set-key [?\C-+] 'add-wubi)
;;(global-set-key [?\C--] 'del-wubi)
;; cscope , cscope
;;(add-to-list 'load-path "~/lisp/cscope") ;; EMACS load-path
;;(require 'xcscope) ;;
;;C-c s a ,
;;C-s s I
;;C-c s s
;;C-c s g
;;C-c s c
;;C-c s C
;;C-c s e
;;C-c s f
;;C-c s i include
;; tabbar
;;(add-to-list 'load-path "~/lisp/tabbar")
;;(require 'tabbar)
;;(tabbar-mode)
;; ========== cedet ==========
;;(add-to-list 'load-path "~/lisp/cedet/speedbar")
;;(add-to-list 'load-path "~/lisp/cedet/eieio")
;;(add-to-list 'load-path "~/lisp/cedet/semantic")
;;(add-to-list 'load-path "~/lisp/cedet/common")
;;(require 'cedet)
;;(add-to-list 'load-path "~/lisp/ecb")
;;(require 'ecb)
;; Ecb :
;; C-c . g d
;; C-c . g s
;; C-c . g m
;; C-c . g h
;; C-c . g l
;; C-c . g 1 1
;; C-c . g n n
;; C-c . l c
;; C-c . l r
;; C-c . l t ( )
;; C-c . l w ecb
;; C-c . \
;; l (L), !!
;; ========== cedet ==========
;; emacs compile make -k, mingw32-make -f MakeFile。 , gcc
(setq compile-command "mingw32-make -f MakeFile")
;; ,
(load-library "hideshow")
(add-hook 'c-mode-hook 'hs-minor-mode)
(add-hook 'c++-mode-hook 'hs-minor-mode)
(add-hook 'java-mode-hook 'hs-minor-mode)
(add-hook 'perl-mode-hook 'hs-minor-mode)
(add-hook 'php-mode-hook 'hs-minor-mode)
(add-hook 'emacs-lisp-mode-hook 'hs-minor-mode)
;; M-x hs-minor-mode
;; C-c @ ESC C-s show all
;; C-c @ ESC C-h hide all
;; C-c @ C-s show block
;; C-c @ C-h hide block
;; C-c @ C-c toggle hide/show
;; , . (), "", [] , {} ,
(defun my-c-mode-auto-pair ()
(interactive)
(make-local-variable 'skeleton-pair-alist)
(setq skeleton-pair-alist '(
(?` ?` _ "''")
(?\( ? _ " )")
(?\[ ? _ " ]")
(?{
> _
?} >)))
(setq skeleton-pair t)
(local-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(local-set-key (kbd "{") 'skeleton-pair-insert-maybe)
(local-set-key (kbd "`") 'skeleton-pair-insert-maybe)
(local-set-key (kbd "[") 'skeleton-pair-insert-maybe))
(add-hook 'c-mode-hook 'my-c-mode-auto-pair)
(add-hook 'c++-mode-hook 'my-c-mode-auto-pair)
(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.
'(ecb-options-version "2.32"))
(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.
)
;;AUCTEX 2012-06-11
(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)