本文相关插件及自定义快捷键的使用,需要结合对应的插件及配置文件。查看或下载相关文件,请访问如何优雅地使用Emacs.
快捷键注解:C-Ctrl,M-Alt
Emacs基本操作
文件操作
1 2 3 4 5 6 7 8 9 |
C-x C-f 打开文件 C-x C-v 更换文件 C-x C-s 保存文件 C-x C-w 存为新文件 C-x C-c 退出Emacs |
编辑操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
C-f 前进一个字符 C-b 后退一个字符 M-f 前进一个字 M-b 后退一个字 C-a 移到行首 C-e 移到行尾 M-a 移到句首 M-e 移到句尾 C-p 后退一行 C-n 前进一行 M-x goto-line 跳到指定行 M-g g 跳到指定行 C-v 向下翻页 M-v 向上翻页 M-< 缓冲区头部 M-> 缓冲区尾部 C-l 当前行居中 M-r 移动到页面中间行首位置 M-m 跳过所有空格 M-n or C-u n 重复操作随后的命令n次 C-d 删除一个字符 M-d 删除一个字 C-k 从光标处起删除该行 M-k 删除一句 C-w 删除标记区域 C-y 粘贴删除的内容 C-空格 or C-@ 选定模式,标记开始区域 C-x h 全选 M-w 复制标记区域 C-/ or C-x u 撤消操作 M-; 注释 M-\ 删除光标处的所有空格和Tab字符 M-SPC 删除光标处的所有空格和 Tab 字符,但留下一个 C-x C-o 删除光标周围的空白行,保留当前行 C-o 插入空行 M-^ 将两行合为一行,删除之间的空白和缩进 M-z char 删至字符 char 为止 M-y C-y之 后使用,选择粘贴被删除的内容 C-x k 关闭buffer |
执行SHELL命令
1 2 3 4 5 6 7 8 9 |
M-x shell 打开SHELL M-x ansi-term 打开SHELL M-x eshel 打开SHELL M-! 执行SHELL命令 (shell-command) C-q Tab 缩进 |
窗口操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
C-x 0 关闭本窗口 C-x 1 关闭其他窗口,只留下当前窗口 C-x 2 垂直均分窗口 C-x 3 水平均分窗口 C-x 4 0 关闭本窗口及缓冲 C-x 4 b 在另一个窗口打开缓冲 C-x 4 d 在另一个窗口打开文件夹 C-x 4 m 在另一个窗口写邮件 C-x 4 r 在另一个窗口以只读方式打开文件 C-x 4 C-o 在另一个窗口打开缓冲,但不选中 C-x 4 f 在另一个窗口打开文件 C-x 5 b 在另一个窗口选择buffer C-x o 切换到下一个窗口 C-x s 保存所有窗口的缓冲 C-x b 选择当前窗口的缓冲区 C-M v 滚动翻页下一个窗口(需要对照时很好用) C-M-Shift v 另外一个窗口向上翻页 C-x ^ 增高当前窗口 C-x { 将当前窗口变窄 C-x } 将当前窗口变宽 C-x - 如果窗口比缓冲大就缩小 C-x + 所有窗口一样高 C-x (left right) 选择缓冲 windmove-right 切换到右边的窗口(类似:up, down, left) |
缓冲区列表操作
1 2 3 |
C-x C-b 打开缓冲区列表 C-x k 关闭缓冲区 |
搜索模式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
C-s 向前搜索 C-s 查找下一个 ENTER 停止搜索 C-r 反向搜索 C-s C-w 以光标所在位置的字为关键字搜索 M-x replace-string ENTER search-string ENTER 替换 C-M-s 向前正则搜索 C-M-r 向后正则搜索 M-% 替换 C-M-% 正则交互替换 |
字体
1 2 3 4 5 |
C-x C-+ 变大 C-x C-- 变小 C-x C-0 恢复 |
其他
1 2 3 4 5 6 7 8 9 |
C-g 终止现在正在执行的命令 C-x C-c 退出emacs C-x z 重复命令 切换中文输入法 1. M-x set-input-method,输入chinese-py 2. 直接使用c-\,再次使用c-\可以切换回去 |
自定义(自定义配置文件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
M-n 下跳5行 M-p 上跳5行 C-x 4 u 撤销窗口操作 C-x 4 r 窗口重做 C-w 删除整行 M-w 复制整行 M-1/M-2/M-3... 快速切换到第1/2/3窗口(窗口上有编号) C-z 移动到当前行中间 C-f1 增高当前窗口 C-f2 将当前窗口变窄 C-f3 将当前窗口变宽 f8 NeoTree f11 最大化 C-f11 调节窗口透明度 |
帮助
1 2 3 4 5 6 7 |
C-h t 入门指南 C-h v 查看变量 C-h f 查看函数 C-h ? 查看帮助列表 |
在emacs下复制粘贴步骤
1 2 3 4 5 |
1、在任一行中按下ctrl+space或Ctrl+@键,最底行会显示 Mark set 表示开始标记。 2、移动鼠标或者通过快捷键选中文字,之后Alt+w (复制) 或者 Ctrl+w (剪切)。 3、将光标移动到想要插入文字的地方,Ctrl+y粘贴。 |
NeoTree
基础快捷键
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
n 下一行 p 上一行 SPC or RET or TAB 若是文件,在其他buffer打开; 若是目录,可切换折叠、收起。 g 刷新树 A 最大/最小化 NeoTree 窗口 H 切换显示隐藏文件 C-c C-n 创建文件,若以 / 结尾则表示创建文件夹 C-c C-d 删除文件或目录 C-c C-r 重命名文件或目录 C-c C-c 改变根目录 |
命令(全局有效)
1 2 3 4 5 6 7 8 9 |
neotree-dir 显示 NeoTree ,root 为 Minibuffer 中指定的一个目录。 neotree-show or neotree 显示 NeoTree ,root 默认为当前目录。 neotree-hide 隐藏 NeoTree 。 neotree-toggle 显示/隐藏 NeoTree 窗口。 neotree-find 显示 NeoTree ,并自动根据当前 Buffer 文件的路径定位到树中的节点。 |
命令(NeoTree Buffer 有效)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
neotree-enter 打开文件 / 折叠目录 neotree-refresh 刷新 neotree-stretch-toggle 最大/最小化 neotree-change-root 切换根目录 neotree-hidden-file-toggle 显示/隐藏 隐藏文件 neotree-rename-node 文件/目录 改名 neotree-delete-node 删除 文件/目录 neotree-create-node 创建文件,当以 / 结尾时表示创建目录 |
Magit
安装
Installing from Melpa(官方安装参考文档https://magit.vc/manual/magit/Installation.html)
Magit is available from Melpa and Melpa-Stable. If you haven’t used Emacs’ package manager before, then it is high time you familiarize yourself with it by reading the documentation in the Emacs manual, see (emacs)Packages. Then add one of the archives topackage-archives:
- To use Melpa: (require ‘package)
(add-to-list ‘package-archives
‘(“melpa” . “http://melpa.org/packages/”) t) - To use Melpa-Stable: (require ‘package)
(add-to-list ‘package-archives
‘(“melpa-stable” . “http://stable.melpa.org/packages/”) t)
Once you have added your preferred archive, you need to update the local package list using:
1 |
M-x package-refresh-contents RET |
Once you have done that, you can install Magit and its dependencies using:
1 |
M-x package-install RET magit RET |
基本操作举例
clone我们的github项目到本地
1 2 3 4 5 6 7 |
1.打开我的emacs配置项目,获取clone地址。 2.在emacs里使用M-x dired打开想clone的目录,在此我新建了一个magit文件夹,并打开。 3.使用magit指令clone远程项目,M-x magit-clone,输入clone的远程仓库地址并填写clone文件夹名称。 4.按g刷新目录,现在magit文件夹下的.spacemacs.d便是我们远程clone下来的github项目了。 |
commit提交改动文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
1.现在我们打开.spacemacs.d的README.md文件,新增内容并保存 2.执行M-x magit-status查看git改动情况 说明: Head 当前处于哪个branch Push 要push 到哪个远程branch Untracked files 哪些文件未被git管理 Unstaged Changes 哪些文件修改了未stage Staged Changes 哪些文件处于staged状态(即运行了git add ) Unpushed to 哪些commit 未push到远程分支 Unpulled from 哪些提交未拉取到本地 3.如果你修改了一个git管理的文件,但是未运行git add 则当前文件处于Unstaged状态。按下s,使文件从unstaged变成staged. 说明: s Stage git add filename 从unstaged变成staged u Unstage git reset HEAD filename 从staged 变成Unstaged 3.在magit-status窗口下,执行M-x magit-commit或者使用快捷键c c提交改动 左侧将会显示改动具体信息,并且在底下指令提示commit everything?(y or n), 输入y,右侧显示要求输入commit的文字描述,输入自定义文字。 说明: cc Commit 最普通的 git commit ce Extend 当前Staged的文件合并到上一次提交中 git commit –amend –no-edit ca Amend 只修改上次提交的日志 git commit –amend 4.输入完commit信息之后,执行快捷键C-c C-c提交commit。 到这里,commit提交算是完成了,接下来便是sync到我们的远程仓库。 |
push commit到远程github仓库
1 2 3 4 5 6 7 8 9 10 11 |
1.在magit窗口下,执行M-x magit-push,push操作,push操作为一系列操作 2.选择将要push的本地git master,RET 3.在此选择所需push的远程git origin/master,RET 4.在magit-status窗口按快捷键$,打开magit进程magit-process 5.验证是否成功push,打开github的远程仓库地址 到此,我们便成功的使用magit的clone,commit,push指令完成了本地与远程仓库的版本控制。 |
其它
1 2 3 4 5 6 7 8 9 10 11 |
M-x magit-pull指令即从远程仓库sync到本地,与magit-push的功能一样,只是sync的方向不同。 magit无法track新建文件,解决方案是在magit-status下commit窗口中在新文件行按s重新stage。 M-x magit-log-all 查看github项目的所有分支提交日志 M-x magit-tag 为本地添加tag标签 M-x magit-push-tag 提交tag标签到远程仓库 在magit-mode状态下b b 切换分支 |
->解决Unable to auto-detect email address
1 2 3 |
git config --global user.email "you@example.com" git config --global user.name "Your Name" |
W3M
安装
1 |
sudo apt-get install w3m w3m-el w3m-img w3m-el-snapshot |
参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
+<line number> 启动后,跳转到指定行 -t width 指定tab的宽度,默认为8 -T type 指定读取文档的类型(content-type) 例如以下命令会显示渲染后的结果 w3m -T text/html <<EOF -B 启动时进入w3m的书签页 -bookmark file 指定w3m使用的书签页文件 -cookie 开启cookie支持 -no-cookie 禁止使用cookie -pauth username:password 用户验证 -num 显示行号 -dump 从URL或file中读取内容,并将渲染的结果输出到stdout中. 结果的宽度默认为80,不过可以通过cols参数修改 -cols width 指定渲染文档的宽度 -dump_source dump出源码 -dump_header dump出http头信息 -dump_both 同时dump出http头信息与源码 -dump_extra 同时dump出extra,header与source -post file 用post的方法访问URL,其中POST的内容由file指定 -header string 访问URL时,将string添加到http头信息中 -no-proxy 不使用代理 -no-mouse 不使用鼠标 -config file 指定w3m的配置文件,默认为 ~/.w3m/config -o option=value 指定option的值,option的名词与值应该是w3m配置文件中的合法值 |
快捷键
基本操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Q 关闭窗口 q 直接离开 C-x-k 关闭当前标签页 Ctrl-c C-k 停止加载页面 U 打开URL V 打开文件 G 在标签页中打开一个网址 B 后退 V 查看本地文件 v 查看HTML源码 S 保存页面内容到本地文件 Alt-s 保存页面源代码到本地文件 F 提交表单 N 前进 H 主页 R 刷新 RET 打开链接 I 调用外部程序来看该图片 Alt-I 下载该图片 a 或 Alt-RET 下载超链接资源 C-h 显示浏览历史 M 使用外部浏览器浏览该页面 Alt-M 外部浏览器浏览光标所在的链接 |
光标移动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
SPC 向下翻页 b 向上翻页 hjkl 上下左右移动光标 ^ 行首 $ 行尾 w/W 按单词跳转 g 页首 G 页尾 num G 跳到第num行 TAB 下一个超链接 ESC TAB 上一个超链接 |
页面信息展示
1 2 3 4 5 6 7 8 9 10 11 |
c 显示当前页面的URL = 显示当前页面的信息 u 显示光标所在超链接指向哪个URL i 显示光标所在图片是指向哪个URL C-g 显示光标所处的行号 C-k 查看Cookie信息 |
页面操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
C-n 向下一行 C-P 向上一行 C-b 向后 C-f 向前 C-v 向下滚屏 M-v 向上滚屏 > 想左滚屏 < 向右滚屏 , 向左滚动一格 . 向右滚动一格 |
书签
1 2 3 4 5 6 7 8 9 10 11 |
Alt+a 添加当前页到书签 Alt+b 查看书签 v 显示书签 E 编辑书签 C-k 删除书签 C-_ 撤销书签 |
标签页操作
1 2 3 |
s 选择其他标签页,在选择标签页上按 k,j 可以选择标签。按 D 可以关闭标签 T 打开心标签页 |
搜索
1 2 3 4 5 6 7 8 9 |
/ 或 C-s 向前搜索,一个是Vim风格的搜索,一个是Emacs风格的搜索 ? 或 C-r 向后搜索,一个是Vim风格的搜索,一个是Emacs风格的搜索 n 搜索下一个 N 搜索上一个 C-w 是否开启wrap搜索摸索 |
编辑命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
在页面的输入框处按下回车就进入编辑模式。在编辑模式下,可以使用大量的Emacs操作。 C-f / C-b 前后移动光标 C-h / C-h 删除前一个/当前自负 C-k / C-u 删除光标后/光标前的内容 C-a / C-e 跳到行首/行尾 C-p / C-n 获取上一条/下一条历史记录 TAB / SPC 补全文件名 RET 编辑完毕,推出编辑模式 |
其他命令
1 2 3 4 5 6 7 8 9 10 11 12 13 |
! 执行shell命令 @ 执行shell命令,加载结果 # 执行shell命令,并浏览返回结果 H 显示帮助文件 o 设置w3m选项 q 退出,但是要你确认是否退出 Q 退出,不会要你确认是否退出 |
自定义快捷键
1 2 3 4 5 |
通过修改 ~/.w3m/keymap 来设置自己的快捷键。例如 keymap C-o NEXT_PAGE 则可以通过 C-o 向下翻页 |
说点什么