1103 Stimmen

Wie kann man Vim dazu bringen, aus der Zwischenablage des Systems einzufügen (und dorthin zu kopieren)?

Im Gegensatz zu anderen Editoren speichert vim kopierten Text in seiner eigenen Zwischenablage. Es ist also sehr schwierig für mich, einen Text von einer Webseite zu kopieren und ihn in die aktuelle Arbeitsdatei einzufügen. So kommt es, dass ich entweder gedit öffnen oder den Text manuell eintippen muss.

Kann ich vim dazu bringen, von und in die Zwischenablage des Systems einzufügen?

4voto

dr0i Punkte 2212

Desde vim 8 Rechtsklick aktiviert standardmäßig den visuellen Modus. Dies verhindert das "normale" Kopieren und Einfügen (nennen Sie es einen "Konstruktionsfehler"). https://github.com/vim/vim/issues/1326 ). Reparieren Sie es, indem Sie es tun:

echo "set mouse-=a" >> ~/.vimrc .

Beenden Sie und starten Sie vim neu.

3voto

Hashman Punkte 367

Wenn Sie es haben, versuchen Sie, dies aus Ihrer vimrc zu entfernen: set mouse=a

Es stört die Einfügefunktion.

3voto

anonymous Punkte 1152

Wenn Sie vim unter MAC OSX benutzen, kommt es leider mit einer älteren Version und ist nicht mit den Zwischenablageoptionen kompatibel. Glücklicherweise kann Homebrew dieses Problem leicht lösen.

vim installieren:

brew install vim --with-lua --with-override-system-vim

Gui-Version von Vim installieren:

brew install macvim --with-lua --with-override-system-vim

Starten Sie das Terminal neu, damit es wirksam wird.

fügen Sie die folgende Zeile an ~/.vimrc
set clipboard=unnamed

Jetzt können Sie die Zeile in vim kopieren mit yy und fügen Sie sie systemweit ein.

2voto

NateW Punkte 2101

Die anderen Lösungen sind gut, wenn Sie Ihre vimrc usw. ändern wollen. Ich wollte jedoch eine einfache Möglichkeit zum Kopieren von vim zu meine Systemtastatur. Das habe ich herausgefunden.

  • Markieren Sie den Text, den Sie mit dem visuellen Modus kopieren möchten v
  • Presse : (es wird automatisch erweitert und zeigt :'<,'> )
  • Typ y * o y + (je nach System), um den markierten Text in die Zwischenablage des Systems zu verschieben

2voto

ericbn Punkte 8987

Auf der Grundlage der Antwort von @lis2 verwende ich eine einfachere Konfiguration, die den Einfügemodus am Ende nicht erzwingt:

" Copy and paste
if has('clipboard') && !has('gui_running')
  vnoremap <C-c> "+y
  vnoremap <C-x> "+d
  vnoremap <C-v> "+p
  inoremap <C-v> <C-r><C-o>+
endif

Beachten Sie, dass all dies die Standard-Zuordnungen von Vim überschreibt:

  • v_CTRL-C Stop Visueller Modus
  • v_CTRL-X : Subtrahieren von [count] von Zahl
  • v_CTRL-V : blockweise Visueller Modus
  • i_CTRL-V : Einfügen der nächsten nicht-ziffrigen Stelle, die auch auf i_CTRL-Q

Als Alternative kann man Tasten verwenden, die von den Vim-Verben "yank", "delete" und "put" inspiriert sind: <C-y> , <C-d> y <C-p> beziehungsweise. Diese würden nur eine Standardzuordnung außer Kraft setzen:

  • i_CTRL-P Rückwärtssuche: Schlüsselwort zur Vervollständigung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X