Vimperator kopieren / einfügen

23

Ich probiere Vimperator aus . Ich wollte es hauptsächlich für das hjkl-Scrollen, und ich mag sein "Hinweis" -System zum Verfolgen von Links. Diese beiden Funktionen sind wirklich alles, was ich brauche; Ich glaube.

Die anderen Funktionen stören mich nicht, sie stehen mir nur manchmal im Weg.

Was mich am meisten nervt, ist das Kopieren / Einfügen. Ich bin an Ctrl+ c/ Ctrl+ gewöhnt v, es macht mir nichts aus, eine andere Verknüpfung zu verwenden, aber ..

:help yank gibt an, dass das Kopieren des ausgewählten Texts mit Y erfolgt, die einzige zum Einfügen erwähnte Methode jedoch die mittlere Maustaste ist!

Das ist so lächerlich gegen den Geist von Vim!

Wie kann ich Vimperator einfügen, ohne die Maus zu verwenden?

hasen
quelle
Die Antworten in dieser Frage sind alle veraltet (was Sinn macht, da sie sieben Jahre alt sind). Wenn Sie von Google hier gelandet sind, sind dies nicht die Antworten, die Sie suchen (Stand heute)
Arthur Ulfeldt

Antworten:

15

Das Beste und Einfachste, was Sie tun können, ist, die Tasten neu zuzuordnen. Es ist nicht schwer. Fügen Sie dies in Ihr _vimperatorrc ein (oder .vimperatorrc in Linux)

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

<C-v>ist standardmäßig dem Modus "Weiter" zugeordnet. Dies bedeutet, dass die nächste gedrückte Taste direkt an Firefox gesendet wird, ohne von vimperator verarbeitet und gegessen zu werden. Die obigen Zuordnungen aktivieren also einfach den "Weiter" -Modus und senden die entsprechende Verknüpfung.

Es gibt sogar ein Vimperator-Plugin, das dieses Plugin noch erweitert und alle gängigen Windows-Verknüpfungen neu zuordnet , damit sie sich wie erwartet verhalten.

user4126
quelle
3
für <Cv> (Paste) es sein inoremap sollte
hasen
akzeptiert für den Plugin Link! Das ist fantastisch und behebt das Problem
hasen
2
Es sieht so aus, als ob in der aktuellen Version (3.8.1) Cc und Cv standardmäßig das Kopieren und Einfügen auf Betriebssystemebene ausführen. In den Änderungsprotokollen konnte ich nichts dazu finden, aber ich habe gerade von Pentadactyl auf die neueste Version gewechselt Vimperator und Cc und Cv arbeiteten so, wie ich es wollte.
Driftcatcher
@hangtwenty scheint richtig zu sein, die Antwort hier ist jetzt veraltet
Arthur Ulfeldt
36

Ich bin überrascht, dass auf diese Frage keine genauere Antwort gegeben wurde. Der Plugin-Link der gewählten Antwort hat das Problem des OP gelöst, aber niemand hat erklärt, wie etwas in ein Textfeld eingefügt werden kann, ohne den Passthrough-Modus (Cv) zu verwenden.

Wenn Sie sich im INSERT-Modus in einem Textfeld befinden und etwas einfügen möchten, ist es naheliegend, in vi-land ESC und p zum Einfügen zu drücken. In vimperator funktioniert dies nicht - ESC verlässt den INSERT-Modus vollständig und wechselt in den Modus, in dem Sie mit der Seite / Registerkarte insgesamt arbeiten.

Vimperator löst dieses Problem durch eine zusätzliche BASIC-Modus-TEXTAREA. Im TEXTAREA-Modus können Sie die unterstützten Befehle verwenden, die Sie in vi verwenden würden.

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

Etc.

Dies scheint nicht gut dokumentiert zu sein - ich habe es letztendlich meistens aus Versehen herausgefunden. Dies funktioniert auch in mehrzeiligen und einzeiligen Textfeldern.

RevAaron
quelle
Vielen Dank für diesen Kommentar. Dies ist genau das, was ich brauchte, um meinen Kopf um Vimperator und Formfelder zu legen.
ZweiBlumen
@RevAaron Wenn Sie in den TEXTAREA-Modus wechseln, entspricht dies der traditionellen VI-Umgebung und die meisten VI-Tasten funktionieren zum Bearbeiten von Text. Und auch ich bemerkte (wieder aus Versehen), wenn ich "d" und dann "s" oder "a" im TEXTAREA-Modus drücke, wird der Modus auf den VISUAL-Modus umgeschaltet. Ich würde mich freuen, wenn Sie mir dazu einige Informationen geben könnten. oder selbst wenn du magst, kann ich es als Frage stellen, dann kannst du es beantworten, dann würden andere es benutzen.
Mehrad
13

Im Moment ordnet vimperator sowohl Strg + C (von "Kopieren" bis "Abbrechen") als auch Strg + V (von "Einfügen" bis "Weiterleiten") neu zu. Unter Linux ist das Kopieren / Einfügen mit der mittleren Maustaste die bevorzugte Methode, daher ist dies kein Problem. Unter Windows ist dies eine Katastrophe der Benutzeroberfläche und muss dringend behoben werden.

Sie können an drei Stellen kopieren: Text von einer Webseite, Text aus einem Formularfeld und Text aus einer externen Anwendung. Sie können an zwei Stellen kopieren: in ein Formularfeld und in eine externe Anwendung. Die Adress- und Befehlsleisten funktionieren wie Formularfelder.

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

Normale Benutzer werden sich diese Tabelle nicht merken. Sie werden es nie herausfinden, weil es nicht explizit dokumentiert ist, und sie würden es nicht lesen, selbst wenn es so wäre. Stattdessen verwenden sie das Rechtsklick-Menü, das einzige, was überall funktioniert. Tatsächlich habe ich mich ein paar Wochen, nachdem ich angefangen hatte, Vimperator zu verwenden, dabei erwischt, dass ich genau das in einer völlig unabhängigen Anwendung tat, was ich noch nie zuvor getan hatte.

Wir müssen ^ C und ^ V auf ihre ursprünglichen, rechtmäßigen Funktionen als Kopieren und Einfügen zurücksetzen, was bedeutet, dass die Tastenkombinationen ^ C = Abbrechen und ^ V = Durchreichen ersetzt werden müssen. Tatsächlich sind diese beiden Hotkeys nur für vimperator verfügbar und werden in vim nicht angezeigt. ^ V bedeutet in vim 'Visualisierung blockieren', was in vimperator nicht zutrifft, sodass die Weiterleitung leicht einem anderen Schlüssel zugewiesen werden kann. Ich empfehle einen Backslash im Befehlsmodus und Strg + Backslash sowohl im Befehls- als auch im Einfügemodus. Das lässt ^ C. Ich denke das sollte nach ^ S verschoben werden. Dies hat zwei gute Mnemoniken: Es ist 'stop' und es ist auch der Unix-Hotkey für XOFF, der nutzlos, aber semantisch ähnlich ist. ^ S ist momentan in vimperator "Seite speichern unter", was selten verwendet wird und immer noch mit: save oder: saveas aufgerufen werden kann.

Rückgängig ist auch kaputt; Es war ^ Z, aber ^ Z ist kein Pass-Through-Modus und es gibt keine Möglichkeit, Änderungen in einem Formularfeld rückgängig zu machen, ohne die Maus zu verwenden. Ich sehe keinen Grund, dies nicht auf einen anderen Hotkey zu verschieben, zumal ^ Z in vim suspend bedeutet, was völlig unabhängig ist und sich unerwartet im Pass-Through-Modus befindet, ist äußerst desorientiert. Ich kann mir keinen nicht-willkürlichen Hotkey vorstellen, in den ich das ändern könnte, aber ^ Z war anfangs ziemlich willkürlich, so dass jeder nicht verwendete Hotkey ausreicht.

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

Joe
quelle
2

Ich habe eine Weile nach einer Möglichkeit gesucht, dies zu tun. Schön. Aber die noremap-Lösung von user4126 war nicht ganz perfekt, wenn ich in die Kommandozeile oder in ein Textfeld einfügen wollte, wie Joe betont. Also habe ich es mit inoremap und cnoremap unter http://charlieharvey.org.uk/page/vimperator_cut_and_paste optimiert . Es sieht nicht so aus, als ob vnoremap unterstützt wird.

Sie können also in die Befehlszeile und in Textfelder einfügen, indem Sie die Tastenkombination Strg-V nur einmal verwenden. Fügen Sie Folgendes in Ihre .vimperatorrc ein und starten Sie Firefox neu.

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
quelle
2

Ich fand die gegebenen Antworten nicht nützlich, da ich nirgendwo Ctrl+ sehen ckann. Ich verwende die SecureCRT-Verknüpfung. Das heißt, zum Kopieren von der Seite:

Ctrl+Ins

Zum Einfügen: Ctrl+ Vzweimal (wie jemand in den Antworten an anderer Stelle sagt).

Peter Mortensen
quelle
Ich danke Ihnen lieber Herr. Die Zuordnung von <cc> zu <c-ins> löste meinen besonderen Geschmack dieses Problems.
Steve Vermeulen
1

Für eine kurze Antwort - ^ V ^ V (dh Strg-V Strg-V)

Die erste Strg-V-Taste führt den "nächsten Tastendruck durch" aus. Die zweite Strg-V-Taste fügt den Text ein. Das mache ich für die meisten Textfelder.

Wenn Sie den vi-Modus für mehrzeilige Textfelder verwenden (noinsertmode festlegen), können Sie auch p verwenden. Wenn ich also die URL eines anderen Tabs in dieses Tag einfügen möchte, kann ich zu diesem Tab wechseln, y verwenden und dann zurück zu wechseln diese Registerkarte. In der unteren Leiste des Browsers wird TEXTAREA angezeigt, und ich kann p drücken, um die URL einzufügen.

Hamish Downer
quelle
0

Ich würde vorschlagen, die zu verwenden

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

Denn wenn Sie einen externen Texteditor geöffnet haben, wird der externe Editor durch ein einfaches Cc at FF-Fenster beendet und Sie verlieren alles.

BR

MaikoID
quelle