2012-08-24 100 views
4

我試圖讓殺戒環本質上忽略只有空白的條目(選項卡,換行符,只是空格,etC),我對elisp相當陌生,我非常確定要怎麼做是通過做defadvice,但我有幾個問題。Emacs - 跳過空白殺死

  • 是否最好停止空白條目進入殺死環首先,或跳過他們猛拉?我假設後者。

在這種情況下,我完全失去了上發揮作用,我應該提醒,其之間的電流殺,猛拉,並插入換猛拉 - 但我不能完全肯定這是我應該處理不猛拉空白從殺戒。

謝謝!

編輯:我很確定這樣做的方法是操縱`current-kill'繼續調用自己,直到它達到非空白條目? (或戒指的末端,以先到者爲準)

+1

你能給出一個使用模式的例子,它會導致kill ring中大量無用的空白嗎?我感到困惑的是,這可能會成爲某個人的問題。 – Sean

+1

@Sean以殺死一段代碼的情況爲例,稍後您會稍微抽出一段代碼。在穿越你要將代碼抽出的地方,你有兩條相鄰的空行:O。你殺了他們中的一個,現在,該死的,殺戒上有一條空行。我一次又一次地體驗到這一點,這很煩人。 – Squidly

+0

@Sean,MrBones的用例相當完美,或者經常在行內容後面出現大量空白,你會殺了它來清理它。 – user652650

回答

5

從評論看來,由於殺死空白線,你的殺戮環中的空白似乎有問題。我的解決方案是避免殺死空白行,並使用功能delete-blank-lineC-x C-o)。這將一個空白行(包括空格和製表符)縮減爲一個空白行。

+0

怎麼樣以一個以x空格結尾的行結束的情況,你殺了?在這種情況下,刪除空白行不起作用。我認爲重新定義抽籤方式可能會解決這兩種情況,並且不需要刪除空白行。 – user652650

+1

在這種情況下,使用'whitespace-cleanup'('add-hook'before-save-hook'whitespace-cleanup)'。找到emacs做事情的方式通常更容易,而不是修改emacs。 –