回答
HaveSpacesuit的答案有效,但使用它一段時間後,我意識到它會刪除活動行,有時會重新定位下面行的間距。
這使我重新思考他的解決方案。我不是從前線走到後面,而是試着從後向前走。這解決了重新定位問題。
SendInput {End}
SendInput +{Home}
SendInput ^+{Left}
SendInput {Delete}
雖然還有一個小問題。如果光標位於空行上,並且上面有更多空行,則所有空行都會被刪除。
我不知道一個關鍵組合,以取代^+{Left}
沒有這種行爲,所以我不得不寫一個更全面的解決方案。
^d:: DeleteCurrentLine()
DeleteCurrentLine() {
SendInput {End}
SendInput +{Home}
If get_SelectedText() = "" {
; On an empty line.
SendInput {Delete}
} Else {
SendInput ^+{Left}
SendInput {Delete}
}
}
get_SelectedText() {
; See if selection can be captured without using the clipboard.
WinActive("A")
ControlGetFocus ctrl
ControlGet selectedText, Selected,, %ctrl%
;If not, use the clipboard as a fallback.
If (selectedText = "") {
originalClipboard := ClipboardAll ; Store current clipboard.
Clipboard := ""
SendInput ^c
ClipWait .2
selectedText := ClipBoard
ClipBoard := originalClipboard
}
Return selectedText
}
據我所知,這不會產生意外的行爲。
不過,如果您使用的是剪貼板管理,因爲這腳本使用剪貼板,如果必要的話,作爲中介,以獲得選定的文本要小心。這將影響剪貼板管理器歷史記錄。
SetTitleMatchMode, 2 ; Makes the #IfWinActive name searching flexible
^d::Send {Home}{ShiftDown}{End}{Right}{ShiftUp}{Del} ; Generic response to ^d.
#IfWinActive, Gmail ; Gmail specific response
^d::Send {Home}{ShiftDown}{End}{Right}{ShiftUp}{Del} ; adapt this line for gmail
#IfWinActive ; End of Gmail's specific response to ^d
#IfWinActive, Excel ; Excel specific response.
^d::Send {Home}{ShiftDown}{End}{Right}{ShiftUp}{Del} ; adapt this line for Excel
#IfWinActive ; End of Excel's specific response to ^d
這樣你的^ d命令的工作方式不同:
^d::Send {Home}{ShiftDown}{End}{Right}{ShiftUp}{Del}
可能並非在所有情況下,邊工作,但通過在記事本中一些非常基本測試。 =〜)
謝謝!如果在線上有任何文字,您的答案就會很好。我更新了這個問題以刪除「文本」,因爲即使該行是空的,我也會喜歡它。我得到這樣的一個簡單的按下刪除鍵將在這種情況下工作,但試圖保持肌肉記憶相同。 :-D – GollyJer
我調整了一些答案。沒有什麼太花哨,但它應該適用於空行和文件的最後一行。 – HaveSpacesuit
適用於Word,SciTE4AutoHotkey和VisualStudio代碼。這些處理鍵盤命令的每一個都有點不同,但是它們在每一箇中的表現都一樣。再次感謝! – GollyJer
萬一你碰上,你需要不同的行爲不同程序的問題,您可以像這樣的具體方案「複製」你的^ d命令在Excel和Gmail中。
- 1. Jquery在當前行後刪除當前行並刪除當前行
- 2. ms-access:使用vba刪除當前行
- 3. 如何刪除Emacs中的當前行?
- 4. 如何使用jQuery數據表插件刪除當前行
- 5. eclim autoimport刪除當前行
- 6. 從ObservableCollection刪除當前行
- 7. 刪除當前行VBA
- 8. 如何刪除Autohotkey中的前後文本
- 9. 如何刪除前100行?
- 10. 如何刪除當前記錄當點擊刪除按鈕
- 11. 如何使用AutoHotKey腳本獲取當前的瀏覽器URL?
- 12. 刪除當前用戶
- 13. 如何刪除,包括當前字符?
- 14. React樹 - 如何刪除當前節點?
- 15. 如何從VBScript中的當前行中刪除4行
- 16. 如何刪除當前行並在Notepad ++中添加新行?
- 17. 如何在vim中刪除當前行下面的行?
- 18. AutoHotKey - 使當前腳本'切換'
- 19. 使用鈦,刪除當前視圖或彈出當前視圖
- 20. 如何刪除/替換當前正在使用的字體
- 21. 如何更改column_type並使用ActiveRecord刪除當前的數據?
- 22. 如何刪除使用C#插入書籤的當前列?
- 23. 正在刪除當前行jQuery
- 24. 如何刪除前綴使用c#.net
- 25. 從ImageView刪除/刪除當前圖像?
- 26. 使用JComboBox作爲編輯器的JTable - 刪除當前行
- 27. 如何根據sed中前一行和當前行中的匹配刪除當前行?
- 28. 如何從列表視圖中刪除當前行
- 29. 在Emacs中如何從當前行刪除到文件結尾?
- 30. 如何刪除C#.net中文本文件的當前行?
不錯。希望這對未來的某個人有用。 – HaveSpacesuit