題 刪除直到找到字符


在我的文本編輯器中,我想定義一個鍵盤快捷鍵(比方說, CTRL-D)“刪除直到找到字符”功能。例如,如果光標位於此文本的“H”之前:

結腸來了:你看到了嗎?

然後按 CTRL-D 其次是 :,那麼文本應該改為

你看見了嗎?

就像你按下刪除按鈕21次一樣。 (請注意,冒號也會被刪除。)

如果在編輯的文本中找不到該字符(例如,如果鍵入的話) CTRL-D 其次是 x 在上面的例子中)我寧願沒有任何事情發生,但這不是很重要。我目前的文本編輯器是Notepad ++,但可以隨意提出涉及其他編輯器的解決方案。


2
2018-03-28 18:32


起源


對於只有一行的文字? - iglvzx
如果您使用的是vim,那就是 dt: (刪除到冒號)或 df: (刪除直到查找冒號)。後者刪除結腸,前者不刪除。但是,你沒有使用vim,所以這只是一個過時的評論,而不是答案。 - RedGrittyBrick
@iglvzx我在考慮“單線”,但“對於整個剩余文本”也足夠好了。 - user12816


答案:


如果你願意學習一個新的編輯 - 並且通過“學習一個新的編輯器”,我的意思是踢和尖叫,並將你的頭髮拉出一段時間 - 然後編輯Vim / gvim很容易做到這一點。它是免費的,可以在你能想到的任何操作系統上使用,並且非常無錯誤。

有些人永遠不會克服學習曲線的駝峰,如果你想要學習一個非常強大的編輯器,這是陡峭的但並非不可能。它包含編輯器內置的教程,它既有圖形版本(gvim),也有終端版本(Vim)。

對於您的示例,您將輸入“df:”,但如果您需要多次執行此操作,則只需按下該時間段即可。在Vim中,“f:”是一個“動作命令”,只是將光標移動到冒號; d是刪除後面的任何運動命令的命令。此外,它可以採用計數,例如“2df:”來刪除接下來的兩個冒號以及到此為止的所有文本。

如果您有興趣,請運行該程序並輸入“:help tutorial”來試用該教程。這將快速簡單地展示vim的一些強大功能,同時允許您實際嘗試它,因為教程在實際編輯器中顯示。

它需要耐心和學習的慾望,但它得到了回報,我個人認為使用起來很有趣。


1
2018-03-28 23:34



不需要使用vim。在notepad ++或sed中使用一個簡單的正則表達式 - phuclv


如圖所示,替換會做你想要的。

enter image description here

之後,您可以將替換保存為宏。然後設置此宏的快捷方式。

我認為錄製宏不需要解釋。


2
2018-03-28 20:10