Edição múltipla do Notepad ++


112

Como posso ter vários cursores no Notepad ++?

Terei alguns valores delimitados por tabulação. Preciso escrever uma consulta para todos esses valores. Por exemplo, se eu obtiver um arquivo Excel com valores como este:

1234 xyz pqr
2345 sdf kkk
...

Quero copiar todo esse pedaço de dados no Notepad ++ e escrever a consulta, inserindo todos os valores de uma vez.

Como isso:

Insert into tbl (1234, xyz) where clm = 'pqr'
Insert into tbl (2345, sdf) where clm = 'kkk'
...

Eu costumava fazer isso com meu editor de texto anterior, Ultraedit. Isso pode ser feito usando o Notepad ++?


2
Er ... Use SublimeText. :)
Praveen Kumar Purushothaman

Faço isso o tempo todo com o Notepad ++, mas estou preso ao UltraEdit neste trabalho ... Como faço isso com o UltraEdit? :)
Ron Jensen - Somos todos Monica

Respostas:


166

Sim: simplesmente pressione e segure a Alttecla, clique e arraste para selecionar as linhas cujas colunas você deseja editar e comece a digitar.

Você também pode ir para Configurações> Preferências ... e, na guia Edição , ativar a edição múltipla para permitir a seleção de várias regiões ou colunas separadas de texto para editar de uma vez.

É muito mais intuitivo, pois você pode ver suas edições ao vivo enquanto digita.


2013 aqui, v5.2: Não há (mais uma) guia de edição ou opção de multiedição.
Wouter

@Wouter: Ele ainda está lá para mim na v6.2 ... se não estiver presente na v5.2, outra coisa pode estar errada, mas não posso comentar mais.
BoltClock

@BoltClock: Legal! Em algum lugar entre as versões v5.2 e v6.2, esse recurso deve ter sido adicionado. Ou talvez tenha se perdido momentaneamente em algum lugar antes disso :)
Wouter

1
Uma demonstração pode ser vista aqui: notepad-plus-plus.org/features/multi-editing.html . Parece uma versão antiga, mas tentei na v6.4.5 e funcionou bem.
Brazilianldsjaguar

10
alt+up/downnão funcionou para mim. Eu tive que usar em seu alt+shift+up/downlugar. v6.9.1
AXO

51

Na posição em que deseja adicionar texto, faça:

Shift+ Alt+down arrow

e selecione as linhas que você deseja. Em seguida, digite. O texto digitado é inserido em todas as linhas selecionadas.


1
Verdadeiramente a melhor resposta aqui.
Etienne Gautier

esta é uma resposta ainda melhor! lembre-se de usar shift + alt para qualquer ação como cortar, copiar!
gaurav

Há muito tempo que procuro esse recurso, obrigado!
michal.hubczyk

46

Você pode adicionar / editar conteúdo em várias linhas usando o botão de controle. Este é um recurso de edição múltipla no Notepad ++, precisamos habilitá-lo nas configurações. Pressione e segure o controle, selecione os locais onde deseja inserir o texto, libere o controle e comece a digitar, isso atualizará o texto em todos os locais selecionados anteriormente.

insira a descrição da imagem aqui

Ref: http://notepad-plus-plus.org/features/multi-editing.html


1
Eu amo o gif que você fez. Obrigado por isso.
Julien

Isso é exatamente o que eu queria. Obrigado.
Sol


22

Você pode usar Edit > Column Editor...para inserir texto nas linhas atuais e seguintes. O atalho é Alt + C.


8

O Notepad ++ possui um motor de regex poderoso, capaz de pesquisar e substituir padrões à vontade.

Em seu cenário:

  1. Clique no item de menu Pesquisar \ Substituir ...

  2. Preencha o campo 'Encontre o quê' com o padrão de pesquisa:

    ^(\d{4})\s+(\w{3})\s+(\w{3})$
    
  3. Preencha o padrão de substituição:

    Insert into tbl (\1, \2) where clm = \3
    
  4. Clique no Replace Allbotão.

E é isso.

Captura de tela da janela de substituição do NotePad ++


Tenho usado regex para esses tipos de edição por mais de 10 anos, mas muitas pessoas corrigem regex confusas ou difíceis de aprender
raider33

6

O método mais fácil de resolver seu problema (sem ir a um editor diferente ou aprender regex) é gravar uma macro.

  • Posicione o cursor no início do texto, clique no botão 'gravar' na faixa de opções e edite apenas aquela linha de texto. Você só pode usar as teclas de seta ou ctrl + setas para mover caracteres / palavras em vez de clicar com o mouse. As teclas 'home' e 'end' também são úteis.
  • Quando você terminar com essa linha, mova o cursor (novamente sem usar o mouse) para o início da próxima linha.
  • Clique no botão 'parar gravação'.
  • Clique no botão 'reproduzir macro' para verificar se funciona na próxima linha conforme o esperado.
  • Clique em 'executar macro várias vezes' para fazê-lo novamente, e novamente, e novamente ...: P
Uma vantagem disso em relação aos cursores de 'edição múltipla' é que você não precisa clicar e colocar os cursores manualmente em cada linha. A segunda vantagem é que você pode trabalhar com dados delimitados por tabulação que não têm tamanho / comprimento consistente - basta usar ctrl + esquerda / direita para pular palavras.

Honestamente, as macros em N ++ salvaram cerca de um ano da minha vida.


1

O Notepad ++ só tem edição de coluna. Isso não é completamente igual a vários cursores.

Sublime Text tem uma implementação maravilhosa disso, pode valer a pena conferir ...
É um editor relativamente novo (2011) que está ganhando popularidade rapidamente: http://www.google.com/trends/explore#q=Notepad% 2B% 2B% 2C% 20Sublime% 20Text & cmpt = q

Edit: Aparentemente, foi adicionado algum lugar ao redor do Notepad ++ versão 6.x edição de vários cursores, mas ainda existem alguns recursos mais avançados para ele no Sublime, como "selecionar próxima ocorrência".


a edição multi-cursor do npp está longe de ser tão boa quanto a edição multilinha do sublime.
th1rdey3 de

1
Correção: a edição multi-cursor do npp não é nem de longe tão boa quanto a edição multilinha do sublime por padrão . A biblioteca scintilla permite todas as funcionalidades que o sublime suporta. Qualquer usuário pode baixar um plugin como nppscripts ou pythonscript para acessar a estrutura npp subjacente e mapear esses scripts para atalhos de teclado, emulando todos os comandos sublimes. Para quem não quer se preocupar em configurar seu editor, pague por sublime.
user2867288

Eu entendo de onde você está vindo, mas não é justo pedir a um usuário regular que tenha que fazer o script da estrutura do editor subjacente para um recurso normal. Eu concordaria com você se um plugin já fizesse isso (se eu tivesse mais tempo faria um). Além disso, esta postagem recente em sourceforge.net/p/scintilla/feature-requests/1085 diz que "destacar próximo" pode ser fácil de fazer, mas você ainda não pode ter a funcionalidade das teclas de seta. Eu me pergunto como seria fácil "pular" para implementar também. Destaque próximo, pule próximo e as setas podem ser úteis às vezes.
ShawnFumo

0

Você pode usar o plugin ConyEdit para fazer isso. Com o ConyEdit em execução em segundo plano, siga estas etapas:

  1. use a linha de comando cc.spc /\t/ a para dividir o texto em colunas e armazená-los em uma matriz de duas dimensões.
  2. use o comando cc.ppara imprimir, usando o conteúdo da matriz.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.