Emacs

從 emacs 緩衝區中的每一行中刪除最後 n 個字元

  • January 8, 2014

使用 Emacs 內置工具,有沒有一種好方法可以從 Emacs 緩衝區的每一行中刪除最後 n 個字元(對於 n >= 1)?我想可以定義一個鍵盤宏來執行此操作,但這不是我在這裡的想法。

Stack Overflow 上有一個優雅的解決方案來解決如何將字元附加到 emacs 中的每一行的相應問題,即 Appending characters to the end of each line in Emacs,但我找不到這個問題的答案。

筆記:

  1. 由於 XEmacs 大部分已死(RIP),因此可以假設問題

完全與 GNU Emacs 有關。 3. 使用 Unix 流編輯器等有簡單的解決方案。

不過,在 Emacs 緩衝區上操作更加靈活。 4. 我當然可以手動完成,但我已經制定了一種新年

計劃,以更好地利用 Emacs 功能。畢竟,我

只用了 20 年,對它幾乎一無所知。

您可以使用與追加案例相同的替換正則表達式方法來刪除,只需在行尾正則表達式元字元前加上任意字元元字元:

M-< M-x replace-regex RET .$ RET RET

要替換多個字元,您可以以普通的方式開始.?在您的正則表達式前添加(一個可選的任意字元):

M-< M-x replace-regex RET .?.$ RET RET

或者,更優雅地,您可以使用間隔樣式的符號來指示n行尾之前的任意字元,在以下範例中,n=2:

M-< M-x replace-regex RET \{,2\}$ RET RET

在 EmacsWiki 的 RegularExpression下有更多關於正則表達式的語法

引用自:https://unix.stackexchange.com/questions/108459