it-swarm-es.tech

Copiar / pegar Vimperator

Estoy probando Vimperator . Lo quería principalmente para el desplazamiento hjkl, y me gusta su sistema de "pistas" para seguir enlaces. Estas dos funciones son realmente todo lo que necesito; Yo creo que.

No me importan las otras funciones, solo que a veces se interponen en mi camino.

Lo que más me molesta es copiar/pegar. estoy acostumbrado a Ctrlc/Ctrl+v, No me importa usar otro atajo, pero ...

:help yank indica que la copia del texto seleccionado se realiza con Y, ¡pero el único método mencionado para pegar es el botón central del mouse!

¡Esto es tan ridículamente contra el espíritu de Vim!

¿Cómo puedo pegar en Vimperator sin usar el mouse?

23
hasen

Lo mejor y más fácil que puede hacer es reasignar las claves. No es dificil. Pon esto en tu _vimperatorrc (o .vimperatorrc en Linux)

noremap <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

<C-v> está asignado de forma predeterminada al modo "Pasar siguiente", lo que significa que la siguiente tecla que presione se envía directamente a Firefox, sin que vimperator la procese ni la coma. Entonces, las asignaciones de arriba simplemente activan el modo "Pasar siguiente" y envían el acceso directo respectivo.

Incluso hay un complemento vimperator que amplía esto aún más y reasigna todos los atajos de Windows comunes , por lo que se comportan como se esperaba.

15
user4126

Me sorprende que no se haya dado una respuesta más precisa a esta pregunta. El enlace del complemento de la respuesta elegida resolvió el problema del OP, pero nadie realmente explicó cómo pegar algo en un campo de texto sin usar el modo de paso a través (C-v).

Si está en un campo de texto en modo INSERT y le gustaría pegar algo, lo obvio que debe hacer en vi-land es presionar ESC yp para pegar. En vimperator, esto no funciona: ESC lo saca completamente del modo INSERT y al modo en el que trabaja con la página/pestaña como un todo.

Vimperator resuelve esto al tener un modo BÁSICO adicional: TEXTAREA. En el modo TEXTAREA, puede usar los comandos compatibles que usaría en vi.

Enter TEXTAREA mode: C-t
Paste:    p
Copy line:    yy
Delete Char:  x
Delete Line:  dd

Etc.

Esto no parece estar bien documentado; terminé imaginándolo principalmente por error. Funciona igual en cuadros de texto multilínea y de una sola línea.

36
RevAaron

En este momento, vimperator reasigna Ctrl + C (de 'copiar' a 'cancelar') y Ctrl + V (de 'pegar' a 'pasar'). En Linux, el método preferido de copiar/pegar es con el botón central del mouse, por lo que esto no es un problema. En Windows, esto es un desastre en la interfaz de usuario y necesita ser reparado con urgencia.

Hay tres lugares desde los que puede copiar: texto de una página web, texto de un campo de formulario y texto de una aplicación externa. Hay dos lugares en los que puede copiar: en un campo de formulario y en una aplicación externa. Las barras de dirección y comando funcionan como campos de formulario.

Copying from...
     A web page: 'Y' works, '^C' doesn't
     Form field: 'Y' doesn't work, '^C' does
     Extern application: 'Y' doesn't work, '^C' does
  Copying to...
     Form field: '^V' doesn't work, '^V,^V' does
     External application: '^V' works, '^V,^V' pastes twice
 Or, seen another way
       Copy  Paste
 Page  Y     N/A
 Form  ^C    ^V,^V
 App   ^C    ^V

Los usuarios comunes no memorizarán esa tabla. Nunca lo descubrirán, porque no está documentado explícitamente y no lo leerían incluso si lo estuviera. En su lugar, usarán el menú del botón derecho, lo único que funciona en todas partes. De hecho, unas semanas después de que comencé a usar Vimperator, me sorprendí haciendo precisamente eso, en una aplicación completamente ajena, algo que nunca había hecho antes.

Necesitamos restaurar ^ C y ^ V a sus funciones originales y legítimas como copiar y pegar, lo que significa desplazar las teclas de acceso rápido ^ C = cancelar y ^ V = pasar. De hecho, estas dos teclas de acceso rápido son exclusivas de vimperator y no aparecen en vim. ^ V significa 'bloque visual' en vim, que no se aplica en vimperator, por lo que el paso a través se puede asignar fácilmente a otra clave. Sugiero barra invertida en el modo de comando y ctrl + barra invertida en los modos de comando e inserción. Eso deja ^ C. Creo que debería trasladarse a ^ S. Tiene dos buenos mnemónicos: es 'detener', y también es la tecla de acceso rápido de Unix para XOFF, que es inútil pero semánticamente similar. ^ S es actualmente "guardar página como" en vimperator, que rara vez se usa y aún se puede acceder con: save o: saveas.

Deshacer también está roto; era ^ Z, pero ^ Z no es el modo de transferencia y no hay forma de deshacer ediciones en un campo de formulario sin usar el mouse. No veo ninguna razón para no mover eso a otra tecla de acceso rápido, especialmente porque ^ Z en vim significa suspender, lo cual no está relacionado en absoluto, y encontrarse inesperadamente en el modo de transferencia es extremadamente desorientador. No puedo pensar en una tecla de acceso rápido no arbitrario para cambiar esto, pero ^ Z era bastante arbitrario en primer lugar, por lo que cualquier tecla de acceso rápido no utilizada servirá.

Soruce: http://www.mozdev.org/pipermail/vimperator/2008-October/002359.html

13
joe

He estado buscando una forma de hacer esto durante un tiempo. Buena esa. Pero la solución noremap de user4126 no era del todo perfecta si quería pegarla en la línea de comandos o en un cuadro de texto, como señala Joe. Así que lo modifiqué con inoremap, y cnoremap también en http://charlieharvey.org.uk/page/vimperator_cut_and_paste . No parece que vnoremap sea compatible.

Por lo tanto, puede pegar en la línea de comandos y en los cuadros de texto usando el acceso directo ctrl-v solo una vez. Pegue lo siguiente en su .vimperatorrc y reinicie Firefox.

noremap <C-v> <C-v><C-v>
inoremap <C-v> <C-v><C-v>
cnoremap <C-v> <C-v><C-v>

noremap <C-c> <C-v><C-c>
inoremap <C-c> <C-v><C-c>
cnoremap <C-c> <C-v><C-c>
2
Charlie

No encontré las respuestas dadas útiles porque no puedo ver Ctrl+c en cualquier sitio. Lo que hago es usar el acceso directo de SecureCRT. Es decir, para copiar de la página:

Ctrl+Ins

Para pegar: Ctrl+V dos veces (como dice alguien en las respuestas en otro lugar).

2
user31264

Para una respuesta corta: ^ V ^ V (es decir, Ctrl-V Ctrl-V)

El primer Ctrl-V hace "pasar la siguiente pulsación de tecla". El segundo Ctrl-V pega el texto. Esto es lo que hago para la mayoría de los campos de texto.

Si usa el modo vi para campos de texto de varias líneas (establezca noinsertmode), también puede pegar usando p, por lo que si quisiera pegar la URL de otra pestaña en esta etiqueta, puedo ir a esa pestaña, usar y luego volver a esta pestaña. La barra inferior del navegador dirá - TEXTAREA - y puedo presionar p para pegar la URL.

1
Hamish Downer

Pruebe lo siguiente si prefiere tener una experiencia sin mouse que una experiencia vim completa:

1
facepalmd

Sugeriría usar el

map <C-c> <C-v><C-c>
noremap <C-v> <C-v><C-v>

Porque si ha abierto un editor de texto externo, un simple C-c en la ventana FF terminará el editor externo y perderá todo.

BR

0
MaikoID