it-swarm-pt.tech

Copiar / colar Vimperator

Estou testando Vimperator . Eu queria principalmente para a rolagem hjkl e gosto de seu sistema de "dicas" para seguir os links. Esses dois recursos são realmente tudo de que preciso; Eu acho que.

Eu não me importo com os outros recursos, apenas às vezes atrapalham.

O que mais me irrita é copiar/colar. estou acostumado a Ctrlc/Ctrl+v, Não me importo de usar outro atalho, mas ..

:help yank indica que a cópia do texto selecionado é feita com Y, mas o único método mencionado para colar é o botão do meio do mouse!

Isso é ridiculamente contra o espírito do Vim!

Como posso colar no Vimperator sem usar o mouse?

23
hasen

A melhor e mais fácil coisa que você pode fazer é remapear as chaves. Não é díficil. Coloque isso em seu _vimperatorrc (ou .vimperatorrc no Linux)

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

<C-v> é mapeado por padrão para o modo "Passar próximo", o que significa que a próxima tecla que você pressiona é enviada diretamente para o Firefox, sem ser processada e comida pelo vimperator. Assim, nos mapeamentos acima basta ativar o modo “Passar próximo” e enviar o respectivo atalho.

Existe até um plugin vimperator que estende isso ainda mais e remapeia todos os atalhos comuns do Windows , então eles se comportam como esperado.

15
user4126

Estou surpreso que não tenha havido uma resposta mais precisa a esta pergunta. O link do plugin da resposta escolhida resolveu o problema do OP, mas ninguém realmente explicou como colar algo em um campo de texto sem usar o modo passthrough (C-v).

Se você estiver em um campo de texto no modo INSERT e gostaria de colar algo, a coisa óbvia a fazer no vi-land é pressionar ESC ep para colar. No vimperator, isso não funciona - ESC tira você do modo INSERT completamente e entra no modo em que você trabalha com a página/guia como um todo.

O Vimperator resolve isso tendo um modo BÁSICO adicional - TEXTAREA. Quando no modo TEXTAREA, você pode usar os comandos suportados que você usaria no vi.

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

Etc.

Isso não parece estar bem documentado - acabei descobrindo por engano. Funciona da mesma forma em caixas de texto de várias linhas e de uma linha.

36
RevAaron

No momento, o vimperator remapeia Ctrl + C (de 'copiar' para 'cancelar') e Ctrl + V (de 'colar' para 'passar'). No Linux, o método preferido de copiar/colar é com o botão do meio do mouse, portanto, isso não é um problema. No Windows, isso é um desastre da interface do usuário e precisa urgentemente ser consertado.

Existem três locais de onde você pode copiar: texto de uma página da Web, texto de um campo de formulário e texto de um aplicativo externo. Existem dois locais onde você pode copiar: em um campo de formulário e em um aplicativo externo. O endereço e as barras de comando funcionam como campos de formulário.

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

Usuários comuns não memorizarão aquela tabela. Eles nunca vão descobrir, porque não está documentado explicitamente, e eles não iriam ler mesmo se estivesse. Em vez disso, eles usarão o menu do botão direito, a única coisa que funciona em qualquer lugar. Na verdade, algumas semanas depois de começar a usar o Vimperator, eu me peguei fazendo exatamente isso, em um aplicativo completamente não relacionado, algo que nunca tinha feito antes.

Precisamos restaurar ^ C e ^ V às suas funções originais e legítimas, como copiar e colar, o que significa deslocar as teclas de atalho ^ C = cancelar e ^ V = passagem. Na verdade, essas duas teclas de atalho são exclusivas do vimperator e não aparecem no vim. ^ V significa 'bloquear visual' no vim, que não se aplica ao vimperator, então a passagem pode ser facilmente atribuída a alguma outra tecla. Eu sugiro barra invertida no modo de comando e ctrl + barra invertida nos modos de comando e inserção. Isso deixa ^ C. Acho que deve ser movido para ^ S. Isso tem dois bons mnemônicos: é 'parar' e também é a tecla de atalho do Unix para XOFF, que é inútil, mas semanticamente semelhante. ^ S é atualmente "salvar página como" no vimperator, que raramente é usado e ainda pode ser acessado com: save ou: saveas.

Desfazer também está quebrado; era ^ Z, mas ^ Z não é o modo de passagem e não há como desfazer as edições em um campo de formulário sem usar o mouse. Não vejo razão para não mover isso para outra tecla de atalho, especialmente porque ^ Z no vim significa suspender, o que não está relacionado, e encontrar-se inesperadamente no modo de passagem é extremamente desorientador. Não consigo pensar em uma tecla de atalho não arbitrária para alterar isso, mas ^ Z era bastante arbitrário em primeiro lugar, portanto, qualquer tecla de atalho não utilizada serve.

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

13
joe

Há algum tempo procuro uma maneira de fazer isso. Agradável. Mas a solução noremap do user4126 não era perfeita se eu quisesse colar na linha de comando ou em uma caixa de texto como joe aponta. Então, eu ajustei com inoremap e cnoremap também em http://charlieharvey.org.uk/page/vimperator_cut_and_paste . Não parece que vnoremap é compatível.

Portanto, você pode colar na linha de comando e nas caixas de texto usando o atalho ctrl-v apenas uma vez. Cole o seguinte em seu .vimperatorrc e reinicie o 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

Não achei as respostas fornecidas úteis porque não consigo ver Ctrl+c qualquer lugar. O que eu faço é usar o atalho SecureCRT. Ou seja, para copiar da página:

Ctrl+Ins

Para colar: Ctrl+V duas vezes (como alguém diz nas respostas em outro lugar).

2
user31264

Para uma resposta curta - ^ V ^ V (ou seja, Ctrl-V Ctrl-V)

O primeiro Ctrl-V faz a "passagem seguinte do pressionamento de tecla". O segundo Ctrl-V cola o texto. Isso é o que faço para a maioria dos campos de texto.

Se você usar o modo vi para campos de texto de várias linhas (definir noinsertmode), você também pode colar usando p - então, se eu quiser colar o URL de outra guia nesta tag, posso ir para essa guia, usar y e voltar para esta guia. A barra inferior do navegador dirá - TEXTAREA - e posso pressionar p para colar o URL.

1
Hamish Downer

Tente o seguinte se preferir uma experiência sem mouse em vez de uma experiência completa do vim:

1
facepalmd

Eu sugeriria usar o

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

Porque se você abriu um editor de texto externo, um simples C-c na janela FF encerrará o editor externo e você perderá tudo.

BR

0
MaikoID