Tôi nghĩ rằng điều này sẽ cho phép tính năng lựa chọn trực quan của vim vượt qua hiệu quả ngay cả chuột bằng cách cung cấp khả năng "chuyển đổi" điểm cuối hiện tại của lựa chọn:
Minh họa (The |
will đại diện cho con trỏ (Vim có nó hoạt động ở phía bên trái của ký tự được bật) và [text]
đại diện cho văn bản đã chọn, chỉ cần giả vờ rằng chúng chiếm chiều rộng bằng không. Nền của khoảng [ ]
trắng giữa trông màu xám và ký tự ngay lập tức theo sau |
là màu xanh lá cây):
Bắt đầu với
Some |text here
Some second line of text
Some more text in the third line
Báo chí v2j
; lưu ý m
ký tự được bao gồm trong vùng chọn (nó được tô sáng bởi con trỏ bây giờ):
Some [text here
Some second line of text
Some |m]ore text in the third line
Nhấn 10l
:
Some [text here
Some second line of text
Some more text |i]n the third line
Tại thời điểm này, tôi có thể quyết định tôi muốn bắt đầu chọn từ một địa điểm khác. ví dụ, bao gồm cả "Some"
trên dòng đầu tiên.
Tôi không có lựa chọn nào trong một trình soạn thảo / IDE điển hình. Tôi có lẽ sẽ phải di chuyển bàn tay của mình sang chuột, thường rất khó để chọn văn bản bằng các phương pháp truyền thống, việc sử dụng từ nhảy qua Ctrl
và lên / xuống trang sẽ giúp ích phần nào, nhưng dù thế nào, tôi đã phải cam kết đến một trong những điểm kết thúc của lựa chọn trước khi tôi bắt đầu lựa chọn .
Vì vậy, trong Vim, tôi thích khả năng lấy trạng thái hiện tại của mình và mang nó đến điều này bằng cách đạt được một ràng buộc bí ẩn:
Some [|text here
Some second line of text
Some more text i]n the third line
Sau đó, tôi chỉ có thể nhấn ^
hoặc <Home>
(cả hai đều làm tương tự trong trường hợp này khi không có khoảng trắng hàng đầu) để biến nó thành
[|Some text here
Some second line of text
Some more text i]n the third line
Nói tôi đổi ý lần nữa , tôi muốn điều chỉnh đầu kia!
[Some text here
Some second line of text
Some more text |i]n the third line
Lượt truy cập e
:
[Some text here
Some second line of text
Some more text i|n] the third line
Đẹp! Tôi có thể làm bất cứ điều gì tôi muốn tiếp theo với lựa chọn này ngay bây giờ.
Vì vậy, những gì bí ẩn ràng buộc?
Ngoài ra, thậm chí hiệu quả cao hơn sẽ là một tập hợp các ràng buộc thay thế cho một số lệnh di chuyển được sử dụng nhiều nhất cho một hàng phím khác và chúng sẽ (luôn ở chế độ trực quan) luôn di chuyển đầu kia của lựa chọn. Vì vậy, trong thao tác chọn chế độ trực quan đó, nếu các phím di chuyển cho đầu kia của lựa chọn được đặt thành "yuio" (có lẽ không phải là một lựa chọn tốt vì chúng tôi cần y
nhưng chỉ cần chịu đựng), chúng tôi có thể đã gõ
v2j10l5ye
thay vì
v2j10lX^Xe
Hey bạn biết những gì, đó thậm chí không phải là một cải tiến nhiều. Chỉ cần gimme rằng tính năng X. :)
Những câu trả lời hoàn hảo mà tôi đang tìm kiếm:
- Này, nhìn lên
:help some_awesome_vim_feature_that_just_does_this
- Này, nhìn kìa
https://github.com/awesome_user/vim_plugin_that_does_this
- Này, nhìn kìa
:help vimscript_functions_that_allow_mutation_of_visual_selections
Tôi khá mới mẻ với niềm đam mê này với Vim vì vậy tôi rất xanh khi nói đến Vimscript, và thành thật mà nói tôi muốn tránh xa việc cố gắng học một ngôn ngữ khác , vì vậy hy vọng tôi sẽ không bị buộc phải xây dựng ngôn ngữ này một cục sạc.
:help
? :help visual-mode
có tất cả thông tin bạn có thể cần về chế độ trực quan, bao gồm o
.
O
vốn O làm gì, nhưng tôi sẽ nhớ o
. Điều thứ hai bạn đang đề cập có lẽ là sử dụng :help
nhiều hơn. Và tôi đã sử dụng nó nhiều hơn khi tôi bắt đầu.