VIM Ctrl-V Xung đột với Windows Paste


110

Tôi đang sử dụng VIM trong Windows. Vấn đề là tôi muốn sử dụng CtrlVnhư một chế độ trực quan. Tuy nhiên, phím này có xung đột với Windows paste. Làm cách nào để tôi có thể đặt lại khóa này về chế độ hình ảnh VIM thay vì dán. Tôi muốn đặt điều này trong tệp cấu hình _vimrc của mình.

Câu trả lời:


145

Từ tài liệu VIM :

CTRLVđược sử dụng để dán, bạn không thể sử dụng nó để bắt đầu lựa chọn Trực quan theo khối. Bạn có thể sử dụng CTRLQthay thế. Bạn cũng có thể sử dụng CTRLQtrong chế độ Chèn và chế độ dòng lệnh để lấy ý nghĩa cũ của CTRLV. Nhưng CTRLQ không hoạt động cho các thiết bị đầu cuối khi nó được sử dụng cho luồng điều khiển.


2
Tôi thích điều này hơn là loay hoay với _vimrc. Nó hoạt động ngay lập tức và vì tôi không có khả năng sử dụng thiết bị đầu cuối nối tiếp trong tương lai, điều khiển luồng Ctrl-S / Ctrl-Q không phải là vấn đề.
Michael Dillon

Trên Linux (Gnome terminal), tôi thấy tốt hơn nên sử dụng CTRL-K CR , nhưng tôi đã tìm thấy câu trả lời này trước tiên.
jalanb

3
Vì một số lý do, tôi cần sử dụng Shiftkhóa để lựa chọn trực quan trên Windows, trong khi tôi không sử dụng trên Linux.
stevesliva

1
Cảm ơn người dùng132014! Tuy nhiên, tôi thấy rằng bạn phải sử dụng h, j, k và l để điều hướng trong chế độ khối trực quan bằng Ctrl-Q. Đây là trường hợp của trình soạn thảo gVim dành cho Windows. Các mũi tên dường như không hoạt động đối với tôi trong gVim dành cho Windows khi điều hướng ở chế độ khối trực quan bằng Ctrl-Q.
Ratnesh Chandna

3
@RatneshChandna - Sử dụng Shiftcùng với các mũi tên? Tôi đang thấy hành vi tương tự, nhưng bằng cách nào đó phát hiện ra rằng điều đó Shiftđã hoạt động. Tôi không biết h / j / k / l hoạt động.
stevesliva

40

Kiểm tra tệp _vimrc của bạn và xem nó có nguồn mswin.vim hay không. Tập lệnh đó ánh xạ ^ v tới dán. Bạn có thể xóa dòng đó trên tệp _vimrc của mình hoặc tắt các lệnh ánh xạ trực tiếp trên mswin.vim.

Thực hiện một: giúp cư xử trên vim để biết thêm thông tin.


24

Chế độ trực quan (và các nội dung khác) hoạt động như trong Unix yêu cầu cả đề xuất của JOP và Lập trình viên Windows.

Trong GVim trên Windows, đi tới menu chỉnh sửa, nhấp vào cài đặt khởi động và nhận xét rác dành riêng cho Windows (sử dụng ký tự bình luận vimrc, là một dấu ngoặc kép). Tệp mswin.vim là nơi ctrl- vghi đè được chỉ định, và tùy chọn mswin hoạt động làm cho nó để các phím mũi tên không chỉ áp dụng chuyển động như bạn mong đợi (nó cũng thay đổi hành vi chọn chuột).

"source $VIMRUNTIME/mswin.vim
"behave mswin

Tôi cũng muốn thêm màu nền đen vào đó, để nó trông giống với những gì tôi thấy trong một thiết bị đầu cuối (và bởi vì nền sáng là tuyệt vời trên giấy, nhưng lại tệ trên màn hình có đèn nền): colorscheme koehler



14

Tôi thích các tổ hợp phím giống nhau ở mọi nơi nên tôi sử dụng điều này trong .vimrc của mình để ghi đè mswin.vim:

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

7

Tôi không chắc bạn có thể làm gì nhiều về điều đó. Bạn có thể sử dụng CtrlQthay thế mặc dù.


4

Sự kết hợp giữa lời khuyên của jop (tìm mswin.vim trong tệp _vimrc mặc định) và lời khuyên của "lập trình viên Windows" (loại bỏ dòng "hành xử mswin") đã có tác dụng với tôi.

(đại diện của tôi quá thấp để bình chọn hoặc kết hợp chúng - ai đó dọn dẹp điều này cho tôi, hoặc tôi sẽ quay lại khi đại diện của tôi cao hơn)


3
Nói cách khác, bạn có đang cố để lại bình luận không?
Christopher Bottoms

1
Heh, tôi là một người sử dụng không thường xuyên stackoverflow (do đó uy tín thấp của tôi)
Rick Reynolds
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.