2010-12-14 96 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