VIM Ctrl-V Bertentangan dengan Windows Paste

110

Saya menggunakan VIM di Windows. Masalahnya adalah saya ingin menggunakan CtrlVmode visual. Namun, kunci ini memiliki konflik dengan pasta Windows. Bagaimana cara mengatur ulang kunci ini kembali ke mode visual VIM alih-alih menempel. Saya lebih suka mengatur ini di file konfigurasi _vimrc saya.

David.Chu.ca
sumber

Jawaban:

145

Dari dokumentasi VIM :

Karena CTRLVdigunakan untuk menempelkan, Anda tidak dapat menggunakannya untuk memulai pemilihan Visual yang berlawanan arah jarum jam. Anda bisa menggunakan CTRLQsebagai gantinya. Anda juga dapat menggunakan CTRLQdalam mode Sisipkan dan mode Baris Perintah untuk memahami arti lama CTRLV. Tetapi CTRLQ tidak berfungsi untuk terminal saat digunakan untuk aliran kontrol.

Alex
sumber
2
Saya lebih suka ini daripada mengutak-atik _vimrc. Ia bekerja segera dan karena saya tidak mungkin berada di terminal serial di masa depan, kontrol aliran Ctrl-S / Ctrl-Q tidak menjadi masalah.
Michael Dillon
Di Linux (terminal Gnome) saya merasa lebih baik menggunakan CTRL-K CR , tetapi saya menemukan jawaban ini terlebih dahulu.
jalanb
3
Untuk beberapa alasan saya perlu menggunakan Shifttombol untuk pemilihan visual di Windows, sementara saya tidak menggunakan Linux.
stevesliva
1
Terima kasih pengguna132014! Saya menemukan bahwa Anda harus menggunakan h, j, k, dan l untuk menavigasi dalam mode blok visual menggunakan Ctrl-Q. Ini adalah kasus untuk editor gVim untuk Windows. Panah tampaknya tidak berfungsi untuk saya di gVim untuk Windows saat menavigasi dalam mode blok visual menggunakan Ctrl-Q.
Ratnesh Chandna
3
@RatneshChandna - Gunakan Shiftbersama dengan panah? Saya melihat perilaku yang sama, tetapi entah bagaimana menemukan bahwa itu Shiftberhasil. Saya tidak tahu h / j / k / l bekerja.
stevesliva
40

Periksa file _vimrc Anda dan lihat apakah itu sumber mswin.vim. Skrip itu memetakan ^ v ke paste. Anda dapat menghapus baris tersebut di file _vimrc atau menonaktifkan perintah pemetaan langsung di mswin.vim.

Lakukan: bantu berperilaku di vim untuk info selengkapnya.

jop
sumber
24

Mode visual (dan hal-hal lain) yang berfungsi seperti di Unix membutuhkan saran JOP dan Programmer Windows.

Di GVim di Windows, buka menu edit, klik pada pengaturan startup, dan komentari sampah khusus windows (menggunakan karakter komentar vimrc, yang merupakan tanda kutip ganda). File mswin.vim adalah tempat ctrl- voverride ditentukan, dan opsi mswin berperilaku membuatnya sehingga tombol panah tidak hanya menerapkan gerakan seperti yang Anda harapkan (ini juga mengubah perilaku pemilihan mouse).

"source $VIMRUNTIME/mswin.vim
"behave mswin

Saya suka menambahkan skema warna latar belakang hitam di sana juga, sehingga lebih mirip dengan apa yang saya lihat di terminal (dan karena latar belakang terang bagus di atas kertas, tetapi buruk di layar dengan cahaya latar): colorscheme koehler

dannysauer
sumber
20

Jika baris ini di _vimrc mengganggu Anda:

behave mswin

lalu hapus baris itu.

Pemrogram Windows
sumber
14

Saya lebih suka penekanan tombol yang sama di mana-mana jadi saya menggunakan ini di .vimrc saya untuk mengganti mswin.vim:

if has('win32')
  " Avoid mswin.vim making Ctrl-v act as paste
  noremap <C-V> <C-V>
endif
rshdev
sumber
7

Saya tidak yakin banyak yang dapat Anda lakukan tentang itu. Anda dapat menggunakan CtrlQsebagai gantinya.

Starkii
sumber
4

Kombinasi saran jop (mencari mswin.vim di file _vimrc default) dan saran "programmer Windows" (menyingkirkan baris "berperilaku mswin") bekerja seperti pesona bagi saya.

(perwakilan saya terlalu rendah untuk memilih atau menggabungkan mereka - seseorang membersihkan ini untuk saya, atau saya akan kembali setelah perwakilan saya lebih tinggi)

Rick Reynolds
sumber
3
Dengan kata lain, apakah Anda mencoba memberikan komentar?
Christopher Bottoms
1
Heh, saya adalah pengguna stackoverflow yang jarang (karena itu reputasi saya rendah)
Rick Reynolds