emacs是一个强大的编辑器,但是作为一个新手,我并不知道如何复制当前缓冲区的全部内容,而这一功能又经常需要用到,尤其是希望将自己写的东西复制出来,粘贴到blog或者提交到oj.所以就想到用宏定义一组操作,方便自己的使用。下面是流程。
1. 使缓冲区中复制的内容放入系统粘贴板
在emacs配置文件(~/.emacs)中添加
(setq x-select-enable-clipboard t)
关于: Clipboard
2. 定义宏
2.1 打开emacs一个缓冲区
2.2 开始录制宏: C-(
2.2 定义名为m的书签,以便复制完成后返回光标所在地: C-x r m,输入m,按回车
2.3 复制整个缓冲区内容
回到整个缓冲区开始:M-<
开始选中:C-@
光标移动到缓冲区末尾,以便选中整个缓冲区:M->
复制整个选中区域:M-w
2.4 回到书签原来所在地:C-x r b, 输入m,按回车
2.5 结束录制宏:C-)
3. 为宏命名
M-x name-last-kbd-macro, 输入:m-copy-buffer
4. 保存宏
在emacs配置文件(~/.emacs)中:M-x insert-kbd-macro,输入m-copy-buffer
就可以看到刚才定义的宏被输入到文件中,然后C-x C-s保存
注:如果不保存宏,下次打开emacs就没有了
5. 定义快捷键
在emacs配置文件(~/.emacs)中添加
(global-set-key (kbd "C-c a") 'm-copy-buffer )
这样,以后输入C-c a就可以方便的复制整个缓冲区的内容了
评论区 @aiqier627 同学告诉我可以用 " C-x + h,全选后,一个M-w",谢谢他。这篇文章就当我年少无知时学了怎么用宏吧。。。
参考资料:
1.《学习GNU Emacs》
2. Emacs快速指南 (在emacs中 C-h t 可以打开)