【问题标题】:Delete until whitespace in Emacs在 Emacs 中删除直到空白
【发布时间】:2011-05-25 08:08:06
【问题描述】:

是否有一个 Emacs 函数可以删除(向前或向后)直到第一个空格?例如,我有以下行,光标用插入符号标记:

someword ?(&)!* morewords
               ^

我想向后删除非字母数字字符序列,而不是单词someword。使用backward-delete-word 也会删除这个词。奇怪字符和kill-word之前的光标也是如此。

【问题讨论】:

  • 你知道,几乎每个文本区域都会发生同样的情况,例如,试试 Stack 上的搜索字段...
  • 没错,但我不会在搜索字段中编写数千行代码和散文。
  • @Little:不,我只是想指出这一点。我认为这是一个有趣的问题。但问题是,如果 emacs 不符合“其他人所做的”,因此不提供合乎逻辑的 kill-word 函数。 :)
  • @Patrick:显然是这样,但我也希望它做其他事情,而且 Emacs 比文本字段有更多的选项。
  • 关于 Emacs 最好的一点——而这正是那些讨厌 IDE 的 Emacs 的人无法理解的——你可以让 Emacs 以你想要的方式工作,而不必遵守可用。

标签: emacs whitespace alphanumeric


【解决方案1】:

emacs 具有函数zap-to-char,它将删除直到特定字符的所有内容。因此,这不适用于所有空格,但如果您的具体问题是空格,您可以使用此功能。给函数一个否定的参数以向后移动。

【讨论】:

  • 默认绑定到M-z
【解决方案2】:

我不知道任何功能,但很容易制作一个:

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

【讨论】:

  • 在我写这篇评论时,它没有进入任何空白,只有一个空格。
  • @Bryan Oakley:嗯,为我工作。制表符和换行符应该有空格语法......我不知道为什么它们不会在某些特定模式下。
  • 我的错误。你是对的。我在考虑正则表达式而不是语法类。
猜你喜欢
  • 2013-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
相关资源
最近更新 更多