Bloc de notas ++ Edición múltiple


112

¿Cómo puedo tener varios cursores en Notepad ++?

Tendré un par de valores delimitados por tabulaciones. Necesito escribir una consulta para todos estos valores. Por ejemplo, si obtengo un archivo de Excel con valores como este:

1234 xyz pqr
2345 sdf kkk
...

Quiero copiar todo este dato en Notepad ++ y escribir la consulta, insertando todos los valores a la vez.

Me gusta esto:

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

Solía ​​hacerlo con mi anterior editor de texto Ultraedit. ¿Se puede hacer esto usando Notepad ++?


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

Hago esto todo el tiempo con Notepad ++, pero estoy atascado con UltraEdit en este trabajo ... ¿Cómo hago esto con UltraEdit? :)
Ron Jensen - Todos somos Monica

Respuestas:


166

Sí: simplemente presione y mantenga presionada la Alttecla, haga clic y arrastre para seleccionar las líneas cuyas columnas desea editar y comience a escribir.

También puede ir a Configuración> Preferencias ... y, en la pestaña Edición , activar la edición múltiple para permitir la selección de varias regiones o columnas de texto independientes para editar a la vez.

Es mucho más intuitivo, ya que puede ver sus ediciones en vivo mientras escribe.


2013 aquí, v5.2: ya no hay (ya) una pestaña de edición o una opción de edición múltiple.
Wouter

@Wouter: Todavía está ahí para mí en la v6.2 ... si no está presente en la v5.2, entonces algo más puede estar mal, pero no puedo comentar más.
BoltClock

@BoltClock: ¡Genial! En algún lugar entre la versión v5.2 y v6.2, esa función debe haberse agregado. O tal vez se perdió momentáneamente en algún lugar antes de eso :)
Wouter

1
Puede ver una demostración aquí: notepad-plus-plus.org/features/multi-editing.html . Parece una versión antigua, pero la probé en v6.4.5 y funcionó bien.
brazilianldsjaguar

10
alt+up/downno funcionó para mí. Tuve que usar alt+shift+up/downen su lugar. v6.9.1
AXO

51

En la posición en la que desea agregar texto, haga lo siguiente:

Shift+ Alt+down arrow

y seleccione las líneas que desee. Luego escribe. El texto que escribe se inserta en todas las líneas que seleccionó.


1
Realmente la mejor respuesta aquí.
Etienne Gautier

esta es una respuesta aún mejor! recuerde usar shift + alt para cualquier acción como cortar, copiar!
gaurav

He estado buscando esta función durante mucho tiempo, ¡gracias!
michal.hubczyk

46

Puede agregar / editar contenido en varias líneas usando el botón de control. Esta es la función de edición múltiple en Notepad ++, necesitamos habilitarla desde la configuración. Mantenga presionado el control, seleccione los lugares donde desea ingresar texto, suelte el control y comience a escribir, esto actualizará el texto en todos los lugares seleccionados previamente.

ingrese la descripción de la imagen aquí

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


1
Me encanta el gif que hiciste. Gracias por esto.
Julien

Eso es precisamente lo que quería. Gracias.
Sol


22

Puede utilizar Edit > Column Editor...para insertar texto en las líneas actual y siguiente. El atajo es Alt + C.


8

Notepad ++ tiene un potente motor de expresiones regulares, capaz de buscar y reemplazar patrones a voluntad.

En tu escenario:

  1. Haga clic en el elemento de menú Buscar \ Reemplazar ...

  2. Complete el campo 'Buscar qué' con el patrón de búsqueda:

    ^(\d{4})\s+(\w{3})\s+(\w{3})$
    
  3. Rellene el patrón de reemplazo:

    Insert into tbl (\1, \2) where clm = \3
    
  4. Haga clic en el Replace Allbotón.

Y eso es.

NotePad ++ reemplazar captura de pantalla de la ventana


He estado usando expresiones regulares para este tipo de ediciones durante más de 10 años, pero muchas personas corrigen expresiones regulares confusas o difíciles de aprender
raider33

6

El método más fácil para resolver su problema (sin ir a un editor diferente o aprender expresiones regulares) es grabar una macro.

  • Coloque el cursor al comienzo de su texto, haga clic en el botón 'grabar' en la cinta y luego edite solo esa fila de texto. Solo puede usar las teclas de flecha o ctrl + teclas de flecha para moverse entre caracteres / palabras en lugar de hacer clic con el mouse. Las teclas 'inicio' y 'fin' también son útiles.
  • Cuando haya terminado con esa línea, mueva el cursor (nuevamente sin usar el mouse) al comienzo de la siguiente línea.
  • Haga clic en el botón 'detener grabación'.
  • Haga clic en el botón 'reproducir macro' para comprobar que funciona en la siguiente línea como se esperaba.
  • Haga clic en 'ejecutar macro varias veces' para hacerlo una y otra vez y otra vez ...: P
Una ventaja de esto sobre los cursores de 'edición múltiple' es que no tiene que hacer clic y colocar cursores manualmente en cada fila. La segunda ventaja es que puede trabajar con datos delimitados por tabuladores que no tienen un tamaño / longitud consistentes; solo use ctrl + izquierda / derecha para omitir palabras.

Honestamente, las macros en N ++ me han salvado alrededor de un año de mi vida.


1

Notepad ++ solo tiene edición de columnas. Esto no es completamente lo mismo que varios cursores.

Sublime Text tiene una implementación maravillosa de esto, valdría la pena echarle un vistazo ...
Es un editor relativamente nuevo (2011) que está ganando popularidad bastante rápido: http://www.google.com/trends/explore#q=Notepad% 2B% 2B% 2C% 20 Sublime% 20Texto & cmpt = q

Editar: Aparentemente, en algún lugar alrededor de Notepad ++ versión 6.x se agregó la edición de múltiples cursores, pero todavía hay algunas características más avanzadas en Sublime, como "seleccionar la siguiente ocurrencia".


la edición de múltiples cursores de npp no ​​es tan buena como la edición de varias líneas de sublime.
th1rdey3

1
Corrección: la edición de múltiples cursores de npp no ​​es tan buena como la edición de varias líneas de sublime por defecto . La biblioteca scintilla permite todas las funciones que admite sublime. Cualquier usuario puede descargar un complemento como nppscripts o pythonscript para acceder al marco npp subyacente y asignar esos scripts a atajos de teclado, emulando todos los comandos sublimes. Para aquellos que no quieren molestarse en configurar su editor, paguen por lo sublime.
user2867288

Entiendo de dónde viene, pero no es justo pedirle a un usuario normal que tenga que escribir el marco del editor subyacente para una función normal. Estoy de acuerdo contigo si un complemento ya hiciera esto (si tuviera más tiempo, haría uno). Además, esta publicación reciente sourceforge.net/p/scintilla/feature-requests/1085 dice que "resaltar siguiente" podría ser fácil de hacer, pero aún no puede tener la funcionalidad de la tecla de flecha. Me pregunto qué tan fácil sería implementar "omitir" también. Resalte siguiente, omita el siguiente y las flechas pueden ser útiles a veces.
ShawnFumo

0

Puede usar el complemento ConyEdit para hacer esto. Con ConyEdit ejecutándose en segundo plano, siga estos pasos:

  1. use la línea de comando cc.spc /\t/ apara dividir el texto en columnas y almacenarlas en una matriz de dos atenuaciones.
  2. use el comando cc.ppara imprimir, usando el contenido de la matriz.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.