
##常用
ctrl+p: 光标上移ctrl+n:光标下移ctrl+f:光标右移ctrl+b:光标左移ctrl+v:下一页alt+v:上一页ctrl+a:行头ctrl+e:行尾alt+<:文章头alt+>:文章尾ctrl+z:挂起最小化Backspace:删除左边的字符alt+d: 删除光标后面的字符ctrl+d:删除光标上的字符ctrl+k:剪切整行ctrl+y:召回(粘贴)ctrl+@: 进入选中模式ctrl+shift+方向键:选中文字ctrl+x ctrl+x:检查选中的文字alt+h:快速选中段落ctrl+x h:全选ctrl+w:剪切alt+w:复制ctrl+u n:重复n次操作ctrl+x u:撤销ctrl+l:重绘屏幕并以当前行为中心alt+q:段落重排(段落前后有空白行)ctrl+t:交换当前以及前面的字符(alt+t是词)alt+c:首字母大写(加alt+-,更好用)alt+l:全部小写alt+u:全部大写ctrl+g:命令终止ctrl+x ctrl+f:打开文件ctrl+x ctrl+v:重新打开ctrl+x ctrl+s:保存文件ctrl+x s:保存所有缓冲区文件ctrl+x ctrl+w:另存为ctrl+x ctrl+f filename~ 回车:打开存盘时的备份文件(再另存为filename即可恢复)alt+x revert-buffer 回车:撤销自上次存盘之后的所有修改alt+x recover-file 回车:恢复丢失的编辑修改ctrl+s:查找(ctrl+s下一个,ctrl+r上一个)ctrl+s alt+y:查找粘贴的内容alt+x replace-string 回车 a 回车 b 回车:从光标开始查找并替换,全部a替换为balt+%:查询替换,按空格键或y替换,按n不替换,!对后面的内容全部替换不再询问,回车退出ctrl+x b:切换编辑缓冲区,可用TAB补全ctrl+x ctrl+b:查看编辑缓冲区清单,空格键下移,- 按
d待删除 - 按
s待保存 - 按
u取消标记 - 按
x执行 - 按
m键待显示按v执行 - 按
回车打开 - 按
%改变读写状态 - 按
1将编辑缓冲区满屏显示 - 按
o(ctrl+o)在新建窗口打开
- 按
ctrl+x k:删除编辑缓冲区ctrl+x ctrl+q:只读和读写模式切换ctrl+x 2:上下分割两个窗口ctrl+x 3:左右分割两个窗口ctrl+x 1:只保留当前窗口ctrl+x 0:删除当前窗口ctrl+x o:切换到另一个窗口ctrl+x ^:加高窗口alt+x shrink-window:压低窗口ctrl+x }:加宽窗口ctrl+x {:变窄窗口ctrl+x -:将窗口收缩至文本大小ctrl+x +:平均分割所有窗口alt+ctrl+v:卷动另一个窗口的文本alt+x compare-windows:比较两个窗口的不同之处ctrl+x r m:设置书签ctrl+x r b:打开书签,可用TABctrl+x r l:书签清单,按d待删除,按x执行,r重命名,s保存,m待显示v执行,alt+x bookmark-rename:重命名书签alt+x bookmark-delete:删除书签ctrl+x 5 2:打开新的emacsctrl+x 5 b:在新的emacs中打开指定编辑缓冲区ctrl+x 5 f:在新的emacs中查找并打开文件ctrl+x 5 o:切换不同的emacs窗口ctrl+x 5 0:关闭emacs窗口alt+!:shell命令模式alt+|:指定缓冲区域的命令模式ctrl+u alt+!:将命令输出到emacs缓冲区域alt+x shell:打开shell的编辑缓冲区,(alt+p,上一条命令)ctrl+x d:打开目录清单Dired- 按
s可以排序 n、p用来移动>下一个目录,<上一个目录- 按
v查看不能改(s查找,q或ctrl+c退出) - 按
e或f编辑打开 o在新窗口打开- 按
d待删除,按D立刻删除 - 按
u取消标记 #所有自动保存文件待删除,~所有备份文件待删除,*执行文件,/目录,ctrl+u #取消标记(数字)C复制文件R移动重命名Z压缩与解压缩=开启diff!执行shell命令g刷新m添加待操作标记即选取多个文件alt+del去掉待操作标记+创建目录Q查找替换q退出Dired
- 按
alt+x man 回车 命令 回车:查man手册alt+x display-time:显示时间alt+x calendar:显示日历ctrl+x (:宏定义ctrl+x ):宏定义结束,ctrl+g可以中断宏录制ctrl+x e:执行宏alt+x name-last-kbd-macro:给宏起名(alt+x name执行这个宏)(global-set-key "/C-x1" 'help-command):按键绑定,在.emacs中添加这一句。ctrl+x 1执行help-command这条命令。ctrl+h p:查看已安装的Lisp程序
##编程
alt+m:在程序编写中,跳转到行首非空字符alt+^:将当前行合并到上一行alt ctrl+/:将选中的代码整形,感觉不好用,选中之后直接按tab可以完成缩进alt+;:注释ctrl+;:选择并粘贴ctrl+x ctrl+x:选中当前行,并将光标头尾切换alt+j:换行注释,拆分长注释alt+a:移动到语句开头alt+e:移动到语句结尾alt ctrl+a:移动到函数开头alt ctrl+e:移动到函数结尾alt ctrl+h:选中整个函数(快捷键冲突)ctrl+c ctrl+a:打开自动开始新行,c-toggle-auto-statectrl+c ctrl+d:开启饥饿的删除键,可以一下删除很多空格,命令名:c-toggle-hungry-stateetags *.java:在emacs的shell里面输入,建立函数标签表TAGSalt+x visit-tags-table:选择TAGS,emacs活得函数标签表alt+.:查找函数ctrl+x 4 .:新窗口查找函数alt+,:找下一个同名alt+x list-tags:列出所有tagsalt+x compile:编译,默认编译命令make k,然后输入需要编译的文件,回车ctrl+x 反引号:编译出错时移动到下一条错误信息并访问源代码alt+n:下一条出错信息alt+p:上一条出错信息ctrl+c ctrl+c:访问对应当前错误信息的源代码
##java
yaourt jdee:安装jdee,没人维护,变成孤包了,依赖安装cedet、emacs-elib/usr/share/emacs/site-lisp: emacs的一个主要目录- 还是算了吧,用emacs写java就是自虐,archlinux上面的jdee都没人维护了,安装困难…
##命令行
emacs -nw:命令行打开emacsctrl+z:挂起最小化,fg重新回到emacsctrl+x ctrl+c:退出emacs
##markdown
- 将markdown-mode.el复制到~/.emacs.d/下面,在~/.emacs中添加
(autoload 'markdown-mode "markdown-mode"
"Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist '("\\.text\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))
ctrl+c ctrl+c p:转换为html文件并打开,可能会没有markdown支持,有两种办法:pacman -S markdown:安装markdownln -s markdown_py markdown:在/usr/bin生成markdown的符号链接
##org-mode
alt+x list-packages:列出所有已安装的包*:不同的数量表示不同级别的标题shift+tab:标题折叠切换tab:当前标题折叠切换ctrl+c ctrl+n/p:移动到下一标题或上一标题ctrl+c ctrl+f/b:移动到同级的下一标题或上一标题ctrl+c ctrl+j:切换到大纲浏览状态alt+LEFT/RIGHT:标题降级或升级alt+shift+LEFT/RIGHT:子树降级或升级ctrl+x n s/w:只显示当前子数/返回ctrl+c ctrl+x b:在新缓冲区显示当前分支alt+x org-indent-mode:大纲内容缩进(setq org-startup-indented t)ctrl+c ctrl+l:创建链接ctrl+c ctrl+o:打开链接*粗体*/斜体/+删除线+_下划线_下标: H_2 O上标: E=mc^2等宽字: =git= 或者 ~git~-
ctrl+c |:创建表格,表头“Name Pone Age”之后,按C-c RET生成表格,TAB移动新建, - 无序列表项以‘-’、‘+’或者‘*‘开头。
- 有序列表项以‘1.’或者‘1)’开头。
ctrl+c ctrl+e:发表
##C/C++ 开发环境搭建 ###package管理
; start package.el with emacs
(require 'package)
; add MELPA to repository list
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
; initialize package.el
(package-initialize)
ps.加了这个库之后,可以查看更多的包并安装
alt+x package-list-packages查看库中的包,可以选择安装,按i待安装,按x执行。
###auto-complete
alt+x package-list-packagesctrl+s搜索auto-complete,用i标记,x安装-
修改~/.emacs,加入以下代码
; start auto-complete with emacs (require 'auto-complete) ; do default config for auto-complete (require 'auto-complete-config) (ac-config-default) 重启emacs,神奇的魔法诞生了,自动补全有了! - 同样的方式安装
yasnippet -
配置~/.emacs
; start yasnippet with emacs (require 'yasnippet) (yas-global-mode 1) yasnippet可以根据语义和语法结构进行补全,比如打`fo`按`TAB`就会出现选择,按`TAB`选择,回车,整个for结构就出来了。 - 安装
auto-complete-c-headers gcc -xc++ -E -v -查看c++头文件所在的文件夹(感觉非必须)-
配置~/.emacs
; let's define a function which initializes auto-complete-c-headers and gets called for c/c++ hooks (defun my:ac-c-header-init () (require 'auto-complete-c-headers) (add-to-list 'ac-sources 'ac-source-c-headers) (add-to-list 'achead:include-directories '"/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.1/include") ) ; now let's call this function from c/c++ hooks (add-hook 'c++-mode-hook 'my:ac-c-header-init) (add-hook 'c-mode-hook 'my:ac-c-header-init) 其中的路径就是通过第7步查看的,但是不加这一句,头文件照样可以自动不齐,可能非必须。
###cedet
-
Semantic(cedet中的一个,cedet已经内置),只需配置.emacs
; turn on Semantic (semantic-mode 1) ; let's define a function which adds semantic as a suggestion backend to auto complete ; and hook this function to c-mode-common-hook (defun my:add-semantic-to-autocomplete() (add-to-list 'ac-sources 'ac-source-semantic) ) (add-hook 'c-mode-common-hook 'my:add-semantic-to-autocomplete) (global-semantic-idle-scheduler-mode 1) -
EDE
; turn on ede mode (global-ede-mode 1) ; create a project for our program. (ede-cpp-root-project "my project" :file "~/demos/my_program/src/main.cpp" :include-path '("/../my_inc")) ; you can use system-include-path for setting up the system header file locations. ; turn on automatic reparsing of open buffers in semantic
