Eu preciso de uma maneira de remover os recuos à esquerda (tabulações e espaços) dos dados copiados para a área de transferência do Notepad ++.
Os dados no próprio documento do Notepad ++ devem ter esses recuos iniciais e os dados copiados para a área de transferência.
Esse comportamento deve ser iniciado apenas por CTRL + C e somente quando estou dentro do Notepad ++.
É o que acontece no Notepad ++ quando eu marca o texto regularmente com o mouse:
É isso que deve estar na área de transferência depois que eu marcar o texto regularmente e copiá-lo:
Notas:
- As imagens são apenas para melhor ilustrar minha necessidade - meus códigos reais são mais longos.
- Eu também perguntei sobre isso aqui .
- Eu pergunto isso porque não consigo colar blocos de código recuado no terminal Linux se esses blocos de código incluem
cat
heredocuments (tem a ver com o processamento de delimitadores de heredocument, uma longa história).
windows-10
notepad++
clipboard
JohnDoea
fonte
fonte
:set paste
.cat
heredocs - é .Respostas:
Considere o seguinte script AutoHotKey (AHK). Consulte o Tutorial e a documentação do AutoHotkey para obter mais explicações sobre os scripts do AutoHotkey.
Depois de instalar o AutoHotKey, pressione Ctrl+ Shift+ cou xno Notepad ++ para copiar (ou recortar) na área de transferência com as linhas cortadas.
Nota: usei Ctrl+ Shiftpara que você ainda possa usar a cópia original e cortar normalmente apenas Ctrl. Se você não gosta desse comportamento, basta remover
+
em ambos+^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 script quando voltar depois.fonte
ctrl+z
para recuperar o conteúdo excluído. Isso é um pouco problemático. Entendo que algo como o seguinte código possa ser utilizado?if !LangID := EN { return }
. Adicioná-lo no início do script causou erro e agrupar o script com uma versão semelhante e umaelse { return }
após o fechamento não causou erro, mas não funcionou.TrimClipboard(){ ... }
dentro de umaif
instrução. Coloque aif
instrução dentro da função ou em torno dos comandosSend, ... TrimClipboard()
Basta usar
Alt + Mouse dragging
ouAlt + Shift + Arrow keys
para selecionar a coluna e, em seguida,Ctrl+C
copiar a coluna.Veja este exemplo: https://notepad-plus-plus.org/fr/features/column-mode-editing.html
Editar:
Também podemos selecionar a coluna inteira, ou mais de uma coluna, também podemos selecionar uma ou várias linhas.
Aqui está uma maneira simples de fazer isso:
Clique esquerdo do mouse no início da seleção desejada.
Vá para o local em que a seleção desejada deve parar
Mova o cursor para o segundo e último local, com:
ALT
+SHIFT
e umleft click
, simultaneamente, para selecionar as colunas e linhas desejadas.Espero que esta ajuda
fonte
Aqui está uma solução portátil usando Java
O primeiro passo é, é claro, instalar o Java
Em seguida, cole o seguinte em um arquivo nomeado
Trimmer.java
em seu diretório de usuários (C: \ Users \ your_name)Em seguida, abra um prompt de comando e digite
Agora você deve ter um arquivo Trimmer.class na mesma pasta. Você pode excluir o arquivo Trimmer.java agora.
Neste ponto, temos um programa que removerá todos os espaços em branco iniciais e finais de cada linha da área de transferência, mas ainda precisamos de uma maneira de executá-lo de maneira conveniente. Vamos criar uma tecla de atalho!
Primeiro, crie um atalho para o prompt de comando (clique com o botão direito do mouse em C: \ Windows \ System32 \ cmd.exe)
Em seguida, clique com o botão direito do mouse neste atalho e selecione "Propriedades". Há algumas coisas que precisamos fazer nesta janela. Na guia "Atalho", deve haver uma opção "Alvo" que diz algo como
Mude para dizer
Isso fará com que o prompt de comando simplesmente execute nosso programa e saia quando usamos este atalho.
Em seguida, clique na caixa "Tecla de atalho" e pressione a tecla de atalho que deseja ativar a substituição do texto. Eu recomendo Ctrl+ Shift+ Cpara facilitar o uso!
Por fim, altere a opção "Executar" para "Minimizado", pois não queremos que uma janela pisque na tela toda vez que usarmos o atalho.
Depois de tudo isso, você poderá usar o seguinte fluxo de trabalho:
fonte
Talvez esteja faltando alguma coisa, mas todas as outras respostas parecem complicar a solução. Se entendi corretamente, tudo o que você quer fazer é remover os espaços em branco iniciais (espaços ou guias) e você terá os dados disponíveis no Notepad ++
Nesse caso, a solução é simples. Abra seu arquivo em
Notepad++ >> Search >> Replace... or Ctrl+H
Encontre o que :
^( *)[ ]|^\t*
Substitua por : deixe em branco
Para encontrar todo o espaço inicial que usamos
^( *)[ ]
e para encontrar todas as guias principais, usamos^\t*
, como tal, para encontrar todo o espaço inicial ou todas as guias principais que usamos o operador ou|
. Verifique se Expressão regular está selecionada na janela de substituição.Ele deve terminar rapidamente, mesmo que seja um arquivo grande. Feche a janela Substituir e selecione Selecionar tudo (Ctrl + A) >> Copiar (Ctrl + C)
fonte
Minha resposta é baseada na resposta de Steven, que marquei como correta (ainda tive alguns problemas com ela e tentei editar, apesar de minha edição ter sido rejeitada).
Este é o código que funcionou melhor para mim:
Diferenças do código original de Steven:
Send, ^c
eSend, ^x
comSend, ^{sc02e}
eSend, ^{sc02d}
, respectivamente. Isso evita um erro de exclusão de texto no modo hebraico e em alguns outros modos de idioma que não o inglês).fonte