Emacs-跳过空格

Emacs-跳过空格,emacs,elisp,advising-functions,defadvice,Emacs,Elisp,Advising Functions,Defadvice,我试图让kill ring实质上忽略纯空白的条目(制表符、换行符、空格等),我对elisp是相当陌生的,我非常确定这样做的方法是使用defadvice,但我有几个问题 一开始就阻止空白条目进入杀戮圈,还是在美国佬身上跳过空白条目更好?我认为是后者 在这种情况下,我完全不知道我应该建议哪个函数,它在当前kill、yank和insert for yank之间-但我不完全确定我应该操纵哪个函数来避免从kill环中删除空白 谢谢 EDIT:我很确定这样做的方法是操纵“current kill”不断调

我试图让kill ring实质上忽略纯空白的条目(制表符、换行符、空格等),我对elisp是相当陌生的,我非常确定这样做的方法是使用defadvice,但我有几个问题

  • 一开始就阻止空白条目进入杀戮圈,还是在美国佬身上跳过空白条目更好?我认为是后者
在这种情况下,我完全不知道我应该建议哪个函数,它在当前kill、yank和insert for yank之间-但我不完全确定我应该操纵哪个函数来避免从kill环中删除空白

谢谢


EDIT:我很确定这样做的方法是操纵“current kill”不断调用自己,直到它到达一个非空白条目?(或环的末尾,以先到者为准)

从评论中可以看出,您的kill环中的空格似乎有问题,因为您删除了空格行。我的解决方案是避免删除空白行,而是使用函数
delete blank line
(C-xc-o)。这将a组空行(包括空格和制表符)减少为一个空行。

您能举一个使用模式的例子,该模式会在kill环中产生大量无用的空格吗?“我感到困惑的是,这可能会成为某人的一个问题。”肖恩举一个例子,你杀死了一个代码区域,稍后你会把它拔掉。在穿越你要把代码拉进去的地方的路上,你发现了两个相邻的空行:O。你杀死了其中一个,现在,该死的,杀死环上有一条空行。我时不时地会遇到这种情况,这很烦人。@Sean,Bones先生的用例非常完美,或者经常在一行内容后出现大量空白,你会杀戮来清理它。与其给出建议,不如重新绑定你自己函数的yank键。在我看来,这样做会更简单、更健壮。@Bones先生,这种情况与您在删除前一个文本的过程中删除任何其他文本的情况完全相同。当你到达那里时,你只需使用
M-y
,以支持你想要的杀戮。我只是不明白为什么只使用空格的中间终止应该特别令人反感。如果一行以x个空格结尾的话,你会杀死它吗?删除空行在这种情况下不起作用。我认为重新定义yank可能是解决这两种情况的方法,并且消除了删除空行的需要。在这种情况下,使用
空格清理
(在保存钩子之前添加钩子”空格清理)。找到emacs的做事方式通常比修改emacs更容易。