emacs24
http://kanpe777.github.io/blog/2014/01/12/yum-install-emacs24-on-centos-6-dot-5/
安装
$ cd /etc/yum.repos.d
$ wget http://pj.freefaculty.org/EL/pjku.repo
$ rpm --import http://pj.freefaculty.org/EL/PaulJohnson-BinaryPackageSigningKey
$ yum install emacs
$ emacs -version
m-x list-packages
http://ergoemacs.org/emacs/emacs_package_system.html
Install Packages
This list is shown in package-menu-mode. In this mode, here's the most useful keys:
【Enter ↵】 Describe the package under cursor. (describe-package)
【i】 mark for installation. (package-menu-mark-install)
【u】 unmark. (package-menu-mark-unmark)
【d】 mark for deletion (removal of a installed package). (package-menu-mark-delete)
【x】 for “execute” (start install/uninstall of marked items). (package-menu-execute)
【r】 refresh the list from server. (package-menu-refresh)
基本
m-x global-linum-mode
行号
m-x linux-mode
m-f m-b
跳到行号
m-g g n
c-u n 重复n次命令
C-h t 调出Emacs Tutorial。
C-h r 调出Emacs Manual。
C-h k (command) ,调出对应command的帮助,比如C-h k C-n 就是查看C-n的帮助。
插入空行,C-o 。删除空行C-x C-o
eclipse:
eclipse:
某些编译错误比如 Unused static function
window----Preferences----C/C++-------Code Analysis
expected ‘)’ before ‘*’ token
编译也编译不对,干嘛要编译
使用
import----C/C++ Executeable
找到编译好的nginx或者redis-server文件就好了
但是编译的时候一定要
make CFLAGS="-g -O0"
----------------
lisp的helloworld,记得加(interactive) 否则报commandp错误
(global-set-key (kbd "C-z t") 'say-hello)
(defun say-hello()(interactive)(print "haoning shuaige "))
常用命令
默认加载el的路径/usr/share/emacs/site-lisp
emacs git
http://www.cnblogs.com/holbrook/archive/2012/04/26/2470923.html
重新加载配置文件
M-x load-file
~/.emacs
emacs当前行高亮
(global-hl-line-mode 1)
搜索:
http://front.sjtu.edu.cn/~gwxie/search.html
C-s
自动补全
当你输入了ema,如果发现已经搜索到了定位emacs了,你可以用C-w来不全emacs
重回光标
如果搜索成功了 C-g 如果搜索没有成功 C-g C-g
重新搜索前一次关键字
C-s C-s
选择搜索过的关键字
C-s M-p (M-n) 无论查找还是替换情况下,M-n和M-p都可以用来翻阅查找历史记录
etags
http://linux.chinaunix.net/techdoc/desktop/2008/09/13/1031663.shtml
1).安装etags,一般来讲,这是emacs的内建程式;
2).在当前目录建立tag table:M-! etags *.[ch];
3).使用:
A.M-. :跳至相应的函数定义处;
B.M-* :返回刚才的函数名处;
C.C-u M-. :如果emacs找错了,找下一个;
D.M-Tab :自动补齐函数名;
4).在当前目录将.h和.cpp文件提取出来做成tags文件:
find . -name "*.[chCH]" -print | etags -
或
find -name "*.cpp" -exec etags -a {} ;
5).将创建好的tag表通知emacs:
M-x visit-tags-table
6).让emacs自动读取tag文件内容:
在~/.emacs文件中类似如下内容:
(setq tags-file-name "~/project/src/TAGS")
得到更旧的“剪切”的方法是先输入 C-y,您将看到最近的块。然后,输入 M-y,一步步遍历剪切环。每一步替换前面的粘贴
在Emacs中画思维导图
http://hi.baidu.com/jiqing0925/item/7f8255cf58625826a0b50a82
http://users.skynet.be/ppareit/projects/graphviz-dot-mode/graphviz-dot-mode.html
1. graphviz-dot-mode.el 的文件,把它放入你的 elisp 路径中。在 .emacs 中加入: (load-file "/path/to/graphviz-dot-mode.el")
2. 学习一点 dot 语法,编辑描述你图形的 dot 文件。
3. 编辑完后, C-c c 编译生成图片, C-c p 可以预览图片
M-x global-set-key RET 交互式的绑定你的键。
C-x Esc Esc 调出上一条“复杂命令”。
http://docs.huihoo.com/homepage/shredderyin/wiki/KeyBinding.html
常用命令http://linux.chinaunix.net/techdoc/system/2007/10/03/969174.shtml
emacs cscope:
C-c s a设定代码根目录,cscope.files必须放在这个设定目录下,否则cscope找不到
RET=Select, SPC=Show, o=SelectOneWin, n=ShowNext, p=ShowPrev, q=Quit, h=Help
http://blog.csdn.net/intrepyd/article/details/4202312
find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.cpp" -o -name "*.hpp" > cscope.files
cscope -bkq -i cscope.files
5 在代码中穿梭
查找函数或者变量 c-c s s
查找函数或变量的定义 c-c s g
查找函数在哪里被调用了,c-c s c
查找该函数调用了哪些函数 c-c s C
查找到的函数上次出现的位置 c-c s p
查找到的函数下次出现的位置 c-c s n
yum install cscope
whereis cscope
[root@VM_12_197_centos upstream]# whereis cscope
cscope: /usr/bin/cscope /usr/share/cscope /usr/share/man/man1/cscope.1.gz
[root@VM_12_197_centos upstream]# cd /usr/share/cscope
[root@VM_12_197_centos cscope]# ls
xcscope.el
~/.emacs 配置
add-to-list 'load-path' "/data/haoning/mygit/mynginxmodule/edit/emacs-plugins/cscope-plugin")
(require 'xcscope)
;只在打开c/c++文件的时候才加载xcscope,可以加入
(add-hook 'c-mode-common-hook '(lambda() (require 'xcscope)))
(define-key global-map [(control f3)] 'cscope-set-initial-directory)
(define-key global-map [(control f4)] 'cscope-unset-initial-directory)
(define-key global-map [(control f5)] 'cscope-find-this-symbol)
(define-key global-map [(control f6)] 'cscope-find-global-definition)
(define-key global-map [(control f7)] 'cscope-find-global-definition-no-prompting)
(define-key global-map [(control f8)] 'cscope-pop-mark)
(define-key global-map [(control f9)] 'cscope-next-symbol)
(define-key global-map [(control f10)] 'cscope-next-file)
(define-key global-map [(control f11)] 'cscope-prev-symbol)
(define-key global-map [(control f12)] 'cscope-prev-file)
(define-key global-map [(meta f9)] 'cscope-display-buffer)
(define-key global-map [(meta f10)] 'cscope-display-buffer-toggle)
(setq cscope-do-not-update-database t)
whereis cscope-indexer
vim /usr/bin/cscope-indexer
改cscope-indexer脚本,将
cscope -b -i $LIST_FILE -f $DATABASE_FILE
替换为
cscope -q -b -i $LIST_FILE -f $DATABASE_FILE
附:默认的按键绑定
;; * Keybindings:
;;
;; All keybindings use the "C-c s" prefix, but are usable only while
;; editing a source file, or in the cscope results buffer:
;;
;; C-c s s Find symbol.
;; C-c s d Find global definition.
;; C-c s g Find global definition (alternate binding).
;; C-c s G Find global definition without prompting.
;; C-c s c Find functions calling a function.
;; C-c s C Find called functions (list functions called
;; from a function).
;; C-c s t Find text string.
;; C-c s e Find egrep pattern.
;; C-c s f Find a file.
;; C-c s i Find files #including a file.
;;
;; These pertain to navigation through the search results:
;;
;; C-c s b Display *cscope* buffer.
;; C-c s B Auto display *cscope* buffer toggle.
;; C-c s n Next symbol.
;; C-c s N Next file.
;; C-c s p Previous symbol.
;; C-c s P Previous file.
;; C-c s u Pop mark.
;;
;; These pertain to setting and unsetting the variable,
;; `cscope-initial-directory', (location searched for the cscope database
;; directory):
;;
;; C-c s a Set initial directory.
;; C-c s A Unset initial directory.
;;
;; These pertain to cscope database maintenance:
;;
;; C-c s L Create list of files to index.
;; C-c s I Create list and index.
;; C-c s E Edit list of files to index.
;; C-c s W Locate this buffer's cscope directory
;; ("W" --> "where").
;; C-c s S Locate this buffer's cscope directory.
;; (alternate binding: "S" --> "show").
;; C-c s T Locate this buffer's cscope directory.
;; (alternate binding: "T" --> "tell").
;; C-c s D Dired this buffer's directory.
w3m 文本浏览器
yum install emacs-w3m
M-x w3m
windows的 配置文件在
http://lianghz.blog.51cto.com/4577280/1124989
C:\Users\Administrator\AppData\Roaming
emacs微博 http://emacser.com/weibo.htm
http://www.ibm.com/developerworks/cn/linux/l-cn-emacs-shell/index.html?ca=drs-4
emacs窗口
自动补全
http://emacser.com/emacs-gccsense.htm
配置auto-complete
下载:http://cx4a.org/software/auto-complete/
配置.emacs,我的auto-complete在/mydoc/lib/emacs-plugins/下
?View Code LISP
; auto complete(add-to-list 'load-path "/mydoc/lib/emacs-plugins/auto-complete")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "/mydoc/lib/emacs-plugins/auto-complete/ac-dict")
(ac-config-default)
gcc-code-assist就是在gcc代码基础上改的,主要用来从代码中提取补全信息
下载:http://cx4a.org/software/gccsense/#Downloads
yum install mpfr-devel gmp-devel
./configure --program-suffix=-code-assist --enable-languages=c,c++ --disable-bootstrap --disable-multilib
make
make install
$ gcc-code-assist --version
$ g++-code-assist --version
安装配置gccsense
gccsense这个包包含一些辅助函数,以及编辑器的插件
1. 解压缩之后,执行:
?View Code BASH
$ cd gccsense-*
$ sudo cp bin/* /usr/local/bin/
2. 执行一下命令,确保安装成功:
?View Code BASH
$ gccrec --version
$ autopch --version
3. emacs的插件文件为etc/gccsense.el,放到插件目录然后,在.emacs里面加入
?View Code LISP
(require 'gccsense)
即可。
由于我的gccsense.el放到了。/mydoc/lib/emacs-plugins/c下,并且把auto-complete的补全命令绑定到了M+/上,所以这部分配置如下:
?View Code LISP
(add-to-list 'load-path "/mydoc/lib/emacs-plugins/c")
(require 'gccsense)
(global-set-key "\257" (quote ac-complete-gccsense))
ok,搞定。
可能遇到ruby和sqlite的依赖
gem i sqlite3-ruby
yum install ruby
yum install rubygems
yum install sqlite3
yum install sqlite3-devel
gem install sqlite3
yum install ruby-devel
---------------------------------------------
设置CentOS 解除自动待机休眠
2011-10-31 12:33:12| 分类: Linux | 标签:linux |举报|字号 订阅
配置 xorg.conf,且不能出错,否则系统可能会起不来,所以配置时要格外小心。
vi /etc/X11/xorg.conf
添加以下内容
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection
Section "Monitor"
Option "DPMS" "false"
EndSection
重启Linux系统即可!
emacs 安装auto-complete 视频
http://www.youtube.com/watch?v=rGVVnDxwJYE
M-x eshell
M-x load-file
Load file: /data/haoning/mygit/mynginxmodule/edit/emacs-plugins/auto-complete/etc/install.el
vim ~/.emacs
(add-to-list 'load-path "~/.emacs.d/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict")
(ac-config-default)
auto-complete
补全键到M+/,这样,遇到要补全的地方,按下M+/就出现了补全菜单,旁边是提示。
M+p M+n
http://emacser.com/emacs-gccsense.htm
下载
http://cx4a.org/software/auto-complete/
http://blog.sina.com.cn/s/blog_4d90eb6f01000bmy.html
emacs etags
目录树
http://lifegoo.pluskid.org/wiki/EmacsAsFileManger.html
C-x dired
位移
Transposing Text
Ctrl-t (transpose-chars)
游标前後两个字元(character)互调。
ESC-t(transpose-words)
游标前後两个字(word)互调。但两个中间的标点符号 (punctuation)
则不会移动。例如, transposing,text 则互换成 text,transposing 而不是
text transposing,。
Ctrl-x Ctrl-t(transpose-lines)
前後两列互换。将游标所在的列与其上一列互换。
下面得配合C-@使用
ESC-l
将一个字的字元改成小写的字元。键入指令 ESC-l 会将游标所在 处之後的
所有字元换成小写的字元,其范围只限於游标所在处的 那一个字。
ESC-u
将一个字的字元改成大写的字元。键入指令 ESC-l 会将游标所在 处之後的
所有字元换成大写的字元,其范围只限於游标所在处的 那一个字。
ESC-c
将游标所在处的字元换成大写的字元(capital),所以如果要使 一个字以
大写为开始可以使用此指令。
文字的勘误△
ESC-x ispell-change-dictionary
ispell 使用了两种不同的字典,一种是由 ispell 所提供的标准字典(standard
dictionary)。另一种是使用者自已 建构的私有字典(private dictionary)
书签,register,
可以瞬间切换多个文件用
http://blog.csdn.net/pfanaya/article/details/7068710
Ctrl-x r SPC r 将游标的位置储存於 register r 内
Ctrl-x r j r 跳到r
Ctrl-x r r r 将所设定好的线性文件放入 register r 中
Ctrl-x r i r 将存放於 r 中的资料取出使用
--------书签-----
Ctrl-x r m bookmark 设置这个位置为书签 bookmark
Ctrl-x r b 跳到某个书签
bookmarks-bmenu-list 功能可以列出一个由已设置的所有书签组成的菜单。通过键入 C-x r l 运行该功能
键入 M-x bookmark-delete
搜索
在启动了 nonincremental search之後,在 ``Search:'' 或
``Search backward:''之後键入 ``Ctrl-w'',则表示要执行字的搜寻
Ctrl-r RET string RET
Ctrl-s RET string RET
Ctrl-r RET Ctrl-w words RET
Ctrl-s RET Ctrl-w words RET
---------------------------------------------------
Regexp 的 incremental search
ESC-Ctrl-s(isearch-forward-regexp)
使用Regexp 的搜寻方法: 先按下 ``ESC'' 之後再将其放掉,随後再按下 ``Ctrls'',
echo area 处就会出现 Regexp I-search: 这时就可以输入 Regexp 的表示字串
了。 当然还有若干事与 Regexp 的搜寻有关,讨论如下:
若要继续以 Regexp 的方法搜寻,只需继续键入 ``Ctrl-s'' 就可找到下一笔
相关的资料。
Regexp 的搜寻,也有其独立的 search-ring。 这也意谓著可以再使用
Regexp 的 search ring 。 其使用法与前所讨论的方法一样,就是以 `` ESCp''
与 `` ESC-n'' 来再使用Regexp 的 search-ring。
ESC-Ctrl-r(isearch-backward-regexp)
往回(左)的 Regexp 搜寻,若想继续的往回找寻想要的字串, 只需键入 ``
Ctrl-r'' 即可。当然,也可以 `` ESC-p'' 与 `` ESC-n'' 来再使用其 search-ring。
nonincremental search
以下是以 Regexp 来执行 nonincremental search的方法。
ESC-x re-search-forward
ESC-x re-search-backward
替换
键绑定 操作(命令)
C-s isearch-forward
C-r isearch-backward
<find> search-forward
Esc C-s isearch-forward-regexp
Esc C-r isearch-backward-regexp
n/a replace-string
M-% query-replace
ESC-x replace-string
ESC-x replace-Regexp RET Regexp RETnewstring RET 正则替换
ESC-x query-replace RET string RET newstring RET
Query Replace顾名思义就是在取代时会徵询取代的意见, 使用者可根据需要来取决是
否要进行取代。
http://www.cnblogs.com/coderzh/archive/2009/12/26/commonemacs.html
M-x shell 打开SHELL
M-! 执行SHELL命令 (shell-command)
1.ESC-!(shell-command)
2.ESC-x shell-command-on-region
3.Ctrl-u ESC-! 与 Ctrl-u ESC- 在 ESC 前加上 Ctrl-u ,可以将 shell 指令执行的结
果,输出到 游标所在的位置
4. ESC-x shell 是唤起 shell mode的指令。
目录操作 看附件中的文档
C-x dired
打开远程文档
C-x C-f
Find file: /[email protected]:~/daxiong.sh
在emacs中使用 gdb ,有eclipse的赶脚了
http://www.cnblogs.com/qlwy/archive/2012/06/04/2535297.html
M-x compile
支持C-backspace 修改minibuffer
改成gcc -g -o test test.c
直接M-x gdb
显示gdb –annotate=3 test回车就进入了调试模式
M-x gdb-many-windows 切换单窗格/多窗格模式
M-x gdb-restore-windows 恢复窗格布局
EMACS 提供了四种 debugger,分别为 gdb、dbx、xdb 与 sdb,使用者可根据需来选择合
适的 debugger。此处,只将使用 debugger 的指令列举如下:
ESC-x gdb RET file RET
ESC-x dbx RET file RET
ESC-x xdb RET file RET
ESC-x sdb RET file RET
emacs中文帮助
M-x help-with-tutorial-spec-language
用 ‘C-h t’ 就可以看到了 (按 Control 和 h,同時放開,然後按 t)。
如果不行的話,試試 ‘F1 t’。
如果也不行的話,試試 ‘M-x help-with-tutorial’ (按 Escape,放開,按 x,放開,然後輸入 help-with-tutorial,最後按 Enter)。
哦,這不是因為 Emacs 不可靠--而是我們不知道你現在是在什麼系統上使用 Emacs,是 X , Windows ,是在主控台 (console) 模式,或是模擬終端機 (termial) 模式,我們也不知道你的模擬終端機設定,是不是透過 ssh 來連線……等等。你所使用的環境會影響 C-h 或 F1 的作用的。
如果你想看非英語的使用手冊,請用 M-x help-with-tutorial-spec-language。( 現在可用的有:bg, cn, cs, de, es, fr, it, ja, ko, nl, pl, ro, ru, sk, sl, sv, th, zh)
`Ctrl-h c'' 与 ``Ctrl-h k'' 的功能相似, 二者都是在寻求与 Hotkey
有关的讯息。二者唯一的差别,就在於对指令的解释详细与否而已
emacs显示中文
http://xumingming.sinaapp.com/819/emacs-cn-solution/
(set-language-environment 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'euc-cn)
(set-terminal-coding-system 'utf-8)
(set-buffer-file-coding-system 'euc-cn)
(set-selection-coding-system 'euc-cn)
(modify-coding-system-alist 'process "*" 'utf-8)
(setq default-process-coding-system
'(euc-cn . euc-cn))
(setq-default pathname-coding-system 'utf-8)
ibm的教程,很好
http://www.ibm.com/developerworks/cn/education/linux/l-emacs/section4.html
http://www.ibm.com/developerworks/cn/education/aix/au-emacs3/section2.html
值得注意的一些常用点
undo就是redo
http://hi.baidu.com/skyyjl/item/9043d9b5a2c54c77254b09ab
C-x u
C-x _
C-/
之后随便操作啥,比如C-f 再进行undo就是redo
重复操作:
这里的
C-u = M
插入几个空行:键入 M-4,然后按 Enter 键。
缩进八个空格:输入 M-8,然后按空格键。
使用 M-3 - 插入三个破折号。
使用 C-x z 重复执行一次。
您还可以反复地执行一个命令——通过再次键入 z,以便再次重复执行一次该命令;不断地键入 z 就可以反复地执行该命令。
可以删除一万行 M-10000 C-k
C-x i 插入file
C-@(C-space) mark
交换光标和标记:键入 C-x C-x
缓冲区
C-x C-s save-buffer 将当前的缓冲区保存到磁盘。
C-x s save-some-buffers 要求将所有未保存的缓冲区保存到磁盘。
C-x C-c save-buffers-kill-emacs 要求将所有未保存的缓冲区保存到磁盘,并退出 Emacs。
C-x C-z suspend-emacs 挂起 Emacs 并使之成为一个后台进程。
C-x C-b list-buffers 列出所有缓冲区。
C-x b 切换缓冲区
C-x o 窗口切换 ★
C-x ->(<-):按下C-x后(放开)再按向右(左)方向键可以定位到下(上)一个buffer中。
M-x goto-line 跳到指定行
行号:
M +x linum-mode
C-x k kill-buffer 杀死一个缓冲区(缺省情况下为当前的缓冲区)。
C-x C-q vc-toggle-read-only 切换当前缓冲区的可读状态(如果适用还可以执行版本控制)。
C-x i insert-file 在插入点插入某个文件的内容。
剪切矩形
将光标移动到以 What the hammer 开始的节的开头,并键入 C-space 以设置标记。
移动光标,使其恰好位于单词 terrors 之前,以指定一个包含四行的矩形区块(顺便提一下,该区块中每行包括三个单词)。
剪切您选择的矩形区块:键入 C-x r k。
删除
C-x r d
清除 空格字符替换整个区域
C-x r c
粘贴
C-x r y
打开,插入空格
C-x r o
M-< 到开头
M-> 到最后
键绑定 操作(命令)
C-g (Esc Esc Esc) keyboard-quit 用来退出已启动的命令
C-Backspace backward-delete-char
Delete (C-d) delete-char
C-x u (C-_) advertised-undo
M-d kill-word
M-Delete backward-kill-word
M-k kill-sentence
C-x Delete backward-kill-sentence
C-k kill-line
C-y yank 等同于粘贴
M-y 遍历剪切环,必须跟 C-y
C-u, C-u N universal-argument,在命令前加上次数前缀
http://www.cnblogs.com/robertzml/archive/2009/09/23/1571942.html
用 Meta 键,可以利用 EMACS completion 的功能。因为 completion 可以让使用者键入最
少的字,就可使系统唤起所欲执行的命令
TAB 尽可能将其余的字串填满
SPACE 将 puncutation 字元之前的字填满,填充的字不会超过一个字以上
? 将所有可能的 completions 选择都列出来
用 C-u C-v 将本行带到屏幕的最上方。
输入 C-h m,看看 Text 模式与 Fundamental 模式有哪些不同。
输入 C-x 1 关掉文档窗格。
auto-fill-mode 排版 (出自M-x help-with-tutorial-spec-language 690行)
>> 现在输入 M-x auto fill mode<Return>。然后随便敲点什么,直到你看到它
分成两行。你必须敲一些空格,因为 Auto Fill 只在空白处进行断行。
【输入空格对英文来说是必须的,而对中文则不必。】
行边界通常被设定为 70 个字符【这里指英文字符】,你可以用 C-x f 命令配合
数字参数来重新设定它。
>> 输入 C-x f 并传递参数 20: C-u 2 0 C-x f。
然后输入一些文字,观察 Emacs 的自动折行动作
最后再用 C-x f 将边界设回 70。
如果你在段落的中间做了一些修改,那么自动折行模式不会替你把整个段落重新
折行,你需要用 M-q 手动折行。注意,光标必须位于你需要折行的那一段里。
>> 移动光标到前一段中,然后输入 M-q。
搜索(出自M-x help-with-tutorial-spec-language 729行)
看仔细了么?在一次渐进式搜索中,Emacs 会尝试跳到搜索目标出现的位置。要
跳到下一个命中位置,就再按一次 C-s。如果找不到目标,Emacs 会发出“哔”
的一声,告诉你搜索失败。在整个过程中,都可以用 C-g 来终止搜索。【你会发
现 C-g 会让光标回到搜索开始的位置,而 <Return> 则让光标留在搜索结果上,
这是很有用的功能。】