Cópia / colagem do Vimperator


23

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

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

O que mais me irrita é copiar / colar. Estou acostumado a Ctrl+ c/ 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 é tão ridiculamente contra o espírito do Vim!

Como colar no Vimperator sem usar o mouse?


As respostas nesta pergunta estão desatualizadas (o que faz sentido desde os sete anos de idade) Se você chegou aqui do google, essas não são (a partir de hoje) as respostas que você está procurando
Arthur Ulfeldt

Respostas:


15

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>Por padrão, é mapeado para o modo "Pass next", o que significa que a próxima tecla pressionada é enviada diretamente para o Firefox, sem ser processada e consumida pelo vimperator. Portanto, os mapeamentos acima apenas ativam o modo "Pass next" e enviam o respectivo atalho.

Existe até um plug-in vimperator que estende isso ainda mais e remapeia todos os atalhos comuns do Windows , para que eles se comportem conforme o esperado.


3
para <Cv> (colar) deve ser inoremap
Hasen

aceito para o link do plugin! que é incrível e corrige o problema
Hasen

2
Parece que a versão atual (3.8.1) pode ter o Cc e o Cv copiando e colando no nível do sistema operacional por padrão ... Eu não consegui encontrar nada sobre isso nos registros de alterações, mas mudei do Pentadactyl para o mais recente Vimperator, Cc e Cv funcionaram como eu queria.
Driftcatcher

@hangtwenty parece ser correta, a resposta aqui está agora ultrapassada
Arthur Ulfeldt

36

Estou surpreso que não tenha sido dada uma resposta mais precisa a esta pergunta. O link do plug-in da resposta escolhida resolveu o problema do OP, mas ninguém explicou como colar algo em um campo de texto sem usar o modo de transmissão (Cv).

Se você estiver em um campo de texto no modo INSERT e quiser colar algo, o óbvio a ser feito no vi-land é pressionar ESC ep para colar. No vimperator, isso não funciona - o ESC o tira 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. 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 percebendo isso principalmente por engano. Funciona da mesma forma em caixas de texto com várias linhas e com uma única linha.


Obrigado por este comentário. Isso é exatamente o que eu precisava para passar o vimperador e os campos de formulário.
ZweiBlumen

@RevAaron quando você entra no modo TEXTAREA, é como o ambiente tradicional do VI e a maioria das teclas do VI funcionaria para editar texto? E também notei (novamente por acidente) quando pressiono "d" e depois "s" ou "a" no modo TEXTAREA, ele muda o modo para o chamado VISUAL. Eu apreciaria se você pudesse me dar algumas informações sobre isso. ou mesmo se você quiser, posso colocá-lo como uma pergunta, então você pode respondê-lo, para que outros o usem.
Mehrad 26/02

13

No momento, o vimperator remapeia Ctrl + C (de 'copiar' para 'cancelar') e Ctrl + V (de 'colar' para 'passagem'). 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 na interface do usuário e precisa muito ser corrigido.

Você pode copiar de três lugares: texto de uma página da Web, texto de um campo de formulário e texto de um aplicativo externo. Há dois lugares para os quais você pode copiar: em um campo de formulário e em um aplicativo externo. As barras de endereço e 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 memorizam essa tabela. Eles nunca descobrirão isso, porque não está documentado explicitamente e não o leriam, mesmo que fosse. Em vez disso, eles usarão o menu do botão direito, a única coisa que funciona em qualquer lugar. De fato, algumas semanas depois de começar a usar o Vimperator, me peguei fazendo exatamente isso, em um aplicativo completamente não relacionado, algo que nunca havia feito antes.

Precisamos restaurar ^ C e ^ V para suas funções originais e legítimas como copiar e colar, o que significa deslocar as teclas de acesso ^ C = cancel e ^ V = pass-through. De fato, 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; portanto, a passagem pode ser facilmente atribuída a alguma outra chave. Sugiro barra invertida no modo de comando e ctrl + barra invertida nos modos de comando e inserção. Isso deixa ^ C. Eu acho que isso deve ser movido para ^ S. Isso tem duas boas mnemônicas: é 'stop', e também é a tecla de atalho do Unix para o XOFF, que é inútil, mas semanticamente semelhante. ^ S está atualmente "save page as" 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 edições em um campo de formulário sem usar o mouse. Não vejo razão para não mudar isso para outra tecla de atalho, especialmente porque ^ Z no vim significa suspender, o que é completamente não 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 mudar isso, mas ^ Z foi bastante arbitrária em primeiro lugar, portanto, qualquer tecla de atalho não utilizada serve.

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


2

Estou procurando uma maneira de fazer isso há um tempo. 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 indica Joe. Então, ajustei-o com o inoremap e o cnoremap também em http://charlieharvey.org.uk/page/vimperator_cut_and_paste . Não parece que o vnoremap seja suportado.

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

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

Ctrl+Ins

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


Obrigado, gentil senhor. Mapear <cc> para <c-ins> resolveu meu sabor particular desse problema.
Steve Vermeulen


1

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

O primeiro Ctrl-V faz "a próxima passagem de tecla". O segundo Ctrl-V cola o texto. É o que faço na maioria dos campos de texto.

Se você usar o modo vi para campos de texto com várias linhas (definir noinsertmode), também poderá colar usando p - por isso, se quiser colar o URL de outra guia nessa tag, posso ir para essa guia, use ye, em seguida, volte para essa guia. A barra inferior do navegador exibirá - TEXTAREA - e eu posso pressionar p para colar no URL.


0

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, uma simples janela Cc na FF encerrará o editor externo e você perderá tudo.

BR

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.