2009-06-30 31 views
15

Como utilizo Notepad ++ todos los días en el trabajo, quiero extenderlo para que sea más productivo.Extender Bloc de notas ++

Lo que quiero hacer es seleccionar varias líneas que contengan palabras, haga clic derecho y haga clic en un elemento de menú como "Coma separado" y luego obtenga todas las palabras en una sola línea separada por comas.

Sé que Notepad ++ tiene soporte para macros y complementos. Cuál sería la mejor forma de hacer esto?

Tengo habilidades C++ limitadas.

Actualización:

Para aclarar, nunca es más de 5 o 6 líneas de palabras que necesito volver a formatear. El problema es que hago esto como 50 veces al día, así que una forma de acelerar esto sería genial. ¿Hay alguna otra aplicación que pueda hacer esto por mí?

Update2

Gracias por sus respuestas. Voy a tratar de crear un plugin Notepad ++.

Update3

¿Alguien sabe de un NET-envoltura para crear un plugin de Notepad ++? Tal vez esta debería ser una nueva pregunta.

+0

sonido como algo que haría con un reemplazo de búsqueda, opcionalmente con una expresión regular como replace "(\ b. +? \ b) \ s *" con "$ 1;" –

+0

También me gustaría saber cómo extender Notepad ++ con complementos (u otro editor de texto extensible) – Justin

+0

¿Qué sentido tiene decir que las soluciones ofrecidas no le ahorran tiempo porque solo tiene 5 o 6 líneas? ¿Qué esperas del macro o plugin del que hablas y qué pasos estás dispuesto a hacer? – VVS

Respuesta

5

A menudo utilizo la función macro de Notepad ++ para cosas como esta.

Por ejemplo. Digamos que tiene esto:

apple 
pear 
banana 
grape 
orange 

Para comas líneas separadas, usted podría ir a la primera línea, pulse Ctrl + R (iniciar la grabación), luego terminar, eliminar, coma, a continuación, Ctrl + R para detener la grabación.

A continuación, presione el control + p (reproducir grabación) varias veces hasta que tenga lo que desea. Si estoy procesando un archivo grande, solo lo sostengo, luego presiono Ctrl + z hacia atrás si voy demasiado lejos.

No puede guardar su macro para más adelante, pero algo tan simple es fácil de hacer nuevamente.

Editar: En realidad, resulta que puede guardar la macro para más adelante, e incluso asignar una tecla de acceso directo a la misma. Simplemente grabe la macro, luego vaya al Macro -> Save current recorded macro.

+0

Desafortunadamente, esta solución no me ahorrará tiempo, ya que a menudo son solo 5 o 6 filas las que necesito reemplazar. – alexn

0

Let see. Tengo 5 líneas de palabra. Los selecciono Ctrl + H. Compruebe extendido y en la selección. Busque '\ r \ n', reemplace con ',', pulse Reemplazar todo. Obtuve principalmente el resultado que desea (con una coma adicional al final).

¿Eso es lo que quieres? Quizás puedas hacer una macro, no sé mucho sobre esta capacidad (la mayoría de las veces utilizo SciTE).

+0

Sí, este es el comportamiento que estoy buscando. Desafortunadamente, esto no me ahorrará tanto tiempo, ya que a menudo son solo 5 o 6 líneas de palabras. – alexn

+0

PhiLho SciTE realmente rocas. – mahesh

+1

Probado con el último Notepad ++, aún no crea macros en los diálogos Buscar/Buscar (probablemente use la capacidad macro de Scintilla). A menos que me pierda algo, me temo que tiene que escribir un complemento C++, que es un poco exagerado para su necesidad. Lástima que NPP no admita secuencias de comandos como lo hace SciTE. Sería bastante trivial en Lua ... – PhiLho

1

En realidad, en Notepad ++ usted tiene que utilizar esta cadena para que coincida con una sola palabra en una línea, posiblemente con espacios finales:

^\<(.*)\> *$

y luego se cambian las palabras con \1,

Intenté Haga esto yo mismo, todo funcionó, excepto después de esto, usted tiene que cambiar de modo de búsqueda de expresiones regulares a extendido y eliminar todos \r\n o \n dependiendo de las terminaciones de su línea.

9

Puede hacerlo fácilmente ahora con el complemento Python Scripting para Notepad ++.

Sólo añadir un guión con algo como

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

Asignar la secuencia de comandos en un botón de acceso directo o barra de herramientas y se encuentra lejos. No estoy del todo claro sobre lo que quiere reemplazar, pero obviamente cambiar la lógica del script debería ser bastante fácil.

+0

Estaba a punto de proponer la misma solución. Acabo de descubrir este complemento y puede hacer muchas cosas poderosas. –

1

Sobre la base de la respuesta de PhiLho:

  1. Cerrar Notepad ++
  2. Editar% AppData% \ Notepad ++ \ shortcuts.xml en cualquier editor de texto que no sea N ++
  3. Encuentra < macros tag> y pegar dentro de la código de abajo:

    <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. Guardar, cerrar y abrir Notepad ++ - verá una nueva macro en el menú "macro" con la tecla de acceso directo configurado en Alt + SHIFT t + R (fácil de configurar el interior shortcuts.xml)
Cuestiones relacionadas