Como faço para o Notepad ++ excluir linhas como o Eclipse?

74

O Eclipse possui um atalho de teclado que exclui a linha atual (se nada estiver selecionado) ou todas as linhas que fazem parte do texto atualmente selecionado: Ctrl+ D.

Existe uma maneira de fazer Ctrl+ Dfazer a mesma coisa no Notepad ++?

O melhor que pude fazer é remapear o atalho para o Scintilla SCI_LINE_DELETE, mas isso exclui apenas uma linha de cada vez, mesmo que a seleção abranja várias linhas.

Matt Ball
fonte

Respostas:

93

Ctrl+ Shift+ Lalcançará o mesmo efeito.

Ctrl+ Lexcluirá a linha, mas também a manterá na área de transferência, substituindo o conteúdo da área de transferência.

Não tenho certeza se você pode mapear Ctrl + D para fazer a mesma coisa ou não. Eu realmente não mexi com os mapeamentos de teclado com o Notepad ++, pois eles são muito semelhantes aos do Visual Studio

Anthony Shaw
fonte
14
Brilhante! Agora só preciso encontrar o que Ctrl+Lestá mapeado para ... editar aha, está mapeado para SCI_LINECUT. Esse foi literalmente o próximo comando do Scintilla abaixo SCI_LINE_DELETE.
Matt Bola
26
Observe que Ctrl+Lisso cortará a linha (copie-a na área de transferência). Para realmente excluir a linha Ctrl+Shift+L, isso excluirá as linhas selecionadas sem substituir a área de transferência.
Rosdi
11
@ RØŠÐÎ SCI_LINEDELETEé o que Ctrl+Shift+Lfoi mapeado. Eu tentei isso, mas ele apenas excluiu (sem copiar para a área de transferência) a primeira das linhas selecionadas, semelhante ao OP. Estou esquecendo de algo?
Jinglesthula
4
Por que não é no menuEdit > Line Operations
aliopi
20

Eu tive que mapear Ctrl+ Dpara ambos SCI_LINEDELETE e SCI_LINECUTpara fazê-lo se comportar como o Eclipse. Espero que isso seja útil.

Você também precisa desativar ou religar SCI_SELECTIONDUPLICATEpara que não haja conflito no Ctrl+ D.
Para desativar um atalho, realce-o, clique em Modifydefinir o DropDownList como None, clique Applyprimeiro e depois Okay.

alex
fonte
11
Como é que ambos foram necessários?
Jonathan Benn
11
Quando mapeio o mesmo atalho para os dois, tudo o que acontece é que ele passa de excluir apenas a primeira linha das linhas selecionadas para excluir apenas a linha em que o cursor estava. (I utilizado Ctrl + Shift + D, de modo que não têm que se preocupar com a ligação de selecção duplicar.)
jinglesthula
14

Macro é uma boa escolha aqui. Embora a macro que eu criei fique um pouco atrasada (você pode ver que pode haver um quarto de segundo de atraso entre o acerto CTRL-D e as linhas sendo excluídas em grandes seleções), ela funciona muito bem tanto em uma única linha quanto na seleção de várias linhas e abrange vários casos complicados.

Então, minha macro é:

CTRL + J - se várias linhas forem selecionadas, elas serão unidas em uma única linha
HOME - o botão HOME usual. Traz o cursor para o início de uma linha (ou o início de uma linha unida)
SHIFT + END - seleciona a linha até o final, começando na posição do cursor
CTRL + SHIFT + L - exclui a linha inteira

Esse conjunto de ações abrange todos os cenários possíveis de exclusão de linha que encontrei até o momento durante o uso intenso do bloco de notas ++.

Jan Domozilov
fonte
Eu sei que estou alguns anos atrasado, mas essa macro não funcionaria tão bem com apenas DELETE em vez de CTRL + SHIFT + L como o último comando? Se bem entendi, você já marcou todo o texto que deseja excluir com os três primeiros comandos.
Bjarte Aune Olsen
9

Há um atalho no Notepad ++ para excluir uma linha: Ctrl+ Shift+ L..mas isso excluirá apenas uma única linha.

Mesmo se várias linhas forem selecionadas, ele excluirá apenas a linha em que o cursor está apoiado e não as linhas destacadas.

Portanto, a maneira mais simples de excluir uma série de linhas selecionadas, é necessário registrar uma macro com estas combinações de atalhos de teclas:

Ctrl+J

Seguido por

Ctrl+ Shift+L

Primeiro, JOINas linhas selecionadas e depois DELETEa linha inteira.

Isso é melhor do que usar uma combinação CUTe DELETEabordagem como mencionado acima (o que eu tentei) porque, em alguns casos, ele também excluirá as linhas não selecionadas.

Tecnólogo Aberto
fonte
4

Como alternativa não macro à resposta de @Jan Domozilov, segui estas etapas (usando o Notepad ++ v6.5.1 (UNICODE)):

  1. No menu Configurações , selecione Shortcut Mapper.
  2. Na guia Menu principal , defina Join Lines(linha 26) como Ctrl+Alt+D.
  3. Clique na guia de comandos do Scintilla .
  4. Defina SCI_LINEDELETE(linha 90) para Ctrl+D.
  5. Feche a janela.

Isso permite que você execute o comportamento desejado com uma pequena modificação. Você seleciona o seu texto, executa o comando Unir Linhas Ctrl+Alt+D, libera apenas a Alttecla e pressiona Dnovamente para excluir o texto.

skia.heliou
fonte
0

Uma outra maneira mais simples é usar o backspacebotão após a seleção; isso substituirá a linha selecionada pelo backspace.

Hitesh Wadhwani
fonte
-1

Você pode usar CTRL + DELETE para excluir todo o conteúdo de uma linha. Tudo o que você faz é usar DELETE novamente para remover o avanço de linha. Se isso não for suficiente, você pode criar uma macro para executar as duas ações.

Como parece ter parado de funcionar na versão mais recente, recomendo que você use a abordagem Macro para todo o problema. Vá para Macro, "Iniciar Gravação", pressione "Casa", "Shift" + "FIM", "EXCLUIR", "EXCLUIR", depois vá para Macro e interrompa sua Macro. Depois disso, vá para Salvar macro gravada atual "e escolha um nome e um atalho (por exemplo, CTRL + DEL). Isso reativa o atalho para a linha de exclusão.

private_meta
fonte
Ctrl+Deletenão exclui linhas no Notepad ++ para mim (não remapeei nenhuma tecla além disso Ctrl+D).
Matt Bola
Qual versão do Notepad ++ você está usando? Ele está trabalhando no Notepad ++ 5.8.2 no Win7
private_meta
5.8.7 (a versão mais recente) no Win7 x64. Você quis dizer Ctrl+Backspace? (também não funciona para mim)
Matt Bola de
Ah, eu só testei com 5.8.7, e ele não quer trabalhar, deixe-me ver
private_meta
Eu atualizei minha resposta
private_meta
-1

CTRL + SHIFT + DELDETE funciona para mim, ótimo para excluir toda a linha única.

Zuzu
fonte
2
O OP deseja excluir todas as linhas que fazem parte do texto selecionado no momento . Seu atalho exclui apenas a primeira linha de uma seleção.
Nixda