Mở rộng chuyển động f và t sang các dòng tiếp theo


16

Có cách nào t{char}f{char}sẽ tiếp tục hoạt động trong các dòng tiếp theo nếu {char}không có trong một dòng nhất định?

Tôi muốn tránh sử dụng /{char}<CR>để tiết kiệm 1 tổ hợp phím và để không phải tìm kiếm nổi bật, đặc biệt là khi tôi cần điều này kết hợp với động từ (ví dụ dfa, ct.).


2
Bạn có thể làm d/ađể xóa tiếp theo ac/.xóa sang tiếp theo .. Nếu bạn sử dụng hlsearchvà không muốn nó khi thực hiện thao tác này, bạn có thể tạo ánh xạ thực hiện d/thao tác của mình và sau đó vô hiệu hóa tô sáng (kết thúc bằng :nohlsearch).
jjaderberg

2
Bạn có thể sử dụng (hoặc nghiên cứu) một plugin như github.com/rhysd/clever-f.vim (với g:clever_f_across_no_linecài đặt thành 0 và các tùy chọn khác được bật / tắt tùy ý).
VanLaser

1
Dahu đã tạo một plugin cho việc này: github.com/dahu/vim-fanfingtastic
EvergreenTree

1
Tôi vẫn nghĩ rằng plugin tốt nhất cho việc này là Easymotion
Vitor

1
Tôi cũng đã tạo một plugin: cải thiện
Christian Brabandt

Câu trả lời:


6

Tôi cũng đã sử dụng dahu / vim-fanfingtastic một thời gian và thấy nó rất hữu ích. Nó hỗ trợ lặp lại ngữ nghĩa .nhờ vào thư viện tpope / repeat.vim mà bạn cũng phải cài đặt.

Một thay thế là chrisbra / cải thiện mà ít nhiều làm điều tương tự.

rhysd / smart-f.vim có một tùy chọn để cho phép tìm kiếm nhiều dòng, mặc dù tính năng chính của nó là cho phép flặp lại tìm kiếm hiện tại, giống như ;đã có.

Tất cả những người xử lý ;,chìa khóa như mong đợi.

Các bất lợi với nhiều đường ftlà nếu bạn nhấn phím sai, bạn sẽ được đưa ra khỏi dây chuyền hiện tại để ở đâu đó bất ngờ trong tập tin. Ctrl-Ocó thể giúp đỡ trong những khoảnh khắc (Điều này có thể nguy hiểm với sự cthay đổi nếu bạn không nhận ra rằng mình vừa nuốt một vài dòng, nhưng đó chỉ là những rắc rối mọc răng đối với tôi.)

Có các plugin liên quan khác, với các cách tiếp cận hơi khác nhau, chẳng hạn như justinmk / vim-sneakgoldfeld / vim-tìm kiếm nhắc nhở hai ký tự , giúp dễ dàng hơn (nhưng vẫn không được bảo đảm) để đánh vào vị trí mục tiêu của bạn.

Và sau đó là Easymotion / vim-Easymotion . Điều này cung cấp rất nhiều phím chuyển động mạnh mẽ , một số trong đó yêu cầu thêm một hoặc hai phím bấm để xác nhận nhân vật mục tiêu khi có nhiều ứng cử viên.


Nhưng hiện tại tôi đang sử dụng một giải pháp trồng tại nhà. Tôi đã làm việc với tác giả của EasyMotion để tạo ft đánh dấu số đếm trên tất cả các nhân vật phù hợp trước bạn.

nhập mô tả hình ảnh ở đây

Điều này hoạt động như một trợ lý đếm tự nhiên cho các chuyển động vani vim. Khi bạn cố gắng di chuyển đi đâu đó fxnhưng sau đó phát hiện ra có nhiều xđường đi hơn bạn nghĩ, bạn có thể đọc số lóe lên trên nhân vật bạn đang nhắm đến, và sau đó làm [count];để nhảy đến đó.

Bạn có thể tìm thấy chi nhánh ở đây . Hãy chắc chắn đọc phần Thêm gợi ý hữu ích để thiết lập ánh xạ chính.

Tuy nhiên, đối với các choạt động thay đổi, vẫn tốt hơn là làm cho đúng ngay lần đầu tiên . Trong những trường hợp đó, tôi khuyên bạn nên dành thêm một lần nhấn phím trong vchế độ Trực quan hoặc sử dụng một trong những bước nhảy được đảm bảo của EasyMotion.


2

có một plugin thực hiện những gì bạn dường như muốn, như VanLaser đã nêu.

https://github.com/dahu/vim-fanfingtastic

Bây giờ nó yêu cầu plugin lặp lại để hoạt động đúng, vì vậy bạn cũng sẽ cần điều đó:

https://github.com/tpope/vim-repeat


Bạn cũng nên đề cập đến các lựa chọn thay thế khác
Christian Brabandt

Không phải tôi :) Tôi đã đề cập đến github.com/rhysd/clever-f.vim
VanLaser
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.