Điều chỉnh đầu kia của một lựa chọn trực quan


13

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 ý mký 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 Ctrlvà 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 ynhư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.


Đuợc. Bây giờ tôi không biết chuyện gì đang xảy ra ở đây (câu hỏi đã được ninja chuyển từ SO sang SU một cách bí ẩn), nhưng ban đầu tôi đã đăng bài này lên SO và tôi thực sự muốn nó ở lại đó. Với tất cả sự tôn trọng dành cho những người không phải là lập trình viên, chỉ những lập trình viên mới có thể quan tâm nhiều đến việc chỉnh sửa văn bản này. Tất nhiên, tất cả người dùng của vim có thể được hưởng lợi từ việc tìm hiểu cách thức hoạt động của nó, tôi chỉ nghĩ rằng nó sẽ nhận được nhiều nhãn cầu hơn và cơ hội tốt hơn để nhận được câu trả lời ở đó có các nhà phát triển plugin.
Steven Lu

Đôi khi bạn đọc :help? :help visual-modecó tất cả thông tin bạn có thể cần về chế độ trực quan, bao gồm o.
romainl

Đôi khi tôi đọc nó, nhưng có lẽ nó đã mất khoảng thời gian viết ra những suy nghĩ của tôi. Đây là một nhiệm vụ chắc chắn hơn là đoán xem chuỗi trợ giúp là gì.
Steven Lu

Học tốt hơn đoán. Câu trả lời của Heptite đã dạy cho bạn hai điều, bạn có thể đặt tên cho chúng không?
romainl

Vâng, ý tôi là có rất nhiều điều phải học nhưng tôi đã quên Ovố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 :helpnhiều hơn. Và tôi đã sử dụng nó nhiều hơn khi tôi bắt đầu.
Steven Lu

Câu trả lời:


46

Tôi không chắc là tôi thực sự hiểu bạn muốn gì, nhưng có lẽ đây là:

:help v_o

Về cơ bản, trong khi văn bản được tô sáng trực quan, bạn có thể nhấn ovà nó sẽ nhảy đến "phần cuối" khác của vùng thị giác mà không sửa đổi nó.


1
Chúa ơi, đúng rồi !!! Điều đó thậm chí còn tốt hơn tôi mong đợi, nó đã bị ràng buộc với một khóa duy nhất , vì vậy Xthực tế ở trêno
Steven Lu

1
Cho phép tôi cũng chỉ ra rằng chuột nhấp chuột phải (nếu bạn đã cấu hình thiết bị đầu cuối của mình để chuyển nó qua Vim) sẽ cho phép nó điều chỉnh một cách thông minh phần cuối của lựa chọn hình ảnh hiện tại đến vị trí của con trỏ. Điều này làm cho nó trở thành một phương pháp ít gây đau đớn hơn để điều chỉnh khu vực lựa chọn vì nó không vứt bỏ vị trí của đầu đối diện của lựa chọn.
Steven Lu

@StevenLu: Dù sao nó cũng không bị vứt đi. Bạn có thể nhấn omột lần nữa và quay trở lại.
Heptite

@StevenLu Đây có lẽ nên là câu trả lời được chấp nhận, vì nó không chỉ giải quyết vấn đề của bạn, có rất nhiều ý kiến, cũng xảy ra chính xác những gì tôi cần trên kết quả đầu tiên của Google và thực sự là câu trả lời duy nhất được gửi bởi bất kỳ ai ...
Kingdon

Đúng, tôi nghĩ rằng tôi chưa bao giờ chấp nhận nó vì nó được đăng quá nhanh đến nỗi tôi không được phép làm điều đó vào thời điểm đó và tôi đã vui vẻ sử dụng tính năng Vim này trong gần năm năm kể từ đó, không bao giờ cần phải tự nhắc nhở mình điều gì điều quan trọng là, vì nó siêu dễ nhớ.
Steven Lu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.