2009-06-30 17 views
15

Mentre utilizzo Notepad ++ quotidianamente al lavoro, desidero estenderlo per essere più produttivo.Estendere Notepad ++

Quello che voglio fare è selezionare più righe contenenti parole, fare clic destro e fare clic su una voce di menu come "Virgola separata", quindi separare tutte le parole su una singola riga.

So che Notepad ++ ha il supporto per macro e plugin. Quale sarebbe il modo migliore per farlo?

Ho competenze C++ limitate.

Aggiornamento:

Per chiarire, non è mai più di 5 o 6 righe di parole ho bisogno di riformattare. Il problema è che lo faccio 50 volte al giorno, quindi un modo per velocizzarlo sarebbe fantastico. C'è qualche altra applicazione che può fare questo per me?

Update2

Grazie per le vostre risposte. Ho intenzione di provare a creare un plugin Notepad ++.

Update3

Qualcuno sa di un NET-wrapper per creare un plugin Notepad ++? Forse questa dovrebbe essere una nuova domanda.

+0

suono come qualcosa che avrei fatto con un search-replace, opzionalmente con un'espressione regolare come replace "(\ b. +? \ b) \ s *" con "$ 1;" –

+0

Mi piacerebbe anche sapere come estendere Notepad ++ con plugin (o qualche altro editor di testo estensibile) – Justin

+0

Qual è il tuo punto di vista che le soluzioni offerte non ti fanno risparmiare tempo perché hai solo 5 o 6 linee? Cosa ti aspetti dalla macro o plugin di cui parli e quali passi sei disposto a fare? – VVS

risposta

5

Spesso uso la funzione macro di Notepad ++ per cose come questa.

Es. Diciamo che avete questo:

apple 
pear 
banana 
grape 
orange 

Per virgola linee separate, si potrebbe andare alla prima riga, premere Ctrl + R (avviare la registrazione), quindi terminare, cancellare, virgola, quindi CTRL + R per interrompere la registrazione.

Quindi premere ripetutamente control + p (riproduzione registrazione) finché non si ottiene ciò che si desidera. Se sto elaborando un file di grandi dimensioni, lo tengo premuto, quindi ctrl + z se torno troppo lontano.

Non è possibile salvare la macro per dopo, ma qualcosa di semplice è facile da fare ancora.

Edit: In realtà, si scopre che possibile salvare la macro per dopo, e anche assegnare un tasto di scelta rapida ad esso. Basta registrare la macro, quindi passare a Macro -> Save current recorded macro.

+0

Sfortunatamente, questa soluzione non mi farà risparmiare tempo dato che spesso sono solo 5 o 6 file che devo sostituire. – alexn

0

Vediamo. Ho 5 righe di parole. Li seleziono. Ctrl + H. Controlla la selezione estesa e In. Cerca '\ r \ n', sostituisci con ',', premi Sostituisci tutto. Ho ottenuto principalmente il risultato desiderato (con una virgola extra alla fine).

È quello che vuoi? Forse puoi ricavarne una macro, non ne so molto di questa capacità (in genere utilizzo SciTE in realtà).

+0

Sì, questo è il comportamento che sto cercando. Sfortunatamente, questo non mi salverà più di tanto, poiché spesso sono solo 5 o 6 righe di parole. – alexn

+0

PhiLho SciTE fa davvero un salto. – mahesh

+1

Provato con l'ultimo Notepad ++, non crea ancora macro dalle finestre di dialogo Trova/Cerca (probabilmente usa la funzionalità macro di Scintilla). A meno che non mi sfugga qualcosa, temo che tu debba scrivere un plugin per C++, che è un po 'eccessivo per le tue necessità. Peccato che l'NPP non supporti lo scripting come fa SciTE. Sarebbe piuttosto banale da fare in Lua ... – PhiLho

1

In realtà nel Notepad ++ è necessario utilizzare questa stringa per abbinare sola parola in una linea, possibilmente con spazi finali:

^\<(.*)\> *$

e poi si sostituisce le parole con \1,

ho cercato di fai questo da solo, tutto ha funzionato, tranne dopo che devi passare dalla modalità di ricerca regolare a estesa ed eliminare tutto il \r\n o \n a seconda delle terminazioni di linea.

9

Ora è possibile farlo facilmente con il plug-in Python Scripting per Notepad ++.

Basta aggiungere uno script con qualcosa come

text = editor.getSelText() 
text = text.replace(' ', ',') 
editor.replaceSel(text) 

assegnare lo script di un pulsante di scelta rapida o barra degli strumenti e sei lontano. Non sono del tutto chiaro su cosa vuoi sostituire, ma ovviamente cambiare la logica della sceneggiatura dovrebbe essere piuttosto facile.

+0

Stavo per proporre la stessa soluzione. Ho appena scoperto questo plugin e può fare un sacco di cose potenti. –

1

in base alla risposta del PhiLho:

  1. chiudere Notepad ++
  2. Modifica% AppData% \ Notepad ++ \ shortcuts.xml in qualsiasi editor di testo diverso da N ++
  3. Trova < Macro> tag e incollarlo all'interno della codice qui sotto:

    <Macro name="Lines to comma separated text" Ctrl="no" Alt="yes" Shift="yes" Key="82"> 
        <Action type="3" message="1700" wParam="0" lParam="0" sParam="" /> 
        <Action type="3" message="1601" wParam="0" lParam="0" sParam="\r\n" /> 
        <Action type="3" message="1625" wParam="0" lParam="1" sParam="" /> 
        <Action type="3" message="1602" wParam="0" lParam="0" sParam="," /> 
        <Action type="3" message="1702" wParam="0" lParam="768" sParam="" /> 
        <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" /> 
    </Macro> 
    
  4. Salva, chiudere e aprire Notepad ++ - vedrete una nuova macro nel menù "macro" con tasto di scelta rapida impostato su Alt + Shif t + R (facile da configurare all'interno shortcuts.xml)