emacs命令积累

用了几天emacs,终于感觉到它的强大了,这是一个长期使用积累的过程,熟能生巧。


1.单个Buffer处理
Buffer的名字都是包含在**当中的
可以把buffer中的那内容C-x C-w写入到文件中

2.多个buffer处理
C-x b显示Buffer列表
选中某一个Buffer按Enter进入Buffer编辑
删除Buffer使用C-x k

2.Emacs窗口管理

C-x 2垂直拆分窗口
C-x 3水平拆分窗口
C-x o在窗口间切换
C-x 1删除所有窗口,只剩下本窗口
C-x 0删除本窗口

3.Emacs Frame管理(只适合有图形界面的)

C-x 5 o 移动到另一个frame
C-x 5 2 新建一个frame
C-x 5 0 删除当前的frame
C-x 5 1 只留下当前frame
C-x 5 f 在另一个frame中查找文件
C-x 5 r 在另一个frame中查找只读文件
C-x 5 b 产生frame并在里面显示buffer


4. 打开多个shell
这听起来应该是理所当然的,既然 Emacs 可以同时运行多个窗口……但是即使是在我买的那本关于 Emacs 的书里面也没有提到如何能够真的打开多个 shell 会话。让我们试试看,输入 ESC-x shell 启动 shell 会话,在 shell 提示符下执行 cd /tmp 命令,然后输入 Ctrl-x 2 组合键将屏幕切分成上下两个窗口,然后再次输入 ESC-x shell 启动 shell 会话,你会发现 Emacs 不为所动。在上下两个窗口里面仍然还是 cd /tmp 命令执行后的结果,也就是说仍然还是原先的那个 shell 会话。说起来 O’reilly 公司应该退还我一部分书钱,因为他们没有将我想知道的问题讲明白。后来我终于发现了解决的办法。只要我将当前的 shell 会话所在的缓冲区重新命名,然后就可以再次启动一个新的 shell 会话。让我们来试试看。输入 ESC-x rename-buffer,在 Rename buffer (to new name): 提示符后输入一个新名字,例如 *shellA*。这个时候你会看到上下两个窗口中的缓冲区都被重命名为 *shellA* 了,是的,他们显示的是同一个缓冲区。现在在任意一个窗口里面输入 ESC-x shell 启动 shell 会话,这时你会看到一个新的 *shell* 缓冲区创建了出来,并且有了一个新的 shell 提示符。现在让我们在这个新的 shell 提示符下执行 cd / 命令,你会发现,缓冲区 *shellA* 当中的 shell 会话并没有受到新的命令的影响,因为他们是两个不同的 shell 会话。重复同样的方法,可以得到更多的 shell 会话,满足你的使用需要。


5. C-c C-o  
清除刚刚执行过的命令的输出,用来清理屏幕。


6. 跳转到某一行
a) M-x goto-line, 然后输入行号
b) M-g g, 然后输入行号


7. 在emacs的shell里终止程序
按两次C-c


8. 移动光标到文件头和文件尾
M-<   #文件头
M->   #文件尾

9. 在emacs的shell中,执行以前的命令:
M-p   #前一个命令
M-n   #后一个命令


10. 刷新文件

M-x revert-buffer


11. C-s 命令isearch-forward的快捷键。向前做incremental search。

12. C-r 向后做incremental search。




猜你喜欢

转载自blog.csdn.net/hackerain/article/details/8536230
今日推荐