Phân biệt phím shift trái và phải


7

Tôi có một thói quen xấu là sử dụng phím shift cùng phía của bàn phím với chữ cái khi gõ chữ cái viết hoa. DVí dụ, để gõ a , tôi nhấn phím shift trái dbằng ngón tay trái và ngón trỏ tay trái. Tốt hơn là sử dụng dịch chuyển bên phải kết hợp với các phím ở phía bên trái của bàn phím và ngược lại .

Để bỏ thói quen này, tôi muốn vô hiệu hóa các tổ hợp phím shift với các phím ở cùng một phía của bàn phím. Tôi có thể ánh xạ shift-d với <S-d>, nhưng điều này áp dụng cho cả hai phím shift. Có phải chỉ áp dụng cho phím shift bên phải?


3
Tôi không nghĩ rằng Vim có thể phân biệt một A( S-acó thể sang phải hoặc trái). Có thể thử tìm kiếm cấu hình thiết bị đầu cuối hoặc bàn phím của bạn.
nobe4

Chỉ cần một lưu ý - tại sao đây là một thói quen xấu? Loại tuy nhiên làm việc cho bạn, và là thoải mái nhất.
fruglemonkey

@frugle Đó là một thói quen xấu vì nó không thoải mái và thường khiến tôi duỗi các ngón tay ở những vị trí khó xử làm gián đoạn quá trình gõ của tôi. Đối với tôi, vẻ đẹp của vim là cách nó cho phép tốc độ và dòng chảy, và thói quen này phá vỡ điều đó.
Andreas

Điểm công bằng. Nhưng như lưu ý RE: tốc độ và lưu lượng, bạn sẽ không phá vỡ luồng của mình nếu bạn thường xuyên gõ <LShift> + d, điều này sẽ không tạo ra bất cứ điều gì, và sau đó phải nhớ sử dụng ánh xạ <Rshift> + d của bạn chứ? Và đôi khi việc sử dụng <LShift> + d có thể được bảo hành (Gõ bằng một tay hoặc nếu tay phải của bạn đang ở trên bàn phím số, v.v.), mà ánh xạ này sẽ ngăn bạn thực hiện, gây ra sự gián đoạn tiềm năng tiếp theo. Có vẻ như ánh xạ này gây ra sự cố vòng tròn (Vấn đề A gây ra triệu chứng B, Khắc phục sự cố A bằng giải pháp C cũng gây ra triệu chứng B). Tốt hơn để khắc phục vấn đề gốc
fruglemonkey

1
Ý tưởng là chỉ thực hiện ánh xạ để bỏ thói quen xấu và sau đó loại bỏ ánh xạ. Tôi đã làm điều này trước đây với một số thành công. Tôi có một ánh xạ <jj> để xóa từ cuối cùng trong khi ở chế độ chèn để tránh phải liên tục đập vỡ backspace. Để có được sự sử dụng nó, tôi cũng phải lập bản đồ cho các lần nhấn liên tiếp vào backspace để không làm gì cả. Khi tôi đã học được cách không vẫy ở backspace, tôi đã loại bỏ ánh xạ thứ hai này.
Andreas

Câu trả lời:


9

Từ Vim FAQ 20.4. "Tôi không thể tạo ánh xạ cho khóa. Có chuyện gì vậy?" :

1) Trước tiên hãy chắc chắn rằng, khóa được truyền chính xác cho Vim. Để xác định xem đây có phải là trường hợp không, hãy đặt Vim ở chế độ Chèn và sau đó nhấn Ctrl-V (hoặc Ctrl-Q nếu Ctrl-V của bạn được ánh xạ lại cho thao tác dán (ví dụ: trên Windows nếu bạn đang sử dụng tệp tập lệnh mswin.vim) theo sau là chìa khóa của bạn.

Nếu không có gì xuất hiện trong bộ đệm (và giả sử rằng bạn đã bật 'showcmd', ^ V vẫn hiển thị ở gần dưới cùng bên phải của màn hình Vim), thì Vim không nhận được khóa của bạn một cách chính xác và không có gì để làm, ngoài việc chọn một khóa khác cho ánh xạ của bạn hoặc sử dụng GVim, sẽ nhận ra khóa chính xác.

Khi thiết lập của tôi phát hành Ctrl- q+ Left Shfit- dhiển thị 'D' và phát hành Ctrl- q+ Right Shfit- ddẫn đến cùng một kết quả. Vì vậy, ít nhất ở đây Vim không thể phát hiện sự khác biệt.

Nhưng có lẽ bạn có thể sử dụng một số công cụ khác để hỗ trợ bạn về điều này; ví dụ, trên Windows, bạn có thể dùng thử AutoHotkey với nội dung như sau:

#ifWinActive ahk_class Vim
LShift & d::MsgBox You pressed the wrong 'Shift'!
#ifWinActive

hoặc đơn giản bỏ qua sự kết hợp:

#ifWinActive ahk_class Vim
LShift & d::
#ifWinActive

Bất kỳ đề nghị cho Mac? Tôi sẽ đợi một lúc và sẽ có câu trả lời khác. Nếu không tôi sẽ chấp nhận điều này.
Andreas

@Andreas trang web này liệt kê các lựa chọn thay thế AHK cho Mac
mMontu

Tôi đánh giá cao Seil (người kế vị của karabiner) :)
nobe4

Cho OSX có tại là Karabiner-Elements với các thiết lập sẵn để vô hiệu hóa trái shift với chữ bên phải, vv pqrs.org/osx/karabiner/complex_modifications/#key_specific
Andreas
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.