¿Cómo pegar texto al final de cada línea? Sublime 2


159

Tengo curiosidad por saber si hay una manera de pegar texto al final de cada línea en Sublime 2? Y a la inversa, al comienzo de cada línea.

línea de prueba uno

línea de prueba dos

línea de prueba tres

línea de prueba cuatro

...

Supongamos que tiene 100 líneas de texto en el editor y desea pegar comillas al principio y al final de cada línea.

¿Hay una manera fácil de hacer esto o un complemento que alguien conozca? Esto a menudo me ahorraría mucho tiempo en varios proyectos.

Gracias.


44
Actualmente esta es la segunda demostración en la página de inicio ... sublimetext.com
TWiStErRob

Respuestas:


28

Puede usar la función Buscar y reemplazar con esta expresión regular ^([\w\d\_\.\s\-]*)$para buscar texto y el texto reemplazado es "$1".


77
¡Increíble! Entonces descubrí que lo siguiente funcionó para mí: el uso de expresiones regulares: (?> \ X0D \ x0A? | [\ X0A- \ x0C \ x85 \ x {2028} \ x {2029}]) encontrará el final de cada línea. Y utilizando expresiones regulares: ^ [a-zA-z0-9! @ # $ ") (* &! + _-] encontrará el comienzo de cada línea (siempre que se agreguen todos los caracteres para que la expresión regular busque al principio cada uno) de las líneas) .Gracias @yohann!
Tony H.

55
Si estás haciendo esto con una expresión regular en un editor potente como Vim o ST2, te estás perdiendo la pista. ¿Por qué degradar a un editor decente sed?
sehe

Gracias por salvarme 3 horas de mi vida
F. Mayoral

571

Sí, Regex es genial, pero hay otra alternativa.

  • Seleccione todas las líneas que desea prefijar o sufijo
  • Ir al menú Selección -> Dividir en líneas ( Cmd/ Ctrl+ Shift+ L)

Esto le permite editar varias líneas a la vez. Ahora puede agregar * Comillas (") o cualquier cosa * al inicio y al final de cada línea.


36
Esto es mucho más fácil de hacer.
Yada

66
Esta es una respuesta mucho mejor. También puede usar shift (Windows / Linux) o la tecla de opción (Mac) mientras selecciona una región con el mouse para obtener el mismo resultado.
dbn

55
A menudo puede encontrarse editando varias líneas como se describió anteriormente, pero luego desea volver a unirlas en una sola línea. Atajo para unir varias líneas: ctrl / cmd + J
fionbio

3
Esta es una buena respuesta, pero para recuentos de líneas muy grandes, puede ser mucho más intensivo de CPU que usar buscar y reemplazar.
Ceilingfish

2
Creo que esta merece ser la respuesta preferida
Michael Osofsky

78

Aquí está el flujo de trabajo que uso todo el tiempo, usando solo el teclado

  1. Ctrl/ Cmd+ ASeleccionar todo
  2. Ctrl/ Cmd+ Shift+ LDividir en líneas
  3. ' Rodea cada línea con comillas

Tenga en cuenta que esto no funciona si hay líneas en blanco en la selección.


3
no funciona para mí en st2, el paso 3 eliminó todas las líneas y lo reemplazó con "el paso 3 debería ser Home" End"
andrej

@andrej: eso suena como un error. Asegúrese de estar utilizando la versión más reciente de st2, y si es así, informe el error en sublimetext.userecho.com
dbn

1
@dbw ejecutando sublime text 2.0.1 build 2217. Publicado como error en sublimetext.userecho.com/topic/184875-
andrej

@andrej Puedo reproducir su problema si tengo líneas en blanco en la selección
Patrick McDonald

52
  1. Seleccione todas las líneas en las que desea agregar prefijo o sufijo. (Pero si desea agregar prefijo o sufijo solo a líneas específicas, puede usar ctrl+ Left mouse buttonpara crear múltiples cursores).
  2. Presione Ctrl+ Shift+ L.
  3. Presione la Hometecla y agregue el prefijo.
  4. Presione la Endtecla y agregue el sufijo.

Tenga en cuenta que deshabilite wordwrap, de lo contrario no funcionará correctamente si sus líneas son más largas que el ancho sublime.


2
Esta es la solución real. las teclas de inicio y final son cruciales para que esto funcione correctamente
Phil

En Sublime Text 3 (para Mac), las teclas de inicio y finalización no funcionaban para mí. Si tiene este problema, consulte: coderwall.com/p/upolqw/…
avance

Realmente no @Phil. También puede usar Cmd + flecha izquierda / derecha para navegar también. Creo que lo mismo también funcionará en Windows
Claud H

33

Digamos que tiene estas líneas de código:

test line one
test line two
test line three
test line four

Usando Buscar y Reemplazar Ctrl + Hcon Regex vamos a encontrar esto: ^y reemplazarlo con ", tendremos esto:

"test line one
"test line two
"test line three
"test line four

Ahora busquemos esto: $y reemplácelo con ", ahora tendremos esto:

"test line one"
"test line two"
"test line three"
"test line four"

funcionó muy bien en el sublime texto 3, ahorró toneladas de tiempo
jamescampbell

22

Usar selección de columna . La selección de columnas es una de las características únicas de Sublime2; se usa para darle múltiples cursores coincidentes ( tutorial aquí ). Para obtener múltiples cursores, realice una de las siguientes acciones:

Ratón:

  • Mantenga presionada la tecla Mayús (Windows / Linux) o la tecla de opción (Mac) mientras selecciona una región con el mouse.

  • Al hacer clic en el botón central del mouse (o desplazarse), también se seleccionará como columna.

Teclado:

  • Seleccione la región deseada.
  • Escriba control+ shift+ L(Windows / Linux) o command+ shift+ L(Mac)

Ahora tiene varias líneas seleccionadas, por lo que puede escribir una comilla al principio y al final de cada línea. Sería mejor aprovechar las capacidades de Sublime, y simplemente escribir " . Cuando haces esto, Sublime cita automáticamente el texto seleccionado.

Escriba escpara salir del modo de cursor múltiple.


3
También puede activar la selección de columnas haciendo clic con el botón central y arrastrando.
Curtis Gibby el

2
Esta es la forma más específica de Sublime Text para resolver el problema y utiliza una característica fundamental de Sublime Text. Como el OP preguntó sobre Sublime Text en el título, debería ser la respuesta aceptada.
Dribbler
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.