2010-12-14 93 views
4

是否有一个Emacs函数删除(向前或向后),直到第一个空白?例如,我有以下行,并且光标被插入符号标明:删除,直到Emacs中的空白

someword ?(&)!* morewords 
      ^

我想删除的非字母数字字符向后的顺序,但不字someword。使用backward-delete-word也会消除这个词。奇怪的字符和kill-word之前的游标是一样的。

+0

你知道,你有同样的情况发生在几乎每一个文本区域,在这里尝试搜索栏上堆叠例如... – Patrick 2010-12-14 15:05:35

+1

的确如此,但我并没有在搜索字段中写出数以千计的代码和散文。 – 2010-12-14 15:11:54

+0

@小:不,我只是想指出。我认为这是一个有趣的问题。但问题是,如果emacs不符合“其他人所做的”,并且不提供逻辑的“杀词”功能。 :) – Patrick 2010-12-14 15:15:29

回答

3

我不知道有什么功能,但它是很容易使一个:

(defun my-delete-backward-to-ws() 
    (interactive) 
    (delete-region (point) (save-excursion (skip-syntax-backward "^ ") (point)))) 
+0

截至我写这篇评论的时候,这并不涉及任何空白,只涉及空间。 – 2010-12-14 19:50:26

+0

@Bryan Oakley:恩,适合我。制表符和换行符应该有空白语法......我不知道他们为什么不在某些特定模式下。 – scottfrazer 2010-12-14 20:19:47

+0

我的错误。你是对的。我正在考虑正则表达式而不是语法类。 – 2010-12-14 21:59:14

19

emacs的功能zap-to-char这将删除一切直到一个特定的字符。所以,这不适用于所有的空白,但如果你的具体问题是一个空间的一切,你可以使用这个功能。给该函数一个消极的参数来反击。

+11

默认情况下绑定到'M-z'。 – Gilles 2010-12-14 20:18:52