Wie kann man zwischen cygwins vi / emacs und Windows-Zwischenablage kopieren und einfügen?


3

Ich habe versucht, das, was ich in der Windows-Zwischenablage kopiert habe, in cygwins vi oder emacs einzufügen, und es scheint nicht mit yy (vi) oder M-w (emacs) zu funktionieren.

Gibt es eine Möglichkeit, dies zu tun? Ich habe das gelernt /etc/clipboard hat die Zwischenablage von Windows, aber ich weiß nicht, wie ich diese Informationen in vi oder emacs erhalten kann.

Antworten:


2

Zumindest für vim ist das die Zwischenablage "* registrieren.

Also, um die aktuelle Zeile mitzunehmen, gehen Sie "*yy, um den Inhalt der Zwischenablage einzufügen, gehen Sie "*p, und so weiter und so fort.


Ich habe es versucht, aber es funktioniert nicht. Danke für die Antwort.
prosseek

1
@prosseek; Oh. Nun, FWIW, es funktioniert sowohl in gvim als auch in der vim-Version, die dazu gehört. Könnten Sie diese über Cygwins verwenden?
Phoshi

1

Kopieren Sie den Text von vim unter cygwin, drücken Sie einfach " Schlüssel + Schlüssel y Schlüssel im visuellen Modus:

"+ y

Fügen Sie unter cygwin Text ein, und drücken Sie einfach auf " Schlüssel + Schlüssel p Schlüssel im Normalmodus:

"+ p


0

Einfügen aus der Zwischenablage mit vi in ​​Cygwin:

Press SHIFT-INSERT in insert mode

(this means the insert key by the Delete/Home/End keys)

So kopieren Sie mit vi in ​​Cygwin in die Zwischenablage:

When you select text with your mouse, it automatically gets copied to the clipboard.

You can paste from the clipboard by pressing the middle mouse button.

In einigen Umgebungen, in denen "* yy nicht funktioniert, können Sie es auch versuchen "+ yy .

Leider tut dies NICHT Arbeit in Cygwin.


0

Es gibt eine Lösung in Wikia :

function! Putclip(type, ...) range
  let sel_save = &selection
  let &selection = "inclusive"
  let reg_save = @@
  if a:type == 'n'
    silent exe a:firstline . "," . a:lastline . "y"
  elseif a:type == 'c'
    silent exe a:1 . "," . a:2 . "y"
  else
    silent exe "normal! `<" . a:type . "`>y"
  endif
  call writefile(split(@@,"\n"), '/dev/clipboard')
  let &selection = sel_save
  let @@ = reg_save
endfunction


vnoremap <silent> <leader>y :call Putclip(visualmode(), 1)<CR>
nnoremap <silent> <leader>y :call Putclip('n', 1)<CR>

Kopieren Sie diese Zeilen einfach in .vimrc, und \ y wird den Trick ausführen, unabhängig davon, ob Sie vim oder Ihre Maus zum Auswählen von Texten verwenden.
Dies ist möglicherweise kein Problem, da Sie bereits Zugriff auf die Zwischenablage haben, / dev / Zwischenablage jedoch für Cygwin ab Version 1.7.13 verfügbar ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.