Tắt hoàn toàn chuột trong console vim


13

Tôi thấy chuột vô hiệu hóa hoàn toàn trong console vim trên Stack Overflow. Nghe có vẻ chính xác những gì tôi muốn, nhưng có vấn đề liên quan đến Cygwin, vì vậy tiêu đề là một cách gọi sai.

Tôi muốn biết làm thế nào để vô hiệu hóa hoàn toàn tất cả các tương tác chuột trong vim trên bàn điều khiển. Tôi không muốn cuộn, chọn, nhấp hoặc nhìn vào chuột để có bất kỳ hiệu ứng nào trong vim.

Tôi thích có chuột trong bảng điều khiển, chỉ khi tôi đang sử dụng vim. Điều này có thể không?

Tôi có một máy tính xách tay có cài đặt Ubuntu, và khi tôi gõ, thỉnh thoảng chuột cảm ứng quyết định nhấp hoặc kéo ngẫu nhiên giữa một số tọa độ ngẫu nhiên trên màn hình, ngay cả khi tôi cố gắng hết sức để không chạm vào thứ đáng nguyền rủa này. Điều này có tác dụng khiến tôi gõ mã sai vị trí mọi lúc và nó thực sự cũ vì đôi khi nó đưa các lỗi không thể đảo ngược vào mã của tôi.

Tôi đã có thể thoát khỏi cuộn và chọn trực quan bằng cách sử dụng các lệnh bên dưới .vimrc, nhưng nó vẫn sẽ di chuyển con trỏ khi tôi nhấp.

" disable mouse interactions "
set mouse=nicr
map <ScrollWheelUp> <nop>
map <S-ScrollWheelUp> <nop>
map <C-ScrollWheelUp> <nop>
map <ScrollWheelDown> <nop>
map <S-ScrollWheelDown> <nop>
map <C-ScrollWheelDown> <nop>
map <ScrollWheelLeft> <nop>
map <S-ScrollWheelLeft> <nop>
map <C-ScrollWheelLeft> <nop>
map <ScrollWheelRight> <nop>
map <S-ScrollWheelRight> <nop>
map <C-ScrollWheelRight> <nop>

Tôi cần làm gì khác?

PS tôi đã thử set mouse=, nhưng điều đó dường như có thể nhìn thấy được ...


6
set mouse=vô hiệu hóa mọi tương tác chuột với Vim , nhưng không phải với trình giả lập thiết bị đầu cuối của bạn. Bạn có chắc chắn rằng "lựa chọn trực quan" là của Vim không?
romainl

Điều này có thể là do tải cấu hình trung tâm _ sau khi tải cấu hình /etc/vimrc. Xem câu trả lời của tôi ở đây: unix.stackexchange.com/a/506723/194822
Holger Böhnke

Câu trả lời:


17

Bạn nên thêm hai dòng sau vào cuối / etc / vim / vimrc:

set mouse=
set ttymouse=

Tôi không biết về ttymouse, cảm ơn bạn!
James M. Lay

1
+1 cho ttymouse, tất cả các trang web đã được đề cập mousenhưng ttymouselà trang tôi đã bỏ lỡ. Cảm ơn !
KaKi87

2

Điều này có thể hoạt động nếu bạn đặt nó ở cuối .vimrc của bạn

set mouse=c

Đó không phải là Vim lấy đầu vào của chuột, mà là trình giả lập Terminal của bạn. Để vô hiệu hóa hỗ trợ chuột trên thiết bị đầu cuối của bạn, điều này có thể giúp đỡ.


2
Tại sao cvà không hoàn toàn trống?
Giàu

1

Đây chỉ là một giải pháp tốt nhất, nhưng bạn có thể vô hiệu hóa toàn cầu chuột / bàn di chuột trong khi vim đang chạy xinputtrong một tập lệnh shell:

xinput set-prop $ID "Device Enabled" 0

Và sau đó

xinput set-prop $ID "Device Enabled" 1

Khi bạn đã sẵn sàng để bàn di chuột hoạt động trở lại.

Sử dụng xinput --listđể có được id của thiết bị trỏ của bạn.


Điều này có thể kết hợp tốt với các sự kiện tự động FocusGainedFocusLosttự động, mặc dù có vẻ như có một số thách thức trong việc tìm kiếm thiết lập terminal + Vim nơi các sự kiện đó có thể được phát hiện.
8bittree
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.