Tôi ở vị trí hơi bất thường khi sử dụng hai bố cục bàn phím khác nhau một cách thường xuyên ( Lập trình viên-Dvorak và Thổ Nhĩ Kỳ-F ). Những bố cục này khá khác biệt với nhau và tôi chỉ có thể thành thạo vim với một bộ ký ức cơ bắp. Tôi khá thành thạo với các lệnh vim trong bố cục Dvorak, nhưng hầu như không thể sử dụng nếu bàn phím của tôi có bố cục Thổ Nhĩ Kỳ-F. Thật không may, tôi thường xuyên chỉnh sửa các tập tin bằng cả tiếng Anh và tiếng Thổ Nhĩ Kỳ và thậm chí cả các ngôn ngữ hỗn hợp. Sự thành thạo của tôi là tôi có thể gõ ngôn ngữ trong cách bố trí bàn phím tương ứng khá tốt, nhưng bộ não của tôi từ chối nối dây chúng và gõ một vài chữ cái trong tiếng Thổ Nhĩ Kỳ từ bố cục Dvorak hoặc ngược lại.
Tôi có các ràng buộc hai phím để thay đổi bố cục trong Xorg, nhưng ngay cả điều này cũng khiến tôi có một quy trình làm việc khó xử trong vim khi chỉnh sửa các tệp ngôn ngữ hỗn hợp:
<vim commands…>i<switch to tr>…content…<escape><switch to en><vim commands…>
Tôi muốn có thể rút ngắn điều này thành một cái gì đó như:
<vim commands…><leader>i…content…<escape><vim commands…>
... sao cho việc sử dụng <leader>i
tập hợp các :imap
giá trị để mô phỏng bố cục Thổ Nhĩ Kỳ mà không thay đổi bố cục bàn phím hệ thống. Đồng thời, i
sẽ chuyển sang chế độ chèn nhưng không có :imap
giá trị bổ sung . Bản thân các giá trị rất dễ, tôi chỉ cần ánh xạ bảng chữ cái giống như thế này:
:imap a u
:imap A U
:imap o i
:imap O İ
"etc.
Câu hỏi đặt ra là, làm thế nào để thiết lập hai chế độ chèn, một chế độ chèn bình thường và một pseudo chèn chế độ đó là giống hệt nhau ngoại trừ một loạt các ánh xạ, và làm thế nào tôi có thể kích hoạt các chế độ này với <leader>i
, <leader>a
vv?
:imap
là nó sẽ hoạt động ngay cả trong một phiên ssh từ xa hoặc khi $DISPLAY
không được thiết lập.
InsertEnter
vàInsertLeave
autocmds, bạn có thể sử dụng để tự động chuyển bố cục. Cụ thể, trên trangInsertLeave
bạn có thể kiểm tra xem đó có phải là tiếng Thổ Nhĩ Kỳ không, nếu có, hãy chuyển sang Dvorak, đặt cờ và khi bạn nhập lại, hãy chuyển trở lại Thổ Nhĩ Kỳ nếu đó là trường hợp lần trước bạn rời chế độ chèn.