Emacs
從 emacs 緩衝區中的每一行中刪除最後 n 個字元
使用 Emacs 內置工具,有沒有一種好方法可以從 Emacs 緩衝區的每一行中刪除最後 n 個字元(對於 n >= 1)?我想可以定義一個鍵盤宏來執行此操作,但這不是我在這裡的想法。
Stack Overflow 上有一個優雅的解決方案來解決如何將字元附加到 emacs 中的每一行的相應問題,即 Appending characters to the end of each line in Emacs,但我找不到這個問題的答案。
筆記:
- 由於 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下有更多關於正則表達式的語法