Tôi đã đưa ra ý tưởng rằng <C-a>
trong chế độ bình thường của Vim không chỉ tăng số mà còn chuyển booleans. Nó có ý nghĩa nếu bạn xem xét true
và false
như số nguyên modulo 2.Đồng nghĩa với chế độ bình thường của Vim CTRL-A?
Vì vậy, tôi downloaded an excellent script để làm công việc lông và viết một định nghĩa mới cho <C-a>
:
fun! NewCA()
let cw = tolower(expand("<cword>"))
if cw == "true" || cw == "false"
ToggleWord
else
" run the built-in <C-a>
execute "normal \<C-a>"
endif
endfun
command! NewCA :call NewCA()
nnoremap <C-a> :NewCA<cr>
Nhưng khi nó xảy ra, nnoremap
doesn' t đi xa như để kiểm tra chức năng bên trong. Tôi nhận được hành vi đệ quy nếu con trỏ của tôi không nằm trên các từ true
hoặc false
.
Tại thời điểm này tôi thề rất nhiều, tại sao Bram không chọn một ý tưởng tuyệt vời từ Emacs, rằng mọi thứ nên có chức năng và các ràng buộc khóa tự do có thể thiết lập. Sau đó, tôi chỉ có thể kiểm tra chức năng cho <C-a>
và gọi nó trong chức năng đó. Nhưng không, tôi không thể tìm thấy một chức năng như vậy, và các cụm từ execute "normal foo"
dường như là thành ngữ Vim.
Bất kỳ đề xuất về làm thế nào tôi có thể làm cho <C-a>
công việc như vậy mà
- Chuyển đổi các phép toán luận khi con trỏ là trên một từ
true
hoặcfalse
- Mùa thu trở lại built-in
<C-a>
hành vi khác
Giúp đánh giá cao!
Cả hai câu trả lời đã như vậy, giải pháp đúng. Tôi đã xem đây là câu trả lời được chấp nhận chỉ để chào đón bạn đến với cộng đồng. :) – progo