2013-03-29 3 views
22

Trong bộ đệm lớn, tôi muốn cuộn xuống đến lần xuất hiện cuối cùng của mẫu mẫu.Vim tìm thấy lần xuất hiện cuối cùng của

Nếu tôi ở sự xuất hiện đầu tiên, nó là đủ dễ dàng để tìm kiếm các mẫu/, đảo ngược chuyển sang xuất hiện tiếp theon với N và nhận được đến cuối cùng ..

Nếu tôi ở giữa một chuỗi các lần xuất hiện .. có cách nào tốt hơn để nhảy không?

Trả lời

49

Một cách dễ dàng để tìm sự xuất hiện cuối cùng là để nhảy đến cùng và tìm kiếm ngược:

G?foo<CR> 

Trong thực tế, có một cách dễ dàng hơn nếu bạn đã được tìm kiếm một cái gì đó. Chỉ cần nhảy đến cùng và tìm kiếm ngược cho điều bạn chỉ cần tìm kiếm:

GN 

đơn giản như vậy.

Chỉnh sửa: nếu tìm kiếm của bạn xảy ra trên dòng cuối cùng, thì GN sẽ bỏ qua đến lần xuất hiện cuối cùng thứ hai. Sử dụng ggN sẽ giải quyết vấn đề này. (Và gg?foo<CR> vì những lý do tương tự.)

+0

Tất nhiên rồi. Bạn đúng rồi. Cảm ơn! – Robottinosino

+0

ha, tôi nghĩ câu trả lời của tôi giống như điểm thứ 2 của bạn. Không nhìn thấy điểm đó khi tôi viết. loại bỏ của tôi, và lên của bạn! +1 – Kent

+5

Tôi cũng đề nghị 'ggN' của tôi, ngay cả khi nó có thêm một lần nữa. Vì 'GN' chỉ hoạt động nếu kết quả cuối cùng không nằm trong dòng cuối của tệp. Nếu nó nằm ở dòng cuối cùng, 'N' của bạn sẽ nhảy qua nó. – Kent

2

Một giải pháp có khả năng còn:

:vim foo % | clast 
+0

'loại clast' ->' -bash: type: clast: không tìm thấy ' – Robottinosino

+0

Hmmmmmmm ... Cái gì? – romainl

+0

Tôi giả sử 'clast' là một chương trình nên có trên $ PATH? Nếu vậy, tôi đã thử 'type' để định vị nó (như' which') nhưng nó đã cho tôi thông báo lỗi đó .. 'clast' là gì? – Robottinosino

0

giải pháp khác là:

G/\(.\{-}\zs\(foo\)\)\{1,}<CR> 
+0

@StackOverflowed, ý của bạn là gì? – Reman

+0

Xin lỗi Tôi đã cố gắng hiểu nó :). – StackOverflowed