Considere o seguinte script AutoHotKey (AHK). Veja o Tutorial AutoHotkey e a documentação para mais explicações sobre os scripts AutoHotkey.
Depois de instalar o AutoHotKey, pressione Ctrl + Desloc + c ou x dentro do Notepad ++ para copiar (ou cortar ) para a área de transferência com as linhas cortadas.
Nota: Eu usei Ctrl + Shift para que você ainda pudesse usar a cópia original e cortar normalmente com apenas Ctrl . Se você não gostar desse comportamento, basta remover +
em +^c::
e +^v::
.
Veja os comentários (começando com ;
) para uma explicação. Como em qualquer codificação, é melhor deixar nos comentários para entender melhor o roteiro quando você voltar mais tarde.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
TrimClipboard()
{
; Split each line of the clipboard into an array.
; Note: Ignoring Cr ('r) prevents duplicate rows
linesArray := StrSplit(clipboard, "'n", "'r")
newClip := "" ; Initialize output string
for index, element in linesArray
{
; For each line: trim it, append it and CrLf to output string
newClip .= trim(element) . "'r'n"
}
; Note: There is always an extra newline at this point, regardless
; of if the clipboard ended in a newline.
; Assign value back to clipboard, without the trailing CrLf
clipboard := SubStr(newClip, 1, -2)
}
#IfWinActive ahk_class Notepad++
; On Shift+Ctrl+C, perform copy, wait for new content, and trim clipboard
+^c::
; Note: ^{sc02e} is the scancode for c which works regardless of keyboard layout
Send, ^{sc02e}
Clipwait
TrimClipboard()
return
;On Shift+Ctrl+X, perform copy, wait for new content, and trim clipboard
+^x::
; Note: ^{sc02d} is the scancode for x which works regardless of keyboard layout
Send, ^{sc02d}
Clipwait
TrimClipboard()
return
; sc02e && sc02d are keyboard scan codes for the keys c and x respectively.
; The scancodes work regardless of the keyboard layout set in Windows
#IfWinActive