Làm cách nào tôi có thể tìm kiếm một chuỗi giữa các số dòng nhất định?


15

Đây là một vấn đề tôi đã có gần đây. Tôi có một tập tin với hàng trăm dòng văn bản. Làm cách nào tôi có thể tìm kiếm một chuỗi giữa hai số dòng cụ thể? Ví dụ: tôi muốn tìm kiếm giữa các số dòng 100 và 325.

Câu trả lời:


7
:100,235g/foo/#<CR>

sau đó nhấn :147<CR>để nhảy đến dòng mong muốn.

Bạn cũng có thể sử dụng :ilist:

:100,235il foo<CR>

Xem :help range, :help :global:help :ilist.


5

Có một cách khác để tìm kiếm giữa các dòng cụ thể.

/%>{linenumber}l\%<{linenumber}{pattern}

Thí dụ:

/%>199l\%<300lgood

Điều này sẽ tìm kiếm từ dòng 200 đến 299 cho mẫu 'tốt'.

%>199l - l is for line, >199 denotes the lines greater than 199

2
100GV325G<esc>
/\v%Vpattern
  • 100GV325G<esc>Trực quan chọn các dòng từ 100 đến 325, trở về normalchế độ.
  • /\v%Vpatternsử dụng :h /\%Vđể giới hạn phạm vi tìm kiếm vào khu vực hình ảnh cuối cùng.

Nếu mẫu của bạn chứa dòng mới, bạn phải thêm một \%Vmẫu khác để hạn chế kết thúc mẫu trong khu vực trực quan:

100GV325G<esc>
/\v%Vpattern%V
  • :h /\%V

1

Đôi khi bạn cần tìm kiếm một biểu tượng nhất định trong một hàm / phương thức

  void f(bool b)
  {
    b;
    b;
  }

  void g(bool b)
  {
    b;  
    b;  
    b;  
    b;  
  }

Để tìm kiếm chỉ btrong f():

  • đi đến {cácf()
  • vào chế độ trực quan với V
  • đi đến cuối cùng f()với '%'
  • đi đến dòng exec với lệnh ':'.
  • một khi bạn đang ở trong dòng lệnh il bđể nhận :'<,'>il b

Sau khi <CR>(nhập) bạn nhận được

b.cpp
  1:   15     b;
  2:   16     b;
Press ENTER or type command to continue

Chào mừng bạn đến với Vi và Vim ! Điều này thực sự khác biệt như thế nào với câu trả lời của romainl?
D. Ben Knoble

Cảm ơn! Đầu tiên, tôi tin rằng những người mới sử dụng vim và không quen thuộc %và chế độ trực quan có thể thấy chúng hữu ích. Thứ hai, không cần phải nhập một cách rõ ràng phạm vi của các dòng.
dmytro.poliarush

1
Ok, sau đó tôi sẽ đề nghị giải thích cách sử dụng của chúng có liên quan và các khóa vàoilist
D. Ben Knoble
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.