Acabo de descubrir que puedo agregar las siguientes líneas a ~/.vimrc
.
set mouse=a
:vmap <C-C> "+y
Esto tiene el efecto de poder seleccionar texto con el mouse (es decir, en modo visual) y luego copiar el texto real al portapapeles X con Ctrl+ c. Esto difiere de la copia predeterminada del terminal, ya que es el texto real que estoy copiando, no lo que ve el terminal. Por ejemplo, si hubiera pestañas en el texto, anteriormente las copiaría como espacios.
¿Hay alguna manera de hacer que menos se comporten de la misma manera? es decir, ¿puedo copiar textualmente lo que hay en el archivo de texto que estoy viendo en menos?
Respuestas:
No es una tarea por menos
No,
no creo que pueda hacerlo directamente, porque menos no tiene un cursor para empezar.
Necesitaría uno para navegar al inicio y al final del texto para seleccionar.
less
simplemente no es la herramienta adecuada para la navegación a nivel de personaje.Pestañas ya expandidas
Puede usar la tecla shifty el mouse para hacer una selección; Esto lo maneja el terminal, no menos. Pero el terminal no sabe cómo se organizaron los espacios y las pestañas, menos la interpretación de las pestañas internamente, y escribe "
" caracteres normales en la pantalla.
Hay herramientas como
screen
,tmux
ybyobu
, que pueden hacer muchas cosas impresionantes en esta área. No lo comprobé, pero supongo que estos multiplexores de terminales no tienen una forma de evitar eso, al final son terminales, y se comportarán igual.Usar vim
Si usted está mostrando un archivo en
less
, hay una buena solución:Pulse la tecla vde
less
abrir el archivo actual envim
- Asumiendo su$EDITOR
etc. está configurado paravim
.Esto no funciona cuando se muestra la entrada estándar de una canalización más o menos, aunque existen soluciones alternativas .
Desplazamiento del mouse, al menos
Pero al menos puede desplazarse con la rueda del mouse:
Parece que incluso está habilitado de forma predeterminada, pero los eventos de la rueda del mouse se suprimen por una opción diferente.
Para una prueba rápida, intente:
La opción
-X
(--no-init
) bloquea el desplazamiento: verifique quéLESS
contiene su variable de entorno :La opción
-q
(--quiet
,--silent
) también causa problemas, según SU: ¿Cómo hacer que la rueda del mouse se desplace con menos buscapersonas usando bash y gnome-terminal?fuente
v
llave es fantástica! (Me he tomado la libertad de una solución alternativa para que funcione también en canalizaciones). FWIW en mi emulador de terminal (terminador) No tengo que mantener presionada la tecla Mayús cuando selecciono texto.vimpager
que puede usar para reemplazarless
la venta completa. En realidad, solo se utilizavim
envuelto en un pequeño script.vimpager
se ve muy bien, pero tuve problemas con los tirones que me hacen preferir usar menos yv
.vimpager
hasta que funcione; (Intento no activar todos misvim
complementos al comenzarvimpager
...)Puede copiar la línea superior que se muestra en
less
la selección X11 CLIPBOARD escribiendo conless
:Eso canaliza la menor cantidad de búfer desde la línea superior a la
.
marca (en efecto, todo el contenido de la pantalla) alhead -n1|xclip -sel c
comando (para almacenar la primera línea en la selección CLIPBOARD)Puede configurar su emulador de terminal para pegar esa cadena al presionar una tecla determinada, o vincular eso a una tecla o combinación de
less
teclas en las asociaciones de teclas. Por ejemplo, para vincularlo Alt+C:Sin embargo, tenga en cuenta que deberá presionar Enterdespués para reconocer el mensaje "| done (presione RETURN)".
Con
xterm
, también podría definir un nuevo modo de selección, por ejemplo, aquí al mantener presionado Ctrl+Altal extender la selección que indicaless
qué líneas copiar de su pantalla actual:Escribe un
lesspaste
guión como:Y defina las tablas de traducción xterm (aquí en la línea de comandos para la prueba, pero querrá agregarlo a un archivo de recursos X):
Luego marcaría las líneas para pegar arrastrando el mouse con presionado Ctrl+Alt, y al soltar el Botón 1, xterm le indicaría menos que canalice la pantalla actual a nuestro
lesspaste
script con las coordenadas de inicio y fin pasadas como un argumento (y1;x1 y2;x2
).(Tenga en cuenta que puede que no funcione correctamente si
less
se invoca con-s
exprimir líneas en blanco (como es típico cuando se invoca porman
), como la entrada que se alimenta alesspaste
le no han sus líneas en blanco exprimido (por lo que los desplazamientos número de línea puede ser malo)) .fuente
less
supone que debe dar algún tipo de retroalimentación?j
No parece hacer nada por mí.less
,j
se desplaza hacia abajo por una línea (forw-line
) en la clave de enlace predeterminado (en realidadJ
(forw-line-force
) sería mejor aquí, voy a editar).|
debería darle algunos comentarios. (solicite la marca y luego el comando para ingresar).j
no hice nada. La primera opción ahora funciona (+1). La segunda opción parece bastante complicada con algunas advertencias, por lo que no la probé. Creo quev
es lo suficientemente bueno para mí.