Notepad ++ Multi editing


112

Come posso avere più cursori in Notepad ++?

Avrò un paio di valori delimitati da tabulazioni. Devo scrivere una query per tutti questi valori. Ad esempio, se ottengo un file Excel con valori come questo:

1234 xyz pqr
2345 sdf kkk
...

Voglio copiare questo intero pezzo di dati in Notepad ++ e scrivere la query, inserendo tutti i valori contemporaneamente.

Come questo:

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

Lo facevo con il mio precedente editor di testo Ultraedit. È possibile farlo utilizzando Notepad ++?


2
Ehm ... Usa SublimeText. :)
Praveen Kumar Purushothaman,

Lo faccio sempre con Notepad ++, ma sono bloccato con UltraEdit in questo lavoro ... Come posso farlo con UltraEdit? :)
Ron Jensen - Siamo tutti Monica

Risposte:


166

Sì: tieni semplicemente premuto il Alttasto, fai clic e trascina per selezionare le righe di cui desideri modificare le colonne e inizia a digitare.

Puoi anche andare su Impostazioni> Preferenze ... e nella scheda Modifica , attivare la modifica multipla, per abilitare la selezione di più regioni o colonne separate di testo da modificare contemporaneamente.

È molto più intuitivo, poiché puoi vedere le tue modifiche dal vivo mentre digiti.


2013 qui, v5.2: non c'è (più una) scheda di modifica o opzione di modifica multipla.
Wouter

@Wouter: È ancora lì per me nella v6.2 ... se non è presente nella v5.2, qualcos'altro potrebbe essere sbagliato, ma non posso commentare ulteriormente.
BoltClock

@BoltClock: Cool! Da qualche parte tra la versione v5.2 e v6.2 quella funzionalità deve essere stata aggiunta. O forse si è perso momentaneamente da qualche parte prima :)
Wouter

1
Una demo può essere vista qui: notepad-plus-plus.org/features/multi-editing.html . Sembra una vecchia versione, ma l'ho provata nella v6.4.5 e ha funzionato bene.
brazilianldsjaguar

10
alt+up/downNon ha funzionato per me. Ho dovuto usare alt+shift+up/downinvece. v6.9.1
AXO

51

Nella posizione in cui vuoi aggiungere del testo, fai:

Shift+ Alt+down arrow

e seleziona le linee che desideri. Quindi digita. Il testo digitato viene inserito su tutte le righe selezionate.


1
Veramente la migliore risposta qui.
Etienne Gautier

questa è una risposta ancora migliore! ricordati di usare shift + alt per qualsiasi azione come taglia, copia!
gaurav

Ho cercato questa funzione per molto tempo, grazie!
michal.hubczyk

46

È possibile aggiungere / modificare il contenuto su più righe utilizzando il pulsante di controllo. Questa è una funzione di modifica multipla in Notepad ++, dobbiamo abilitarla dalle impostazioni. Tieni premuto il controllo, seleziona i punti in cui desideri inserire il testo, rilascia il controllo e inizia a digitare, questo aggiornerà il testo in tutti i punti selezionati in precedenza.

inserisci qui la descrizione dell'immagine

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


1
Adoro la gif che hai creato. Grazie per questo.
Julien

Questo è esattamente quello che volevo. Grazie.
Sol


22

È possibile utilizzare Edit > Column Editor...per inserire testo nella riga corrente e in quella successiva. La scorciatoia è Alt + C.


8

Notepad ++ ha un potente motore regex, in grado di cercare e sostituire modelli a piacimento.

Nel tuo scenario:

  1. Fare clic sulla voce di menu Cerca \ Sostituisci ...

  2. Compila il campo "Trova" con il modello di ricerca:

    ^(\d{4})\s+(\w{3})\s+(\w{3})$
    
  3. Riempi il motivo di sostituzione:

    Insert into tbl (\1, \2) where clm = \3
    
  4. Fare clic sul Replace Allpulsante.

E questo è tutto.

NotePad ++ sostituisce lo screenshot della finestra


Uso regex per questi tipi di modifiche da più di 10 anni, ma molte persone
correggono le espressioni regolari

6

Il metodo più semplice per risolvere il tuo problema (senza andare in un altro editor o imparare regex) è registrare una macro.

  • Posiziona il cursore all'inizio del testo, fai clic sul pulsante "registra" nella barra multifunzione, quindi modifica solo quella riga di testo. Puoi utilizzare solo i tasti freccia o ctrl + tasti freccia per spostarti tra caratteri / parole anziché fare clic con il mouse. Anche i tasti "home" e "end" sono utili.
  • Quando hai finito con quella riga, sposta il cursore (di nuovo senza usare il mouse) all'inizio della riga successiva.
  • Fare clic sul pulsante "interrompi registrazione".
  • Fare clic sul pulsante "Riproduci macro" per verificare che funzioni sulla riga successiva come previsto.
  • Fare clic su "Esegui macro più volte" per farlo di nuovo, e ancora, e ancora ...: P
Un vantaggio di questo rispetto ai cursori "multi-editing" è che non è necessario fare clic manualmente e posizionare i cursori su ogni singola riga. Il secondo vantaggio è che puoi lavorare con dati delimitati da tabulazioni che non hanno dimensioni / lunghezza coerenti: usa semplicemente ctrl + sinistra / destra per saltare le parole.

Onestamente, le macro in N ++ mi hanno salvato circa un anno di vita.


1

Notepad ++ ha solo la modifica delle colonne. Questo non è completamente uguale a più cursori.

Sublime Text ha una meravigliosa implementazione di questo, potrebbe valere la pena dare un'occhiata ...
È un editor relativamente nuovo (2011) che sta guadagnando popolarità abbastanza velocemente: http://www.google.com/trends/explore#q=Notepad% 2B% 2B% 2C% 20Sublime% 20Text & CMPT = q

Modifica: Apparentemente da qualche parte intorno a Notepad ++ versione 6.x è stata aggiunta la modifica multi-cursore, ma ci sono ancora alcune funzionalità più avanzate per questo in Sublime, come "seleziona l'occorrenza successiva".


l'editing multi-cursore di npp non è neanche lontanamente buono come l'editing multilinea di sublime.
th1rdey3

1
Correzione: l'editing multi-cursore di npp non è neanche lontanamente buono come l'editing multilinea di sublime per impostazione predefinita . La libreria scintilla consente tutte le funzionalità supportate da sublime. Qualsiasi utente può scaricare un plugin come nppscripts o pythonscript per accedere al framework npp sottostante e mappare quegli script su scorciatoie da tastiera, emulando tutti i comandi sublimi. Per coloro che non vogliono preoccuparsi di configurare il proprio editor, pagare assolutamente per sublime.
user2867288

Capisco da dove vieni, ma non è giusto chiedere a un utente normale di dover scrivere il framework dell'editor sottostante per una funzionalità normale. Sarei d'accordo con te se un plugin lo avesse già fatto (se avessi più tempo ne farei uno). Anche questo recente post sourceforge.net/p/scintilla/feature-requests/1085 dice che "evidenzia dopo" potrebbe essere facile da fare, ma non puoi ancora avere la funzionalità dei tasti freccia. Mi chiedo quanto sarebbe facile implementare anche il "saltare"? Evidenzia avanti, salta avanti e le frecce possono essere utili a volte.
ShawnFumo

0

Puoi usare il plugin ConyEdit per farlo. Con ConyEdit in esecuzione in background, segui questi passaggi:

  1. usa la riga di comando cc.spc /\t/ a per dividere il testo in colonne e memorizzarle in una matrice a due dimensioni.
  2. utilizzare il comando cc.pper stampare, utilizzando il contenuto dell'array.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.