Salin-tempel untuk vim tidak berfungsi saat mouse (: set mouse = a) aktif?

53

Saya mencoba untuk menyalin sesuatu dari vim ke aplikasi lain dan juga, dari aplikasi itu vimmenggunakan klik kanan dengan mouse dan kemudian salin dan tempel (atau dengan Ctrl+ vdan Ctrl+ cdan juga mencoba Commandversi untuk mac OSX, jelas.). Namun, ketika saya mencoba melakukannya, itu hanya menyalin kata pertama ketika saya melakukannya dari vimatau ketika saya menyalin dari aplikasi ke vim, itu menyalin segalanya, tetapi memasukkan tab dan spasi yang aneh. Saya pikir ini terjadi ketika saya memutuskan untuk menyalakan mouse saya di terminal. Seperti dalam:

:set mouse=a

Saya memiliki baris itu di .vimrcfile saya di iTerm (mac os x). Padahal, apakah mungkin untuk membuat copy paste saya dengan aplikasi lain yang tidak di vimtidak putus dengan mouse=ahidup? Atau apakah paling tidak mungkin untuk mematikan mouse saya ketika saya melakukan copy paste? Saya melakukan :helpmouse tetapi komentar itu tidak berguna bagi saya. Saya akan menempelkannya di sini tapi ... alat salin tempel saya rusak!

Saya sudah mencoba :set mouse!dan :set mouse=a!tetapi ini tidak berguna ... :(


Info tambahan dari lingkungan saya:

Saya juga menggunakan tmux sebagian besar waktu, meskipun, saya menguji kesalahan ini / bug tanpa sesi tmux, itulah sebabnya saya memposting ini terutama sebagai pertanyaan vim.

Pinokio
sumber
4
Saya dapat memberitahu Anda bahwa vimmampu menarik ke Pemilihan Utama saja menggunakan ykata kerja. Saya tidak tahu mengapa Anda tidak hanya menggunakannya.
HalosGhost
1
Saya tidak akan melakukan itu karena saya tidak tahu bagaimana melakukan itu saya kira, minta maaf atas ketidakmampuan saya. Aku bahkan tidak tahu itu ada sampai kamu menyebutkannya. Silakan bagikan pengetahuan Anda! :)
Pinocchio
Apakah ini macvim ?
Patrick
tidak itu bukan hanya ITUerm (seperti yang saya sebutkan pada pertanyaan, tapi pertanyaan yang bagus).
Pinocchio

Jawaban:

67

mouse=a mencegah kemampuan menyalin dan menempel keluar dari vim dengan karakter yang dapat dibaca.

Ubah mouse=ake mouse=rdan yang seharusnya memperbaiki masalah Anda dengan itu.

satu hal yang saya bertanya-tanya adalah, apakah Anda mengubah file konfigurasi untuk vim Anda dengan mouse yang diatur ke mouse = a?

jawaban orignal ^

Jika mouse=rtidak memberi Anda semua opsi salin lalu ubahlah kemouse=v

Keduanya mouse=rdan mouse=vmemiliki fungsi yang sama dengan yang Anda butuhkan, tetapi tergantung pada vimrc yang Anda gunakan akan bekerja lebih baik daripada yang lain.

bgrif
sumber
Anda juga telah mencoba menyorot teks dan menggunakan tombol tengah mouse Anda untuk melewati ke tempat lain. yang cenderung bekerja lebih baik ketika mencoba untuk Ctrl + v dan Ctrl + c
bgrif
Saya tidak tahu apa arti pertanyaan one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a?Anda : Maksud Anda jika saya sudah mengaktifkannya :mouse=adi file .vimrc? Saya memiliki :mouse=afile file .vimrc saya.
Pinocchio
1
adil --with-x=yes? Saya tidak perlu meletakkan :set --with-x=yes mouse=aatau sesuatu? Bisakah Anda mengklarifikasi apa yang Anda maksud?
Pinocchio
1
Mari saya penelitian jika Anda perlu untuk menggabungkan --with-x=yeske set mouse=a. Ketika saya membaca semua yang saya lihat adalah itu dengan sendirinya dalam file konfigurasi. Tapi itu bisa berbeda jadi saya ingin memastikan bahwa saya memberi tahu Anda hal yang benar yang akan bekerja untuk Anda.
bgrif
1
Terima kasih banyak, saran ini bekerja seperti pesona dengan mouse = v
Pamungkas Jayuda
21

Untuk pengguna OS X: Untuk menyalin tempel dengan mouse=amenggunakan altalih-alih Shiftmemilih teks. Kemudian cmd-cdan cmd-vbekerja seperti yang diharapkan.

Menemukan jawaban ini di sini https://stackoverflow.com/a/4608387/671639 setelah banyak googling.

BetaRide
sumber
Anda adalah Tuhan ......: ')
omerjerk
satu-satunya hal yang berhasil untuk saya, terima kasih!
Don
3
Bagi saya di OSX bekerja "fn" bukannya "shift" atau "alt".
ssasa
6

Solusi Bharath , menekan Shiftsambil menyalin, akan melakukannya, tetapi akan menyalin lebih dari apa yang ingin Anda salin jika penomoran atau komentar hash.

Salah satu cara untuk melakukannya bahkan dengan mouse = a adalah menggunakan mode visual dengan menekan Vkursor tunggal atau Shift+ Vuntuk sorotan garis penuh, dan Anda dapat bergerak ke atas atau ke bawah dengan panah dan gunakan Yuntuk menyalin atau Dmemotong dan itu seharusnya bekerja.

amrx
sumber
@Anthon, Akan lakukan, Terima kasih atas klarifikasi.
amrx
1
Saya mengulangi komentar Anda yang diucapkan sendiri untuk menjadikannya lebih seperti jawaban sehingga para mod mungkin akan membiarkannya apa adanya (dan Anda mungkin mendapatkan reputasi di dalamnya sehingga Anda dapat berkomentar). Jika yang asli adalah koreksi yang lebih kecil, komentar akan lebih tepat.
Anthon
5

Punya masalah yang sama: tidak dapat menyorot menggunakan mouse sehingga tidak dapat menyalin dan menempel dari VIM dalam sesi terminal ke dokumen dan browser Windows: Lakukan yang berikut dan sekarang berfungsi:

: set clipboard=unnamedplus
: set mouse=r
Bob
sumber
4

Rujuk: http://vimdoc.sourceforge.net/htmldoc/options.html

Lihat bagian Catatan di bagian bawah referensi:
Saat mengaktifkan mouse, tombol mouse masih dapat digunakan dengan terus menekan tombol shift. Ini termasuk copy paste menggunakan tombol mouse.

*'mouse'* *E538*
'mouse'         string  (default "", "a" for GUI, MS-DOS and Win32)
            global
            {not in Vi}
    Enable the use of the mouse.  Only works for certain terminals
    (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with
    sysmouse and Linux console with gpm).  For using the mouse in the
    GUI, see |gui-mouse|.
    The mouse can be enabled for different modes:
        n   Normal mode
        v   Visual mode
        i   Insert mode
        c   Command-line mode
        h   all previous modes when editing a help file
        a   all previous modes
        r   for |hit-enter| and |more-prompt| prompt
    Normally you would enable the mouse in all four modes with:
        :set mouse=a
    When the mouse is not enabled, the GUI will still use the mouse for
    modeless selection.  This doesn't move the text cursor.

    See |mouse-using|.  Also see |'clipboard'|.

    Note: When enabling the mouse in a terminal, copy/paste will use the
    "* register if there is access to an X-server.  The xterm handling of
    the mouse buttons can still be used by keeping the shift key pressed.
    Also see the 'clipboard' option.
rabin utam
sumber
1
Terima kasih telah berkontribusi referensi itu, tetapi, apakah itu menjawab pertanyaan ? Jika demikian, dapatkah Anda mengidentifikasi bagian dari kutipan yang melakukannya, menyajikan ringkasan jawaban yang sebenarnya?
G-Man Mengatakan 'Reinstate Monica'
0

Adapun bagian kedua dari pertanyaan Anda di mana Anda menentukan bahwa ketika menempelkan dari aplikasi lain ke vim itu menambahkan tab / spasi. Coba tambahkan ini ke ~ / .vimrc set paste atau di vim Anda sebelum menempel dalam mode normal tekan "shift" + ":" dan ketik "set paste"

abhixec
sumber
0

Anda dapat menggunakannya yuntuk menyalin (menyentak) dan pmenempelkannya bahkan dengan :set mouse=aset in ~/.vimrc. Gunakan v+ arrow keysuntuk menyorot teks. Untuk menyalin seluruh baris dengan cepat, gunakan shift+ y.

Myna Martin
sumber
0

Di Mac saya, yang membantu adalah dua hal:

  • : set mouse- = a
  • fn + klik (alih-alih shift atau alt)
kontrol acak
sumber
0

Gunakan dua baris berikut di bawah ini ~/.vimrcuntuk menggunakan semua fitur bagus gui-mousedan tempel ke clipboard sistem menggunakan y(kunci yank) jika Anda tidak benar-benar membutuhkan buffer clipboard tambahan:

set mouse=a
set clipboard=unnamed
CeDeROM
sumber