Bagaimana cara menyalin dan menempelkan teks dari vim jauh ke vim lokal?

12

Saya mengedit file dalam vim pada mesin jarak jauh melalui ssh dan saya ingin menyalin teks dari file jarak jauh dan menempelkannya ke dalam contoh vim yang berjalan pada mesin lokal saya. Apakah ada cara mudah untuk melakukan ini? Saya dapat menggunakan fitur pemilihan terminal emulator untuk memilih teks yang saat ini ada di layar, tetapi jika pilihan saya lebih besar daripada yang bisa muat di layar, saya kurang beruntung.

davidscolgan
sumber
Periksa apakah jawaban ini membantu.
Skippy le Grand Gourou

Jawaban:

23

Buka file jarak jauh di sesi vim lokal:

  :e scp://user@host/relative/path/from/home.txt
nperson325681
sumber
Saya suka. Bagus dan sederhana.
Chev
Tip yang bagus! Bisakah ini scp://dikenali di tempat lain atau hanya VIM?
Api Beku
1
@FrozenFlame: Saya percaya ini khusus untuk aplikasi. TETAPI saya tidak akan terkejut jika DE besar seperti KDE atau Gnome memandatkan dukungan untuk skema ini di setiap aplikasi.
nperson325681
1
Untuk jalur absolut::e scp://user@host//tmp/file.txt
Simon A. Eugster
9

Jika Anda memiliki izin yang memadai pada mesin jarak jauh, Anda dapat menambahkan

AcceptEnv WINDOWID

ke / etc / ssh / sshd_config dan restart sshd with

sudo /etc/init.d/ssh restart

Kemudian tambahkan mesin lokal Anda

ForwardX11 yes
SendEnv WINDOWID

ke file ~ / .ssh / config Anda

Kemudian dengan menjalankan vi-aware x pada mesin jarak jauh (mis., gvim -v), Anda dapat menyalin dan menempel ke dan dari clipboard X. Cukup pilih teks (mis. Menggunakan V) secara visual dan tarik ke dalam *register.

Edit

Saya lupa menyertakan bagian tentang pengaturan SendEnv WINDOWIDpada ~ / .ssh / config Anda, jadi saya menambahkannya dan memindahkan pengaktifan penerusan X dari baris perintah ( -Xopsi ssh ) ke file ~ / .ssh / config ( ForwardX11 yes).

garyjohn
sumber
Saya perlu menginstal paket xauth agar bisa berfungsi di Debian.
leo
dengan ini saya dapat menyalin secara lokal, dan menempelkannya dari jarak jauh. Apakah ada cara untuk melakukannya juga sebaliknya? Terima kasih!
Paschalis