Ich möchte in der Lage sein, aus der System-Zwischenablage (oder Textauswahl) über die Tastatur in meine "vi-like" Shell-Eingabeaufforderung einzufügen. Ich benutze normalerweise zsh und manchmal bash. In beiden Fällen habe ich die Shell mit vi-ähnlichem Verhalten ( bindkey -v
/ set -o vi
) eingerichtet.
In vim ist das gesuchte Verhalten mit der Tastenfolge verfügbar "+p
. Diese spezielle Tastenfolge funktioniert jedoch in einer Eingabeaufforderung für eine vi-fähige Shell nicht wie erwartet. Gibt es eine Möglichkeit, dieses oder ein ähnliches Verhalten nur mit der Tastatur zu aktivieren, während vi-ähnliche Tastenkombinationen in einer zsh- oder bash-Shell-Eingabeaufforderung beibehalten werden?
- bearbeiten -
Anwendungsfall: Ich navigiere häufig zwischen Firefox mit dem Pentadactyl-Addon , einem Terminal-Emulator und vim selbst - wobei ich den Xmonad- Fenstermanager mit benutzerdefinierten Tasten verwende, um mich zu bewegen. Alle drei Programme haben vi-ähnliche Tastenkombinationen, was sehr effizient ist (für "Fingerspeicher"), so dass es ideal wäre, Text zwischen ihnen nur unter Verwendung der vim-Syntax (oder einer sehr ähnlichen Syntax) zu kommunizieren.
xsel
und dem Kopieren des vorgeschlagenen Codes mit einer geringfügigen Änderung an meiner .zshrc-Datei einwandfrei funktioniert (ich habe '^ P' anstelle von '^ X' gewählt und das ursprüngliche Verhalten von '^ P' überschrieben)Hier ist eine Lösung für zsh (vi-Modus), die die ursprünglichen Widgets umschließt, damit die Zwischenablage immer synchronisiert ist
Ersetzen Sie
xclip
mit Ihrem bevorzugten Zwischenablage-Tool.quelle
xterm-termite
.Auswahl und Zwischenablage sind verschiedene Dinge unter X Window, und IMHO "Desktop-Umgebungen" neigen dazu, das Problem noch trüber zu machen, als es war.
Funktioniert Shift-Insert für Sie? In Bare-X-Anwendungen muss die Auswahl beim Herstellen einer solchen Bindung eingefügt werden.
quelle
Diese Lösung funktioniert, wenn Sie
oh-my-zsh
dasvi-mode
Plugin installiert und aktiviert haben .Gilles'
xsel
undzle
basierte Lösung nicht für mich arbeiten. Da ich vim jedoch so konfiguriert habe, dass meine Systemzwischenablage standardmäßig (set clipboard=unnamedplus
in~/.vimrc
) verwendet wird, gebe ich einfach den vnormalen Terminalmodus ein, um den aktuellen Befehl zu öffnen,vim
und kann ihn dann mit einem dervim
yank-Befehle in die X-Zwischenablage kopieren.quelle
:term
in den neuen Versionen von Neovim und Vim?v
im normalen Modus den aktuell eingegebenen Befehl in vim anstatt an der Eingabeaufforderung des Terminals bearbeiten.:term
in Ihrer Antwort die Tatsache erwähnen, dass Sie über die Funktionen von Neovim und Vim sprechen , da dies sonst überhaupt nicht klar ist.:term
. Ich habe jedoch festgestellt, dass die Funktionalität, auf die ich mich beziehe, tatsächlich von bereitgestellt wirdoh-my-zsh
. Ich habe die Antwort entsprechend aktualisiert.