这个世界最强是个怎么样的强法呢?一说:Emacs是一种“信仰”。另说:世界上的程序员分三种,一种使用Emacs,一种使用vim,剩余的是其它。(完全无视其他编辑器的存在……)
- 基本命令:
C-x C-c : 退出Emacs
C-x C-f : 打开一个文件,如果文件不存在,则创建一个文件
C-x d 进入Dired列表模式
C-x C-d 获取文件列表(简洁)
C-x C-f 打开文件,输入路径为打开目录
C-g : 取消未完成的命令 - 编辑:
C-x u :取消上一次操作,如果取消N次操作: C-u N C-_
C-x i : 插入文件内容
C-t : 交换两个字符
M-t : 交换两个词
C-x C-t : 交换两行
C-x C-u : 转换成大写字母
C-x C-l : 转换成小写字母
M-c :把光标右边的单词的首字母转换为大写,如果光标在一个单词内,则把光标所在字母转换为大写
M-u :把光标右边的单词转换为大写,如果光标在一个单词内,则把这个单词右边的部分转换为大写
M-l : 转换成小写字母
C-c C-a : 开启/关闭自动缩进模式,如同 M-x c-toggle-auto-state - 移动光标:
C-v : 向前翻页
M-v : 向后翻页
M-r : 将光标移动到屏幕中间那行
C-a : 移到行首
C-e : 移到行尾
M-a : 移到句首
M-e : 移到句尾
M-{ : 向上移动一段
M-} : 向下移动一段
M-< : 移到整个文本开头
M-> : 移到整个文本末尾
C-p : 向上移动一行,p 代表 previous
C-n : 向下移动一行,n 代表 next
C-f : 向前移动一个字,f 则代表 forward
C-b : 向后移动一个字,b代表 backward
C-u 数字 命令 : 执行多次(数字表示次数)该命令
C-l : 重绘屏幕,效果就是当前编辑行移动窗口中央,刷新
C-M-/ : 用c-x h 选定整个buffer后, 然后可以对代码进行重新排版
M-; 对当前行进行注释
C-x C-x :快速返回移动前的光标位置
C-c C-c :对一块代码进行注释;
uncomment-region :取消注释用命令 - Buffer 相关
C-x h : 选中整个缓冲区的内容,您会发现状态栏和编辑器底部之间的区域出现 Mark set 字样
C-x k : 关闭当前buffer
C-x b : 切换到前一个编辑的buff
C-x C-b : 列出当前所有buffer
C-x C-s : 保存当前buffer
C-x s : 保存所有未保存的buffer,会提示你是否需要保存
C-x C-w : 文件另存为
C-mouse:按住Ctrl并单击鼠标左键,会弹出一个Buffer Menu,它会按主模式类型列出活动的buffer供你选择。
M-x kill-some-buffers:删除一些buffer; - 拷贝与粘贴
C-@ : 设置mark ,或使用 M-x set-mark-command
C-w : 剪切一块区域;如果没有设置mark,则是剪切一行
M-w : 拷贝一块区域;如果没有设置mark, 则是拷贝一行
M-d : 删除光标后的词语
C-d : 删除一个字符
C-k : 从当前位置剪切到行尾
C-y : 粘贴
M-y : 用C-y拉回最近被除去的文本后,换成 M-y可以拉回以前被除去的文本。键入多次的M-y可以拉回更早以前被除去的文本。
C-x r k : 执行矩形区域的剪切
C-x r y : 执行矩形区域的粘贴
C-x h : 全部选中
C-o : 在光标后面插入空行
C-x C-o : 将光标附近的空行去掉,多行的时候,第一次只剩一行,第二次全部删除 - 窗口操作
C-x 0 : 关闭当前窗口
C-x 1 : 将当前窗口最大化
C-x 2 : 垂直分割窗口
C-x 3 : 水平分割窗口
C-x < : 窗口内容右卷
C-x > : 窗口内容左卷(这两个命令在垂直分割窗口后比较有用)
(C-u) C-x ^ : 加高当前窗口,如果有C-u,则每次加高4行
(C-u) C-x } : 加宽当前窗口
(C-u) C-x { : 压窄当前窗口
ESC C-v : 在其它窗口进行卷屏操作
C-M-v:滚动另一个window(C-v是滚动当前window)
C-x 4 b(f):在另一个窗口选择另一个buffer(查找另一个文件),这样你可以不用切换到另一个window,就改变其buffer或打开文件;
C-x 5 2:新建一个frame; - 搜索和替换
C-s : 向前搜索(增量式搜索);连续C-s,跳到下一个搜索到的目标
C-s RET : 普通搜索
C-r : 向前搜索
C-s RET C-w : 按单词查询
M-% : 查询替换,也就是替换前会询问一下
M-x replace-string : 普通替换 - 命令行执行命令
由于Emacs太过强大,内部命令恒河沙数,根本不可能有同样数量的快捷键位来绑定它们!对于没有绑定的命令,可以使用 命令行 执行!
M-x (Alt+x) 开启命令行,回显区显示为 M-x
M-x goto-line : 移动到某一行
M-x replace-string : 普通替换
M-x replace-regexp : 正则表达式替换
M-x undo : 撤消
C-g M-x undo : 重做
M-x query-replace : 询问替换 等同于C-%
M-x calendar : 打开日历,q退出.C-u,M-x 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->:移动到当前年的最后一天 - ctrl+c-v-j, ctrl+c-v-z, ctrl+c-v-c, ctrl+c-v-. , ctrl+c-v-r, ctrl+j
- Alt+/ 会自动补全80%的机率以上都会找到你想要的,如果不是多按几次选择一下