博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
非程序员的GNU Emacs使用心得......Shell Mode 第13集 把我的 kill-ring 还给我
阅读量:4840 次
发布时间:2019-06-11

本文共 1405 字,大约阅读时间需要 4 分钟。

kill-ring 在 Emacs 里面绝对是个非常精彩的设计。很多时候我都恨不能把 X Window 的 clipboard也加上一个 kill-ring。但是,很多时候当我输入 M-y 组合键回朔 kill-ring 的时候,总是会有很多很无聊的东西呆在里头。那些东西我可能永远也不会把他们贴出来,因为那根本就不是什么完整东西,很多都是一些残破的片段而已。

但是 Emacs 最初的设计显然是要把所有的东西都存在 kill-ring 里面。所以他写了那么多装进 kill-ring 的函数,常用的命令里面貌似只有一个 delete-region 是可以不进 kill-ring 的。
为了方便管理和访问这些 kill-ring 里面的大量内容,某些牛人还专门写了一个 browse-kill-ring 的扩展。我也安装了这个东西。但是我还是希望我的 kill-ring 能够更干净一些。只把那些我认为值得放的东西放到里面去。
方 法其实也不复杂。自己写扩展呗。把 Emacs 那些缺省的编辑命令替换掉就是了。在 kill-ring 里面最不希望放进去的内容就是一些写错了的内容。快速的清除和改正实际上是 Emacs 的一个巨大优势。我曾经在很多地方和很多人开过这个 telecommunication 的玩笑。因为很多人真的是在敲错了这个词的时候,会不厌其烦的敲 18 次 Backspace 键然后再把 telecommunication 这个词重敲一遍。在 Emacs 里面我们当然都知道这个错误应该怎样改正,对吧?我们有 M-DEL ,呵呵,是吧?就算是 vim,你要想输入 db 快捷键不还得先切换到命令模式么,或者说呢,切换到命令模式也就切了,起码比 18次 Backspace 要便宜多了,问题是 db 完了之后你还得再切回来不是吗?
好了,不说那么远了。这里其实就已经点到了问题的所在。 M-DEL 是我们最常用的对付手指抽筋的一个利器。但是,那些写错了的东西要占着我的 kill-ring 这个事情就很不爽了。这个事情一定是不能忍的。不能忍怎么办?那就用自己的函数把 Emacs 默认的 M-DEL 替换掉,让这些乱七八糟的东西不再进入可爱的 kill-ring 的小屋了。
代码其实很简单。而且既然写一回了,就顺手把 M-d 的定义也改了吧,这个虽然不是改错用的吧,但是对我来说,单独搞一个 word 放到 kill-ring 里去的需求实在是很罕见了。为什么这么说呢?你可以看这一篇 ,因为我通常是这样做的。
闲话不说了,直接上代码了。不能不再抱怨一句,CU 这个地方不能贴 lisp 实在是太不爽了,只好还是继续贴图了。。。
100731150514.png
然后就把这两个函数分别绑定到 M-DEL 和 M-d 的组合键上,从此之后,kill-ring 就清净了。
看 到这里,有人要说,如果我真的就是要把一个 word 删到 kill-ring 里又该怎么办呢?当然了,选中那个 word 然后 C-w 这种事情。。。哈,是吧?我就不说了。OK,如果你真的需要一个 kill word,那就把 M-d 那个函数留着不换也就是了。这个世界并不是非白即黑的。生活有很多种色彩。

转载于:https://www.cnblogs.com/doveyoung/archive/2010/08/16/Emacs-13.html

你可能感兴趣的文章
Windows Forms高级界面组件-使用对话框
查看>>
Objective-C中的深拷贝和浅拷贝
查看>>
超实用的JQuery小技巧
查看>>
设计模式——单例模式 (C++实现)
查看>>
UML和模式应用学习笔记(6)——系统顺序图、系统操作和层
查看>>
Android -- startActivityForResult和setResult
查看>>
1019 General Palindromic Number (20 分)
查看>>
关于c语言中指针的一些理解
查看>>
Expm 2_2 查找中项问题
查看>>
启动与关闭hadoop
查看>>
7.2 Move Field(搬移字段)
查看>>
[置顶] C#执行Excel宏模版的方法
查看>>
2015年9月28日JQuery提前预习预热笔记
查看>>
perl 删除过期文件
查看>>
document.write与document.getElementById的区别
查看>>
搜索可用docker镜像
查看>>
python基础知识梳理-----7函数
查看>>
函数极限的定义
查看>>
POJ 3684 Priest John's Busiest Day 2-SAT+输出路径
查看>>
oracle10g、oracle client和plsql devement 三者之间的关系
查看>>