Kopiowanie / wklejanie Vimperatora

23

Próbuję Vimperatora . Głównie chciałem go do przewijania hjkl i podoba mi się jego system „podpowiedzi” do podążania za linkami. Te dwie funkcje są naprawdę wszystkim, czego potrzebuję; Myślę.

Nie mam nic przeciwko innym funkcjom, po prostu czasem mi przeszkadza.

Najbardziej denerwuje mnie kopiowanie / wklejanie. Jestem przyzwyczajony do Ctrl+ c/ Ctrl+ v, nie mam nic przeciwko użyciu innego skrótu, ale ...

:help yank wskazuje, że kopiowanie zaznaczonego tekstu odbywa się za pomocą Y, ale jedyną wspomnianą metodą wklejania jest środkowy przycisk myszy!

Jest to tak absurdalnie sprzeczne z duchem Vima!

Jak wkleić Vimperator bez użycia myszy?

hasen
źródło
Wszystkie odpowiedzi w tym pytaniu są nieaktualne (co ma sens, ponieważ mają siedem lat) Jeśli trafiłeś tutaj z Google, to nie są (na dziś) odpowiedzi, których szukasz
Arthur Ulfeldt

Odpowiedzi:

15

Najlepszą i najłatwiejszą rzeczą, jaką możesz zrobić, jest ponowne mapowanie kluczy. To nie jest trudne. Umieść to w swoim _vimperatorrc (lub .vimperatorrc w Linux)

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

<C-v>jest domyślnie przypisany do trybu „Przekaż następny”, co oznacza, że ​​następny klawisz, który naciskasz, jest wysyłany bezpośrednio do Firefoksa, bez przetwarzania i zjadania przez vimperator. Tak więc powyższe mapowania aktywują tylko tryb „Przejdź dalej” i wysyłają odpowiedni skrót.

Istnieje nawet wtyczka vimperatora, która rozszerza to jeszcze bardziej i odwzorowuje wszystkie popularne skróty systemu Windows , dzięki czemu zachowują się zgodnie z oczekiwaniami.

użytkownik4126
źródło
3
dla <Cv> (wklej) powinna to być inoremap
hasen
zaakceptowano dla linku do wtyczki! co jest niesamowite i rozwiązuje problem
hasen
2
Wygląda na to, że obecna wersja (3.8.1) może domyślnie kopiować i wklejać Cc i Cv na poziomie systemu operacyjnego ... Nie mogłem znaleźć nic na ten temat w dziennikach zmian, ale właśnie zmieniłem z Pentadactyl na najnowszy Vimperator, Cc i Cv działały tak, jak chciałem.
driftcatcher
@hangtwenty wydaje się być poprawny, odpowiedź tutaj jest teraz nieaktualna
Arthur Ulfeldt
36

Dziwię się, że nie udzielono dokładniejszej odpowiedzi na to pytanie. Link do wtyczki dla wybranej odpowiedzi rozwiązał problem PO, ale nikt tak naprawdę nie wyjaśnił, jak wkleić coś do pola tekstowego bez użycia trybu przejścia (Cv).

Jeśli jesteś w polu tekstowym w trybie INSERT i chcesz coś wkleić, oczywistą rzeczą do zrobienia w vi-land jest naciśnięcie ESC i p, aby wkleić. W vimperatorze to nie działa - ESC całkowicie wychodzi z trybu INSERT i przechodzi w tryb, w którym pracujesz z całą stroną / kartą.

Vimperator rozwiązuje ten problem dzięki dodatkowemu trybowi BASIC - TEXTAREA. W trybie TEXTAREA możesz używać obsługiwanych poleceń, których używałbyś w vi.

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

Itp.

Nie wydaje się to dobrze udokumentowane - ostatecznie pomyślałem, że to przez pomyłkę. Działa to samo w polach tekstowych wieloliniowych i jednowierszowych.

RevAaron
źródło
Dziękuję za ten komentarz. To jest dokładnie to, czego potrzebowałem, aby uzyskać okrągły vimperator i tworzyć pola.
ZweiBlumen,
@RevAaron po wejściu w tryb TEXTAREA jest podobny do tradycyjnego środowiska VI i większość klawiszy VI działałoby do edycji tekstu? Zauważyłem też (ponownie przypadkowo), kiedy naciskam „d”, a następnie „s” lub „a” w trybie TEXTAREA, przełącza tryb na ten o nazwie VISUAL. Byłbym wdzięczny, gdybyś mógł podać mi trochę informacji na ten temat. a nawet jeśli chcesz, mogę zadać to pytanie, możesz odpowiedzieć na to pytanie, a inni by go użyli.
Mehrad
13

W tej chwili vimperator odwzorowuje zarówno Ctrl + C (z „kopiuj” na „anuluj”), jak i Ctrl + V (z „wklej” na „przejście”). W systemie Linux preferowaną metodą kopiowania / wklejania jest środkowy przycisk myszy, więc nie stanowi to problemu. W systemie Windows jest to katastrofa w interfejsie użytkownika i należy go naprawić.

Istnieją trzy miejsca, z których możesz kopiować: tekst ze strony internetowej, tekst z pola formularza i tekst z zewnętrznej aplikacji. Istnieją dwa miejsca, do których możesz skopiować: do pola formularza i do aplikacji zewnętrznej. Paski adresu i poleceń działają jak pola formularza.

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

Zwykli użytkownicy nie zapamiętują tego stołu. Nigdy tego nie zrozumieją, ponieważ nie jest to wyraźnie udokumentowane i nie przeczytaliby go, nawet gdyby tak było. Zamiast tego będą używać menu kliknięcia prawym przyciskiem myszy, jedynej rzeczy, która działa wszędzie. W rzeczywistości kilka tygodni po rozpoczęciu korzystania z Vimperatora przyłapałem się na tym, że robię to w całkowicie niezwiązanej aplikacji, czegoś, czego nigdy wcześniej nie robiłem.

Musimy przywrócić ^ C i ^ V do ich oryginalnych, poprawnych funkcji jako kopiuj i wklej, co oznacza przesunięcie ^ C = anuluj i ^ V = klawisze skrótu przejścia. W rzeczywistości oba te skróty są unikalne dla vimperatora i nie pojawiają się w vimie. ^ V oznacza „blok wizualny” w vimie, który nie ma zastosowania w vimperatorze, więc przejście można łatwo przypisać do innego klucza. Proponuję odwrotny ukośnik w trybie poleceń i ctrl + odwrotny ukośnik w trybach poleceń i wstawiania. To pozostawia ^ C. Myślę, że należy przenieść do ^ S. Ma dwie dobre mnemoniki: „stop”, a także uniksowy skrót dla XOFF, który jest bezużyteczny, ale semantycznie podobny. ^ S jest obecnie w vimperatorze „zapisz stronę jako”, która jest rzadko używana i nadal jest dostępna za pomocą: save lub: saveas.

Cofnij jest również uszkodzony; było to ^ Z, ale ^ Z nie jest trybem przejściowym i nie ma możliwości cofnięcia edycji w polu formularza bez użycia myszy. Nie widzę powodu, aby nie przenosić tego na inny skrót, zwłaszcza że ^ Z w vimie oznacza zawieszenie, które jest całkowicie niezwiązane, a nieoczekiwane znalezienie się w trybie przejścia jest niezwykle dezorientujące. Nie mogę wymyślić niearbitralnego skrótu, aby to zmienić, ale ^ Z było dość arbitralne, więc każdy nieużywany skrót będzie wystarczający.

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

Joe
źródło
2

Od jakiegoś czasu szukałem sposobu, aby to zrobić. Niezłe. Ale rozwiązanie noremap z user4126 nie było całkiem idealne, gdybym chciał wkleić do linii poleceń lub do pola tekstowego, jak wskazuje Joe. Poprawiłem to za pomocą inoremap i cnoremap też na http://charlieharvey.org.uk/page/vimperator_cut_and_paste . Nie wygląda na to, że vnoremap jest obsługiwany.

Tak więc możesz wkleić do linii poleceń i do pól tekstowych, używając skrótu ctrl-v tylko raz. Wklej następujące elementy do .vimperatorrc i uruchom ponownie 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>
Charlie
źródło
2

Nie znalazłem użytych odpowiedzi, ponieważ nigdzie nie widzę Ctrl+ c. Używam skrótu SecureCRT. Oznacza to, że do kopiowania ze strony:

Ctrl+Ins

Do wklejenia: Ctrl+ Vdwukrotnie (jak ktoś mówi w odpowiedziach gdzie indziej).

Peter Mortensen
źródło
Uprzejmie panu dziękuję. Mapowanie <cc> na <c-ins> rozwiązało mój szczególny smak tego problemu.
Steve Vermeulen
1

Krótka odpowiedź - ^ V ^ V (tj. Ctrl-V Ctrl-V)

Pierwsze Ctrl-V wykonuje „kolejne naciśnięcie klawisza”. Drugi klawisz Ctrl-V wkleja tekst. To właśnie robię dla większości pól tekstowych.

Jeśli używasz trybu vi dla wieloliniowych pól tekstowych (ustaw tryb noinsert), możesz również wkleić za pomocą p - więc jeśli chcę wkleić adres URL innej karty do tego znacznika, mogę przejść do tej karty, użyć y, a następnie wrócić do ta zakładka. Dolny pasek przeglądarki powie - TEXTAREA - i mogę nacisnąć p, aby wkleić adres URL.

Hamish Downer
źródło
0

Sugerowałbym użyć

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

Ponieważ jeśli otworzyłeś zewnętrzny edytor tekstu, proste okno DW w FF zakończy edytor zewnętrzny i stracisz wszystko.

BR

MaikoID
źródło