- 浏览: 899621 次
- 性别:
- 来自: 太原
-
文章分类
- 全部博客 (198)
- Linux/Unix (38)
- TinyOS / NS-2 for『WSN』 (44)
- 思想的拼图 (5)
- 开源 OpenSource (2)
- Framework 开发框架 (0)
- Software Engineering 软件工程 (2)
- IT项目管理 (6)
- Networking 网络技术 (2)
- Java (6)
- C语言 ANSI C (22)
- .NET / C# (9)
- C++ (12)
- Web 语言 Html/Xml (5)
- Groovy on Grails (1)
- Algorithm 算法 (1)
- Database 数据库技术 (5)
- Tools (21)
- VM 虚拟机 (3)
- WSN (wireless sensor network) (2)
- Linux 命令专辑 (3)
- PHP (0)
- 办公软件 (3)
最新评论
-
cfczdws:
感谢楼主,查了半天终于发现居然是htmlentities()做 ...
htmlentities()函数把中文转成了乱码 -
decoxiaohan:
这本书的名字 有谁知道????~~~
OMNeT++中文用户手册(完全版) -
huonie:
怎么下载啊
OMNeT++中文用户手册(完全版) -
huonie:
没有内容啊
OMNeT++中文用户手册(完全版) -
kyx0413:
谢谢先 先看看
OMNeT++中文用户手册(完全版)
本节主要参考:
曹乐的《在Emacs下用C/C++编程》
王纯业的《Emacs 一个强大的平台》
emacswiki.org
emcas难学易用,可扩展性强。有人把她当作信仰,有人认为他是魔鬼!学习首先记住基本的键盘快捷键,学会常用插件,深入学习还需学习lisp语言。本节紧对emacs作为开发环境做一个基本的介绍。
基本安装设置请参考:Ubuntu Ubuntu 8.04 LTS 配置笔记
emacs的基本安装设置完成后,使emacs成为C开发环境还需做如下设置,新建$HOME/.emacs文件
本文把emacs插件放在 $HOME/.emacs.d/site-lisp/ 目录下,如果在$HOME下没有找到.emacs.d目录,请手动建立
在.emacs文件添加
(add-to-list 'load-path' "~/.emacs.d/site-lisp")
Color theme
在.emacs文件添加
下载Color theme解压后放到$HOME/.emacs.d/site-lisp/ 目录下
(require 'color-theme)
(color-theme-classic)
显示行号
从http://ann77.stu.cdut.edu.cn/EmacsDisplayLineNumber.html下载,把里面的 display-line-number.el放到加载路径~/.emacs.d/site-lisp/目录下。
在.emacs文件添加
(setq display-line-number-format "%3d ")
(add-hook 'c-mode-hook 'display-line-number-mode)
(add-hook 'c++-mode-hook 'display-line-number-mode)
参考:http://ann77.stu.cdut.edu.cn/EmacsDisplayLineNumber.html
感觉ann77的这个的确比setnu.el好用
session
从http://emacs-session.sourceforge.net/ 下载,把里面的 session.el 解压出来放到加载路径~/.emacs.d/site-lisp/目录下。
在.emacs文件添加
(add-hook 'after-init-hook 'session-initialize)
(load "desktop")
(desktop-save-mode)
阅读代码
在emacs下读代码通常有一下几种工具,etags,ECB(emacs code browser),cscope,Xref。这几种工具也可以相互配合使用。其中:etags是emcas自带的标准插件,注意不是ctags。Xref是的Xrefactory的免费版本,非GNU,支持C和java的跳转,自动补全插等功能,比cedet+ECB组合速度要快,用起来也很简单,回答几个问题新建一个project,然后几个快捷键就可以满足需要了,美中不足的是对C++支持是收费,且狂贵,这个小东西要400刀,也没找到破解的版本,写C++代码的时候还得用CEDET+ECB。
安装 cscope
找到xcscope.el文件 cp到 ~/.emacs.d/site-lisp/
在.emacs文件添加
cscope的主要功能和对应的快捷键:
;; 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)
安装CEDET
从http://cedet.sourceforge.net/下载cedet,解压到~/.emacs.d/site-lisp/在cedet目录下运行make。以下载到的cedet-1.0pre4.tar.gz为例
cd ~/.emacs.d/site-lisp/
tar xvzf cedet-1.0pre4.tar.gz
cd cedet-1.0pre4
make
详情请参考INSTALL文档
在.emacs文件添加
(load-file "~/.emacs.d/site-lisp/cedet-1.0pre4/common/cedet.el")
(semantic-load-enable-code-helpers)
(autoload 'speedbar-frame-mode "speedbar" "Popup a speedbar frame" t)
(autoload 'speedbar-get-focus "speedbar" "Jump to speedbar frame" t)
(define-key-after (lookup-key global-map [menu-bar tools])
[speedbar]
'("Speedbar" .
speedbar-frame-mode)
[calendar])
安装ECB
从http://ecb.sourceforge.net/ 下载ECB,解压到~/.emacs.d/site-lisp/ 即可
在.emacs文件添加
(load-file "~/.emacs.d/site-lisp/ecb-2.32/ecb.el")
(require 'ecb)
(setq ecb-auto-activate t
ecb-tip-of-the-day nil
ecb-tree-indent 4
ecb-windows-height 0.5
ecb-windows-width 0.20)
ecb-auto-compatibility-check nil
ecb-version-check nil
inhibit-startup-message t
重启Emacs
在emacs执行M-x ecb-byte-complie编译,可以加快ECB运行速度
M-x ecb-show-help看在线帮助
M-x customize-option RET ecb-source-path RET设置源码目录
ECB默认是不支持鼠标响应的,需作如下设置:
打开emacs中的菜单 ECB->Preferences->Most important...,
找到Ecb Primary Secondary Mouse Buttons:并点击Show Value,
选择第三个选项:Primary:mouse-1,secondary:mouse-2
保存选项为以后所用
设置自动补全
在.emacs文件添加
(setq semanticdb-search-system-databases t)
(add-hook 'c-mode-common-hook
(lambda ()
(setq semanticdb-project-system-databases
(list (semanticdb-create-database
semanticdb-new-database-class
"/usr/include")))))
;; project root path
(setq semanticdb-project-roots
(list
(expand-file-name "/")))
;; 避免semantic占用CPU过多
(setq-default semantic-idle-scheduler-idle-time 432000)
(defun my-indent-or-complete ()
(interactive)
(if (looking-at "\\>")
(hippie-expand nil)
(indent-for-tab-command)))
(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-whole-kill
)
)
;;快捷键
在.emacs文件添加
;;右Ctrl+\ 自动补全menu
(global-set-key "\C-\\" 'semantic-ia-complete-symbol-menu)
;; 跳转到全局定义
(global-set-key "\C-xg" 'cscope-find-global-definition-no-prompting)
安装Xref
从 http://xref-tech.com/xrefactory/downloads/下载1.X.X linux版本(1.X.X为免费版,2.X.X为收费版)。解压后放到~/.emacs.d/site-lisp/目录下。以下载的xref-1.6.10-i86pcLinux.tar.gz为例
cd ~/.emacs.d/site-lisp/xref
sh ./xrefsetup
.........
请参考INSTALL文档
安装程序在.emacs文件上追加了
;; some Xrefactory defaults can be set here
(defvar xref-current-project nil) ;; can be also "my_project_name"
(defvar xref-key-binding 'global) ;; can be also 'local or 'none
(setq load-path (cons "/home/uiu/.emacs.d/site-lisp/xref/emacs" load-path))
(setq exec-path (cons "/home/uiu/.emacs.d/site-lisp/xref" exec-path))
(load "xrefactory")
;; end of Xrefactory configuration part ;;
(message "xrefactory loaded")
为使上次建立的project仍有效,需将
改为
;; c-mode设置
在.emacs文件添加
(defun my-c-mode-common-hook ()
(setq default-tab-width 4)
(setq tab-width 4)
(setq c-basic-offset 4)
(hs-minor-mode t))
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
;; C语言设置
(defun my-c-mode-hook ()
(c-set-style "cc-mode"))
(add-hook 'c-mode-hook 'my-c-mode-hook)
;; C++设置
(defun my-c++-mode-hook ()
(c-set-style "stroustrup"))
(add-hook 'c++-mode-hook 'my-c++-mode-hook)
输入左边的括号,就会自动补全右边的部分.包括(), "", [] , {} , 等
在.emacs文件添加
(interactive)
(make-local-variable 'skeleton-pair-alist)
(setq skeleton-pair-alist '(
(?` ?` _ "''")
(?\( ? _ " )")
(?\[ ? _ " ]")
(?{ \n > _ \n ?} >)))
(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)
我的.emacs相关的配置,仅供参考
;;LOAD_PATH (add-to-list 'load-path' "~/.emacs.d/site-lisp") ;=========================================END==============================================; ;;COLOR_THEME (require 'color-theme) (color-theme-classic) ;=========================================END==============================================; ;;LANG (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乱码,好像没作用 ;=========================================END==============================================; ;;MY CUSTOMIZE (auto-image-file-mode t);打开图片显示功能 (display-time-mode 1);显示时间,格式如下 (setq display-time-24hr-format t) (setq display-time-day-and-date t) (transient-mark-mode t);允许临时设置标记 (setq frame-title-format '("" buffer-file-name "@emacs" ));在标题栏显示buffer名称 (setq default-fill-column 80);默认显示 80列就换行 (set-scroll-bar-mode nil) ; 取消滚动栏 ;;(tool-bar-mode nil) ; 取消工具栏 (setq default-directory "~/") ; 设置打开文件的缺省路径 (ido-mode t) ; 打开ido,使打开文件时后面有提示,在emacs23带有ido (setq visible-bell t) ; 关闭烦人的出错时的提示声 (setq inhibit-startup-message t) ; 关闭emacs启动时的画面 (setq gnus-inhibit-startup-message t) ; 关闭gnus启动时的画面 (fset 'yes-or-no-p 'y-or-n-p) ; 按 y 或空格键表示 yes,n 表示 no (setq mouse-yank-at-point t) ; 不在鼠标点击的那个地方插入剪贴板内容 (setq kill-ring-max 200) ; 设置粘贴缓冲条目数量 (setq auto-save-mode nil) ; 自动保存模式 (setq x-select-enable-clipboard t) ; 允许emacs和外部其他程序的粘贴 (setq user-full-name "XXXXXX") (setq user-mail-address "XXXXXX@gmail.com") ; 设置有用的个人信息,这在很多地方有用。 (setq global-font-lock-mode t) ; 进行语法加亮。 (setq-default kill-whole-line t) ; 在行首 C-k 时,同时删除该行 (setq show-paren-mode t) ;打开括号匹配显示模式 (setq show-paren-style 'parenthesis) ;括号匹配时可以高亮显示另外一边的括号,但光标不会烦人的跳到另一个括号处。 (setq mouse-avoidance-mode 'animate) ;光标靠近鼠标指针时,让鼠标指针自动让开,别挡住视线。 (setq auto-image-file-mode t) ;让 Emacs 可以直接打开和显示图片 (setq default-major-mode 'text-mode) ; (add-hook 'text-mode-hook 'turn-on-auto-fill) ; 设置缺省主模式是text,,并进入auto-fill次模式.而不是基本模式fundamental-mode (setq-default auto-fill-function 'do-auto-fill) ; Autofill in all modes;; ;(setq-default indent-tabs-mode nil) ;(setq default-tab-width 8) ;(setq tab-stop-list ()) ;;不用 TAB 字符来indent, 这会引起很多奇怪的错误。编辑 Makefile 的时候也不用担心,因为 makefile-mode 会把 TAB 键设置成真正的 TAB 字符,并且加亮显示的。注:还没搞清楚 (setq column-number-mode t) (setq line-number-mode t) ; 显示行号 (setq display-time-24hr-format t) (setq display-time-day-and-date t) (display-time) ; 显示时间 (setq sentence-end "\\([。!?]\\|……\\|[.?!][]\"')}]*\\($\\|[ \t]\\)\\)[ \t\n]*") (setq sentence-end-double-space nil) ; 设置 sentence-end 可以识别中文标点。不用在 fill 时在句号后插入两个空格。 (setq enable-recursive-minibuffers t) ; 可以递归的使用 minibuffer (setq scroll-margin 3 scroll-conservatively 10000) ;;防止页面滚动时跳动, scroll-margin 3 可以在靠近屏幕边沿3行时就开始滚动,可以很好的看到上下文。 (setq track-eol t) ; 当光标在行尾上下移动的时候,始终保持在行尾。 (setq Man-notify-method 'pushy) ; 当浏览 man page 时,直接跳转到 man buffer。 (setq next-line-add-newlines nil) ; Emacs 21 中已经是缺省设置。按 C-n 或向下键时不添加新行。 (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) (setq time-stamp-active t) (setq time-stamp-warn-inactive t) (setq time-stamp-format "%:y-%02m-%02d %3a %02H:%02M:%02S chunyu") ; 设置时间戳,标识出最后一次保存文件的时间。 (setq dired-recursive-copies 'top) (setq dired-recursive-deletes 'top) ;让 dired 可以递归的拷贝和删除目录。 ;=========================================END==============================================; ;;xcscope (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 ;=========================================END==============================================; ;;文件头header设置 (require 'header2) ;;(require 'header) (setq make-header-hooks '(header-mode-line header-blank header-file-name header-blank header-copyright header-blank header-author header-creation-date header-modification-author header-modification-date header-update-count header-blank header-history header-blank )) (setq header-copyright-notice " XXXXXXX" ) (make-local-variable 'user-full-name) (make-local-variable 'user-mail-address) ;=========================================END==============================================; ;;setnu ;(add-hook 'c-mode-common-hook '(lambda() (require 'setnu+) ) ) ;;设置C/C++mode显示行号 ;(add-hook 'c++-mode-common-hook '(lambda() (require 'setnu+) ) ) ;; 加载显示行号模块 (require 'display-line-number) ;;(add-hook 'c-mode-common-hook '(lambda() (require 'display-line-number) ) ) ;; 如果想所有打开的文件都显示行的话就打开下面的注释 ;;(global-display-line-number-mode 1) ;; 设置显示格式 (setq display-line-number-format "%3d ") ;; 在 tool bar 上增加一个图标, ;; 注意: 一定要在 load-path 中 可以找到 display-line-nuber.xpm 文件才行。 ;; ;;(tool-bar-add-item "display-line-number" ;; 'display-line-number-mode ;; 'display-line-number-mode ;; :help "display line number!" ;; :button (cons :toggle '(and (boundp ;; display-line-number-mode) ;; display-line-number-mode))) ;; ;; 使用方法 ;; M-x display-line-number-mode ;; 用来 toggle 显示行号的模式 ;; M-x display-line-number-mode-on ;; 启动显示行号的模式 ;; M-x display-line-number-mode-off ;; 关闭显示行号的模式 ;; 仅对某种 mode 启动显示行号的模式 ;; (add-hook 'c-mode-hook 'display-line-number-mode) (add-hook 'c-mode-hook 'display-line-number-mode) (add-hook 'c++-mode-hook 'display-line-number-mode) ;=========================================END==============================================; ;;tabbar (require 'tabbar) (tabbar-mode) ;=========================================END==============================================; ;加入会话功能 (require 'session) (add-hook 'after-init-hook 'session-initialize) (load "desktop") (desktop-save-mode) ;=========================================END==============================================; ;; 启用redo (require 'redo) ;=========================================END==============================================; ;;cedet ecb安装 (add-hook 'texinfo-mode-hook (lambda () (require 'sb-texinfo))) (load-file "~/.emacs.d/site-lisp/cedet-1.0pre4/common/cedet.el") (semantic-load-enable-code-helpers) (autoload 'speedbar-frame-mode "speedbar" "Popup a speedbar frame" t) (autoload 'speedbar-get-focus "speedbar" "Jump to speedbar frame" t) (define-key-after (lookup-key global-map [menu-bar tools]) [speedbar] '("Speedbar" . speedbar-frame-mode) [calendar]) ;; 指定semantic临时文件的路径,避免到处都是临时文件 (setq semanticdb-default-save-directory "~/backups/emacs/semantic") ;;;;C/C++语言启动时自动加载semantic对/usr/include的索引数据库 (setq semanticdb-search-system-databases t) (add-hook 'c-mode-common-hook (lambda () (setq semanticdb-project-system-databases (list (semanticdb-create-database semanticdb-new-database-class "/usr/include"))))) ;; project root path (setq semanticdb-project-roots (list (expand-file-name "/"))) ;; 避免semantic占用CPU过多 (setq-default semantic-idle-scheduler-idle-time 432000) ;;ecb (add-to-list 'load-path "~/.emacs.d/site-lisp/ecb-2.32") (load-file "~/.emacs.d/site-lisp/ecb-2.32/ecb.el") (require 'ecb) (setq ecb-auto-activate nil ecb-tip-of-the-day nil ecb-tree-indent 4 ecb-windows-height 0.5 ecb-windows-width 0.13) ecb-auto-compatibility-check nil ecb-version-check nil inhibit-startup-message t ;;重启Emacs ;;运行M-x ecb-byte-complie编译,可以加快运行速度 ;;M-x ecb-show-help看在线帮助 ;;M-x customize-option RET ecb-source-path RET设置源码目录 ;;设置自动补全 (defun my-indent-or-complete () (interactive) (if (looking-at "\\>") (hippie-expand nil) (indent-for-tab-command))) (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-whole-kill ) ) ;=========================================END==============================================; ;; c-mode设置 ;; c-mode公共设置 (defun my-c-mode-common-hook () (setq default-tab-width 4) (setq tab-width 4) (setq c-basic-offset 4) (hs-minor-mode t)) (add-hook 'c-mode-common-hook 'my-c-mode-common-hook) (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 ;; C语言设置 (defun my-c-mode-hook () (c-set-style "cc-mode")) (add-hook 'c-mode-hook 'my-c-mode-hook) ;; C++设置 (defun my-c++-mode-hook () (c-set-style "stroustrup")) (add-hook 'c++-mode-hook 'my-c++-mode-hook) ;=========================================END==============================================; (defun my-c-mode-auto-pair () (interactive) (make-local-variable 'skeleton-pair-alist) (setq skeleton-pair-alist '( (?` ?` _ "''") (?\( ? _ " )") (?\[ ? _ " ]") (?{ \n > _ \n ?} >))) (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) ;;输入左边的括号,就会自动补全右边的部分.包括(), "", [] , {} , 等等。 ;=========================================END==============================================; ;;bakup (setq auto-save-default nil) ;不生成 #filename# 文件 (setq make-backup-files t) ;设定不产生备份文件 (setq auto-save-mode nil) ;自动保存模式 ;;(setq-default make-backup-files t) ; 不生成临时文件 (setq delete-old-versions t) (setq version-control 'never) ; 启用版本控制,即可以备份多次 (setq kept-old-versions 2) ; 备份最原始的版本两次,及第一次编辑前的文档,和第二次编辑前的文档 (setq kept-new-versions 1) ; 备份最新的版本1次,理解同上 (setq delete-old-versions t) ;删掉不属于以上3中版本的版本 (setq backup-directory-alist '((" " . "~/backups/emacs/"))) ; 设置备份文件的路径 (setq backup-by-copying t) ;备份设置方法,直接拷贝 ;; Emacs 中,改变文件时,默认都会产生备份文件(以 ~ 结尾的文件)。可以完全去掉 ;; (并不可取),也可以制定备份的方式。这里采用的是,把所有的文件备份都放在一 ;; 个固定的地方("~/backups")。对于每个备份文件,保留最原始的两个版本和最新的 ;; 1个版本。并且备份的时候,备份文件是复本,而不是原件。 ;=========================================END==============================================; ;;HOT KEY ;;保留F3、F4、F5、F6、F7、F8 for Xrefactory (global-set-key [f1] 'shell) ; 进入shell (global-set-key [C-f9] 'gdb) ; 调试 (setq compile-command "make -f Makefile") ; 编译 (global-set-key [f9] 'do-compile) (global-set-key [f10] 'speedbar) ; 启动/关闭speedbar (global-set-key (kbd "M-\[") 'hs-hide-block) ; 隐藏块 (global-set-key (kbd "M-\]") 'hs-show-block) ; 显示块 (global-set-key [C-f12] 'comment-or-uncomment-region) ; 注释 / 取消注释 (global-set-key [f12] 'c-indent-line-or-region) ; 格式化代码 (global-set-key (kbd "C-`") 'ecb-goto-window-sources) ; 切换到ecb sources窗口 (global-set-key [C-tab] 'other-window) ; 切换窗口 (global-set-key [M-return] 'delete-other-windows) ; 关闭其他窗口 (global-set-key "\C-xk" 'kill-this-buffer) ; 关闭当前buffer (global-set-key (kbd "s-SPC") 'set-mark-command) ; 改变set mark键 ;; 显示buffer列表 (global-set-key (kbd "C-x C-b") 'ibuffer) ;; 跳转到当前目录的Dired (global-set-key "\C-x\C-j" 'dired-jump) ;; 跳转到寄存器指定的位置 (global-set-key "\C-xj" 'jump-to-register) ;; 跳转到全局定义 (global-set-key "\C-xg" 'cscope-find-global-definition-no-prompting) (global-set-key (kbd "S-<SPC>") 'set-mark-command) ;用shift+space 来 setmark 了, C-@ 很不好按。 (global-set-key [C-=] 'my-indent-or-complete) ;自动补全或缩进 (global-set-key [\C-f12] 'ecb-activate) ;启用ECB (global-set-key [\C-S-f12] 'ecb-deactivate) ;退出ECB ;; 补全命令 右Ctrl+\ 自动补全menu (global-set-key [M-/] 'hippie-expand) ;;(global-set-key [(control return)] 'senator-complete-symbol); ;;(global-set-key [(control return)] ' senator-completion-menu-popup) (global-set-key "\C-\\" 'semantic-ia-complete-symbol-menu) ;;tabbar (global-set-key (kbd "S-<up>") 'tabbar-backward-group) (global-set-key (kbd "S-<down>") 'tabbar-forward-group) (global-set-key (kbd "S-<left>") 'tabbar-backward) (global-set-key (kbd "S-<right>") 'tabbar-forward) (global-set-key ( kbd "C-.") 'redo) ;=========================================END==============================================; (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") '(ecb-primary-secondary-mouse-buttons (quote mouse-1--mouse-2))) (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. ) ;=========================================END==============================================; ;; Xrefactory configuration part ;; ;; some Xrefactory defaults can be set here (defvar xref-current-project t) ;; can be also "my_project_name" ;;注:这里的nil改为了t (defvar xref-key-binding 'global) ;; can be also 'local or 'none (setq load-path (cons "/home/uiu/.emacs.d/site-lisp/xref/emacs" load-path)) (setq exec-path (cons "/home/uiu/.emacs.d/site-lisp/xref" exec-path)) (load "xrefactory") ;; end of Xrefactory configuration part ;; (message "xrefactory loaded") ;=========================================END==============================================;
发表评论
-
ksh 使用手记
2009-12-03 20:52 19041. 实现像bash那样上下方向键显示^[[A,^[[B,不能 ... -
Linux建立本地cvs服务器
2009-08-14 22:25 1603在RH Linux上快速建立本地CVS服务器的小指南 前提, ... -
如何在 Linux 中执行命令?
2009-08-12 21:01 24271、怎样在后台执行命令 ... -
linux查看命令/文件所在路径的命令及修改
2009-08-12 21:01 36190whereis 用来查看一个命令或者文件所在的绝对路径,而 w ... -
我的 emacs 配置文件
2009-08-11 18:29 3598; Set up nesC syntax highligh ... -
emacs的缩进和自动添加新行
2009-07-27 22:22 6949emacs很强大,但是强大是以复杂的配置为前提的!没有配置好的 ... -
linux share文件
2009-07-27 20:57 2216安装好samba并在share folder中设置好想要共享的 ... -
Emacs学习笔记
2009-07-24 23:09 18261. 如何安装el文件 A:单个文件直接放入 ... -
Ubuntu中emacs23 的字体设置和emacs初始窗口位置的小经验
2009-07-24 19:09 7813Debian users, if your emacs sta ... -
scim 智能拼音消失的恢复办法
2009-07-06 19:48 1533完全删掉~/.scim后重启scim -
Linux 字符操作指令
2009-07-03 01:19 1296awk awk 用来从文本文件中提取字段。缺省地,字段分割符 ... -
Shell编程学习摘录十三--shell函数
2009-07-02 01:16 4154shell允许将一组命令集 ... -
Linux Shell脚本编写详解
2009-07-01 23:56 58781. Linux 脚本编写基础 1.1 语法基本介绍 1 ... -
Grep用法
2009-06-25 23:40 24831. grep简介 grep (global search ... -
ubuntu不能识别U盘的问题
2009-06-19 01:57 21202ubuntu插入u盘后,系统没 ... -
linux编程环境配置
2009-06-16 21:29 1091Gedit 1. 在Edit->Perferen ... -
Ubuntu英文版中显中文
2009-06-16 00:13 2561添加中文语言包 方法1. 在system->找到 ... -
linux之less/more命令
2009-06-11 19:46 4047名称:less 使用权限:所有使用者 使用方式:les ... -
Ubuntu 修改默认启动项
2009-06-05 16:22 1890sudo cp /boot/grub/menu.lst /bo ... -
Emacs 显示行号
2009-04-11 21:52 4580显示行号 把linum.el放到加载路径~/.emacs.d ...
相关推荐
### Linux开发环境搭建与使用——SlickEdit的安装与配置 #### 一、SlickEdit简介 SlickEdit是一款功能强大的跨平台代码编辑器,它支持超过40种编程语言,包括C/C++、C#、Java、HTML、XML等。这款编辑器的设计初衷...
**嵌入式Linux ARM开发环境搭建指南** 在嵌入式领域,ARM架构因其低功耗、高性能的特点,广泛应用于各种嵌入式系统中。对于初学者来说,搭建一个适合的ARM-Linux开发环境是入门的第一步。这个过程可能涉及硬件仿真...
**1.4 嵌入式Linux开发环境** - **搭建步骤**:选择合适的开发工具(如GCC、GDB)、设置交叉编译环境、配置调试环境等。 - **工具介绍**:GCC(编译器)、GDB(调试器)、Make(构建工具)等。 **1.5 嵌入式Linux...
对于开发环境,Linux提供了丰富的开发工具,如GCC编译器、GDB调试器、Vim或Emacs编辑器、Git版本控制等。搭建IDE(集成开发环境)如Eclipse、IntelliJ IDEA或Visual Studio Code也是开发者常做的事,这些工具支持...
对于 Go SDK,Termux 提供了一个便捷的方式在 ChromeOS 上搭建开发环境。Go 是一种静态类型的、编译型的、垃圾回收的、并发式的编程语言,特别适合编写网络服务和系统工具。在 Termux 中安装 Go SDK 后,开发者可以...
本资料“基础篇04-linux基本命令以及开发环境.rar”聚焦于Linux操作系统中的基本命令和开发环境的搭建,这对于初学者或者想要提升Linux技能的IT从业者来说至关重要。 Linux的基本命令是操作系统交互的基础,它们...
一、开发环境搭建 1.安装编译器: 1.对于C/C++开发者,GCC编译器是不可或缺的。可以通过包管理器(如apt-get)安装GCC及其依赖项,如sudo apt-get install build-essential。 2.安装调试工具: 1.GDB是Linux下常用的...
SBCL以其快速的编译器和交互式开发环境而受到Lisp社区的广泛欢迎。 在安装SBCL之前,首先需要了解Lisp环境的基础知识。Lisp是一种历史悠久的编程语言,以其独特的括号语法和高度可读性著称。Common Lisp是Lisp的一...
以下将详细讲解在Ubuntu环境下配置Linux开发环境的各个关键环节。 首先,我们需要进行中文环境的设置,确保系统能够正确显示中文字符并提供中文输入法。在“系统”->“系统管理”->“语言支持”(英文菜单为 System...
这份详尽的教程旨在为Python开发者提供一套全面而深入的学习资料,涵盖Python编程的基础到高级技巧,以及如何利用PyCharm这一强大的集成开发环境(IDE)来提升开发效率。该教程共分为331页,内容丰富且实用。 #### 二...
本文档旨在指导用户如何在Linux环境下搭建一个用于实验的开发环境,特别关注于安装GCC 3.4.0编译器的过程。通过本教程,读者将能够成功安装所需软件,并配置好开发环境,以便进行Linux内核或其他项目的开发与调试。 ...
Linux项目开发攻略可以涵盖多个方面,包括开发环境搭建、开发工具使用、项目管理、版本控制、性能优化等。以下是一个较为全面的Linux项目开发攻略: 一、开发环境搭建 1.选择Linux发行版: 1.根据项目需求和个人喜好...
嵌入式Linux系统开发环境的搭建对于任何涉足这一领域的工程师来说都是至关重要的步骤。在这个过程中,你需要在PC上建立一个...总之,搭建嵌入式Linux开发环境是一个必要的起点,它将为后续的开发工作打下坚实的基础。
在本教程中,我们将深入探讨如何在Linux 6.3虚拟机上...文档“Linux系统下C开发环境搭建过程笔记.doc”可能包含了详细的步骤记录,供你在安装配置过程中参考。记得在每个步骤中检查错误日志,以确保一切按计划进行。
【描述】: "本教程旨在帮助初学者了解如何在Linux环境下进行C语言编程,提供从开发环境搭建到实际编程的指导" 【标签】: "C语言", "Linux开发", "GCC", "GDB" 在Linux系统中进行C编程是一项基础且重要的技能,广泛...
在Linux环境下进行软件开发是一项基础且重要的技能,无论是系统管理员、程序员还是数据分析人员,都需要对Linux开发环境有所了解。本文将详细介绍如何在Linux系统中搭建一个高效、实用的开发环境。 首先,我们要...
开发环境的搭建通常建议在Windows上使用虚拟机软件,如VMware,安装Linux操作系统,这样可以在不影响现有系统的情况下进行学习和开发。对于初学者,可以选择内存较大的PC以确保开发环境的流畅运行。 在Linux系统中...
在Linux环境下进行C和...以上就是Linux下C/C++编程环境搭建的主要步骤和相关知识点。通过这些知识,你不仅可以建立自己的开发环境,还能更好地理解和掌握C/C++编程。记得不断实践和探索,编程技巧会在实践中不断提升。
2. **Emacs配置**:描述中提到的多个HTML文件(如“emacsemacs23下搭建python开发环境 [杂乱的维基].htm”)可能包含有关如何在Emacs 23版本上设置Python开发环境的详细步骤和技巧。这些文档通常会指导用户安装必要...