Setelah diaktifkan set mouse=a
, teks yang disalin di dalam Vim tidak akan menempel di luar Vim. Adakah yang tahu cara untuk memperbaikinya?
Di sini, memilih teks dengan mouse mengaktifkan mode visual dan menonaktifkan Copy
opsi di menu popup:
vim
configuration
mouse
copy-paste
lyuba
sumber
sumber
+clipboard
danmouse=a
, Anda akan dapat menyalin / menempel dari / ke vim tanpa menggunakan menu popup terminal. Anda dapat memeriksa apakahclipboard
diaktifkan menggunakanvim --version
.mouse=a
bukan opsi kompilasi itu adalah sesuatu di vimrc B) Ketika vim dikompilasi dengan+clipboard
itu memungkinkan Anda untuk menyalin / menempel ketika:set number
sedang aktif, dan tanpa menyalin / menempelkan angka, meskipun mungkin Anda masih harus melakukan beberapa pemetaan C) Seseorang tidak perlu mengkompilasi ulang VIM sendiri, mungkin ada di vim pada beberapa manajer paket yang didukung oleh OS mana pun .. Pada osx, vim brew memilikinya meskipun vix default osx tidak. Jawaban saya menyebutkan osx ini.xsel
berfungsi untuk Anda juga, Anda dapat memilih teks dengan editor atau dengan mouse dan tekanctrl+c
untuk menyalin teks, dengan cara itu untuk neovim, github.com/neovim/neovim/issues/7945#issuecomment-361970165Jawaban:
Tekan shiftsambil memilih dengan mouse. Ini akan membuat seleksi mouse berperilaku seolah-olah
mouse=a
tidak diaktifkan.Catatan: trik ini juga berlaku untuk "tempel tombol tengah": jika Anda ingin menempelkan teks vim yang dipilih di luar, tekan shiftsambil mengklik tombol tengah. Pastikan saja bahwa mode penyisipan diaktifkan ketika Anda melakukan itu (Anda mungkin juga menginginkannya
:set paste
menghindari efek yang tidak terduga).OS X (mac): tahan alt / opsi saat memilih ( sumber )
sumber
Fn
kunci adalah cara yang tepat untuk digunakan. Yaitu, (denganmouse=a
mengaktifkan) memilih teks sambil menekanFn
tombol, kemudian gunakan CMD + C untuk menyalin dan menempel ke mana saja yang Anda inginkan.Gunakan ", +, ysetelah membuat pilihan visual. Anda seharusnya tidak menggunakan perintah salin terminal, karena itu menyalin apa yang dilihat terminal alih-alih konten yang sebenarnya. Inilah yang dilakukan:
+
untuk penghapusan berikutnya, mencabut atau menempatkan. Register bernama+
adalah register khusus, itu adalah register clipboard X11. (Pada sistem lain, Anda akan menggunakan*
, saya pikir, lihat:help clipboard
dan:help x11-selection
)Anda bisa memetakannya seperti ini:
Dan kemudian sorot sesuatu dengan mouse dan tekan Control-C untuk menyalinnya.
Fitur ini hanya berfungsi ketika Vim telah dikompilasi dengan
+xterm_clipboard
opsi. Larivim --version
untuk mencari tahu apakah itu.sumber
"*y
tergantung pada OS.+clipboard
? Dan bagaimana+clipboard
denganxterm_clipboard
off?Alih-alih
set mouse=a
digunakanset mouse=r
dalam .vimrcsumber
Di OSX digunakan fnsebagai ganti shift.
sumber
option
kunci yangalt
setara kunci pada host MacOS. Itu terminal jarak jauh di debian9. tidak berfungsi dengan menambahkan salah satuset mouse=a
/set mouse=r
di/etc/vim/vimrc
pada remote.Di Ubuntu, dimungkinkan untuk menggunakan bindings copy & paste X-Term di dalam VIM (Ctrl-Shift-C & Ctrl-Shift-V) pada teks yang telah diputar menggunakan tombol Shift.
sumber
Opsi OSX-Mac lainnya adalah untuk tidak mencentang
View->Allow Mouse Reporting
(atau tekan ⌘-R untuk mengaktifkannya.) Ini memungkinkan Anda untuk beralih antara interaksi mouse dan memilih mouse, yang mungkin berguna saat memilih dan menyalin / menempelkan beberapa bit karena Anda tidak memiliki untuk menahan kunci pengubah untuk melakukannya.Catatan untuk Multiline dengan nomor baris:
Saya biasanya memiliki nomor baris yang diaktifkan sehingga ini juga akan menyalin nomor baris jika Anda memilih beberapa baris. Jika Anda ingin menyalin beberapa baris tanpa nomor baris, nonaktifkan nomornya
:set nonu
dan kemudian Anda dapat:set nu
mengaktifkannya kembali setelah Anda selesai menyalin.sumber
Anda dapat menggunakan
:set mouse&
baris perintah vim untuk mengaktifkan copy / paste teks yang dipilih menggunakan mouse. Anda kemudian dapat menggunakan tombol tengah mouse atau shiftinsertmenempelkannya.sumber
:set number
, sorot angka. Jadi tidak terlalu bagus. Jadi, Anda membatalkan yang dilakukan olehset mouse=a
Pengaturan kompilasi yang vim dikompilasi dengan, adalah bagian dari masalah.
vim --version
menunjukkan ini.Di OSX, vim default memiliki
-clipboard
But you need+clipboard
Pada osx Anda dapat dan tampaknya seharusnya secara umum, menggunakan macvim. Anda dapat melakukan
brew cask install macvim
itu satu memiliki+clipboard
.Mereka akan memiliki dua vim.
menjalankan vim akan menjalankan macvim karena cos
/usr/local/bin
harus ada sebelumnya/usr/bin
di path, meskipun Anda dapat memeriksanyawhich vim
.menjalankan vim (untuk menjalankan macvim), baik-baik saja tetapi Anda mungkin ingin memetakan vi ke macvim karena cos menjalankan vi tetap pada vim default! Anda dapat menulis ulang atau menghapus (dengan rm) dan membuat ulang tautan vi sym, dengan ln. Dan untuk melakukannya tanpa kesalahan 'operasi tidak diizinkan ", Anda harus (untuk sementara) menonaktifkan SIL. Https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection- sip-alias-rootless-on-macos-os-x .
macvim telah
+clipboard
seperti yang ditunjukkan olehvim --version
Berikut ini adalah bekerja
~/.vim/vimrc
dengan hanya garis yang diperlukan.Kunci pemimpin default adalah garis miring terbalik.
Saya membaca saran bahwa seseorang harus menggunakan kunci pemimpin .. (tentu saja kontrol memiliki banyak kunci yang sudah digunakan, jadi sarannya adalah untuk tidak menggunakan kontrol. Saya tidak tahu apakah itu berlaku untuk tombol perintah juga, tetapi bagaimanapun juga).
Dengan pemetaan tersebut,
\c
akan melakukan"+y
yang akan menyalin dari register yang dikenal sebagai +, ke clipboard. Dan\v
akan menempel dari register yang dikenal sebagai +.Jadi itu salinan / tempel yang berfungsi di antara windows.
OS lain mungkin membutuhkan
"*
daripada"+
sumber
-xterm_clipboard
. Mungkin+xterm_clipboard
akan bermanfaat dalam beberapa hal tetapi tidak masalah untuk solusi ini.Jika Anda menggunakan, sesi Putty, maka secara otomatis akan menyalin seleksi. Jika kita telah menggunakan opsi "set mouse = a" di vim, pilih menggunakan Shift + Seret mouse untuk memilih teks secara otomatis. Perlu memeriksa jangka-X.
sumber
em ... Terus menekan Shiftdan kemudian klik tombol mouse kanan
sumber
Saya tidak sengaja menjelaskan cara mematikan
set mouse=a
, ketika saya membaca kembali pertanyaan dan menemukan bahwa OP tidak ingin mematikannya di tempat pertama. Pokoknya bagi siapa pun yang mencari cara mematikan mouse (set mouse=
) secara terpusat, saya meninggalkan referensi untuk jawaban saya di sini: https://unix.stackexchange.com/a/506723/194822sumber
Memegang shift sambil menyalin dan menempel dengan seleksi bekerja untuk saya
sumber
Tambahkan
set clipboard=unnamed
ke.vimrc
. Jadi ia akan menggunakan register clipboard '*' alih-alih register tanpa nama untuk semua yank, hapus, ubah dan letakkan operasi (perhatikan itu tidak hanya mempengaruhi mouse).Perilaku mendaftar '*' tergantung pada platform Anda dan bagaimana Anda
vim
telah dikompilasi (atau jika Anda menggunakannyaneovim
).Jika tidak berhasil, Anda dapat mencobanya
set clipboard=unnamedplus
, tetapi opsi ini hanya masuk akal pada sistem X11.sumber
Dalam mode ESC, saat mengatur mouse = a, pilih teks menggunakan mouse. Ini akan mengaktifkan mode visual dalam vim. Kemudian Anda dapat menekan 'y' untuk menarik teks yang dipilih dan 'p' untuk menempelkannya di mana pun Anda inginkan. Ini hanya terjadi dalam vim.
sumber