2008-10-03 4 views
35

Mặc dù tôi đã chơi với nó trước đây, cuối cùng tôi bắt đầu sử dụng Dvorak (Simplified) thường xuyên. Tôi đã ở trong một mối quan hệ ổn định với Vim trong nhiều năm nay, và tôi đang cố gắng tìm ra cách tốt nhất để remap các ràng buộc chính cho phù hợp với kỹ năng mới của tôi Dvorak.Vim Dvorak keybindings (rebindings :)

Làm cách nào để bạn remap Ràng buộc khóa của Vim để làm việc tốt nhất với Dvorak?

Giải thích được khuyến khích!

Trả lời

32

tôi sử dụng một trong các chi tiết common recommended keybindings:

Dvorak it! 
no d h 
no h j 
no t k 
no n l 
no s : 
no S : 
no j d 
no l n 
no L N 
Added benefits 
no - $ 
no _^
no N <C-w><C-w> 
no T <C-w><C-r> 
no H 8<Down> 
no T 8<Up> 
no D <C-w><C-r> 

phím di chuyển ở trong cùng một vị trí. Những thay đổi khác:

  • Xoá 'd' -> Junk 'j'
  • Tiếp theo 'n' -> Look 'l'
  • trước 'N' -> Look Back 'L'

Cũng có một số thay đổi đối với tính quen thuộc, 's'/'S' có thể được sử dụng để truy cập chế độ lệnh (vị trí cũ của:, vẫn hoạt động).

Added Lợi ích

  • Kết thúc dòng '$' -also- '-'
  • Beginning of dòng '^' -also- '_'
  • Chuyển lên 8 'T'
  • cửa sổ
  • Di chuyển xuống 8 'H'
  • Tiếp <C-w><C-w> -also- 'N'
  • Swap cửa sổ <C-w><C-r> -also- 'D'

-Adam

+0

Tuyệt vời, cảm ơn! (Lưu ý rằng trong bài đăng, các thẻ HTML bị mất. Hãy nhớ theo liên kết được cung cấp) – Pascal

+0

Cảm ơn ghi chú - Tôi đã định dạng lại nó để nó hiển thị ở đây đúng cách. –

2

tàu Vim với một kịch bản rộng Dvorak, nhưng tiếc là nó không trực tiếp source -able, vì các tập tin bao gồm một vài dòng hướng dẫn và một kịch bản mà Undoes ảnh hưởng của nó. Để đọc nó, thực hiện lệnh sau:

:e $VIMRUNTIME/macros/dvorak 
+0

Vấn đề với tập lệnh này là nó giả sử bạn muốn các phím ở cùng một vị trí. Khi thực sự các phím cần vị trí chỉ là những chuyển động. –

20

Tôi không thấy rằng tôi cần phải remap các phím cho Dvorak - Tôi rất nhanh chóng quen với việc sử dụng keybindings mặc định khi tôi chuyển sang bố trí.

Là tiền thưởng, điều đó có nghĩa là tôi không phải nhớ hai kết hợp khóa khác nhau khi tôi chuyển đổi giữa Dvorak và Qwerty. Sự khác biệt trong bố cục bàn phím là đủ để tôi không mong đợi các phím ở cùng một vị trí.

9

tôi chỉ đơn giản sử dụng qwerty tiêu chuẩn cho các lệnh và Dvorak cho chế độ chèn

Đây là how to set it up

9

Một chút trễ, nhưng tôi sử dụng như sau:

" dvorak remap 
noremap h h 
noremap t j 
noremap n k 
noremap s l 
noremap l n 
noremap L N 

" easy access to beginning and end of line 
noremap - $ 
noremap _^

này về cơ bản nào sau đây:

  • từ trái sang phải là tất cả dưới ngón tay mặc định vị trí trên hàng nhà (tức là không di chuyển trên một như trong QWERTY mặc định Vim ánh xạ)
  • l/L được sử dụng cho kết quả tìm kiếm trước/sau
  • sử dụng -/_ để đến cuối/đầu dòng

này dường như làm việc cho tôi ...

+1

Không muộn, đó là tất cả về cái đuôi dài. :-) – cdleary

+1

Cảm ơn bạn, bản remap của bạn hoạt động rất tốt, tôi đã gán n và N cho j và k vì các phím này được miễn phí sau lần remaps đầu tiên và các phím nằm cạnh nhau ở một vị trí tốt, bên cạnh đó nó lấy đi nhu cầu để tiếp cận với phím shift. :-) –

4

rebindings của tôi:

noremap h h 
noremap t j 
noremap n k 
noremap s l 
noremap j t 
noremap l n 
noremap k s 
noremap J T 
noremap L N 
noremap K S 
noremap T J 
noremap N L 
noremap S K 

Ghi chú:

  • Trong qwert, vi phải sử dụng 'h', vì vi không muốn sử dụng ';' không phải chữ cái. Nhưng trong dvroak, chúng tôi có 's', vậy tại sao không tận dụng lợi thế này?
  • vi sử dụng Caps for actions actions. Đây là một triết lý thiết kế tốt. Vì vậy, tôi cố gắng để tuân thủ điều này.

Ý nghĩa:

n (Next) -> l (Left) -- "What's left?" resembles "What's next?" 
s (Substitute) -> k (Kill then insert) 
t (jump Till) -> j (Jump till) 
N, S, T are similar. 

J (Join lines) -> T (make lines Together) 
K (Keyword) -> S (Subject) 
L[count] (Line count) -> N (line Number) 

B.T.W. L chính nó đi đến dòng cuối cùng, và N là chữ cái cuối cùng của vây. (Cảm ơn vì tenzu đã chỉ ra điều này.)

P.S. Tôi đã sử dụng những rebindings này một thời gian. Bây giờ tôi không sử dụng nó trong vim. Tôi chỉ sử dụng những cái mặc định.

1

Bạn có thể sử dụng để have Vim use Dvorak only in insert mode:

:set keymap=dvorak 

Bằng cách này tất cả các lệnh vẫn còn ở QWERTY, nhưng tất cả mọi thứ bạn gõ sẽ được ở Dvorak.

Hãy cẩn thận: Vâng, gần như mọi thứ. Chế độ chèn, chế độ tìm kiếm, và chế độ thay thế tất cả sẽ được dvorak, nhưng các lệnh cũ sẽ không. Điều này có nghĩa là bạn không phải học lại :wq, nhưng bạn sẽ cần nhập :%s/foo/bar/gc trong QWERTY.

Điều này sẽ không giúp ích gì nếu bạn chỉ muốn di chuyển một số lệnh nhất định, nhưng tôi thấy rằng trong đầu, "di chuyển một từ" đã bị ràng buộc "di chuyển ngón tay vòng trái", thay vì "hỏi bộ phận đánh máy trong đó chữ 'w' là rồi nhấn vào nó, "làm cho phương pháp này dễ dàng hơn nhiều đối với tôi.