Vì tôi thường xuyên không sử dụng các chuyển động và đối tượng văn bản tuyệt vời mà vim cung cấp, (và kể từ "Holding down 'j' is a vim anti-pattern,"), tôi muốn vim giúp tôi sử dụng chúng thay vì sử dụng hjkl
nhiều hơn một vài lần liên tiếp.Ngăn chặn việc sử dụng lặp lại các phím di chuyển hjkl trong vim
Khi tôi bắt đầu sử dụng vim, tôi đã bực mình rằng tôi không sử dụng hjkl
để di chuyển nhưng thay vào đó sẽ sử dụng các phím mũi tên. Để nhắc nhở tôi không làm điều này, tôi đã sử dụng lại các phím mũi tên để tránh sử dụng chúng - tôi biết sử dụng hàng chủ để điều hướng sẽ là một kế hoạch dài hạn tốt hơn, vì vậy tôi cắt bỏ cốt thép tích cực mà tôi có được phím.
map <left> <nop>
map <right> <nop>
# I quickly removed nop's for up and down because using
# the mouse wheel to scroll is sometimes useful
Tôi không còn cần các ánh xạ này trong .vimrc vì nó hoạt động rất tốt và tôi đã nhanh chóng chuyển đổi mà không phải nỗ lực có ý thức. Theo cách tương tự, bây giờ tôi muốn cắt bỏ việc sử dụng lặp lại các phím di chuyển cơ bản hjkl
. Tôi đã hình dung một cái gì đó như thế này:
let g:last_mov_key = 'none'
let g:times_mov_key_repeated = 0
function! MovementKey(key)
if (g:last_mov_key == a:key)
let g:times_mov_key_repeated = g:times_mov_key_repeated + 1
else
let g:last_mov_key = a:key
let g:times_mov_key_repeated = 0
endif
if g:times_mov_key_repeated > 3
echo "Negative Reinforcement!"
endif
endfunction
noremap j :call MovementKey('j')<CR>gj
noremap k :call MovementKey('k')<CR>gk
noremap h :call MovementKey('h')<CR>h
noremap l :call MovementKey('l')<CR>l
Nhưng điều này phá vỡ trong chế độ trực quan, và tôi tưởng tượng trong tấn các trường hợp khác, nơi sử dụng dòng lệnh vim ở giữa một cái gì đó thay đổi trạng thái khi nó không nên. Làm thế nào tôi có thể hạn chế bản thân mình phải sử dụng các chuyển động phức tạp hơn?
Chỉnh sửa: Câu hỏi được chỉnh sửa sau hai câu trả lời đầu tiên cho rõ ràng, các đoạn được sắp xếp lại. Tôi muốn một số hỗ trợ từ vim di chuyển vượt ra ngoài "level 0" của romainl. Cho đến nay câu trả lời khuyên tôi không nên lãng phí thời gian của tôi, nhưng nếu chúng ta giả định rằng tôi là một fan hâm mộ của kỹ thuật học tập, nơi tôi thay đổi thói quen của tôi bằng cách thay đổi môi trường của tôi để thay đổi ưu đãi? Trong mô hình này, tôi muốn hoàn thành một nhiệm vụ, ví dụ, di chuyển xuống một trang, và tôi sẽ cố gắng kết hợp khóa một cách ngẫu nhiên cho đến khi tôi đạt được nhiệm vụ đó. Dopamine tín hiệu vv trong não của tôi sẽ củng cố hành động mà cuối cùng đạt được kết quả này. Tôi có thể tập trung vào việc nhớ không sử dụng hjkl
hoặc tôi có thể tập trung vào tác vụ mà ban đầu tôi đang cố gắng thực hiện, chỉnh sửa văn bản và không thực sự nghĩ đến việc sử dụng kỹ thuật chỉnh sửa hiệu quả hơn.
Đối với cài đặt bản ghi 'mouse = a' cho phép bạn ánh xạ lên/xuống đến và vẫn có một bánh xe cuộn đang hoạt động (cũng cho phép chọn chuột nếu đó là điều bạn cần). –
Holloway