2008-09-26 26 views
5

Trong trình chỉnh sửa Vim, tôi đã chọn ]I trên một hàm (trong mã C++). Điều này trình bày một danh sách, có nội dung là 'Nhấn ENTER hoặc nhập lệnh để tiếp tục'.Cách nhảy tới một sự xuất hiện từ danh sách tìm kiếm Vim

Bây giờ để chuyển đến một lần xuất hiện nói 6, tôi nhập 6 - nhưng điều này không hoạt động.

Tôi có thể nhập những câu lệnh nào trong trường hợp này và làm cách nào để chuyển sang lần xuất hiện thứ N từ danh sách này?

Cập nhật:

Trên thực tế tôi đã cố gắng :N (ví dụ: 6) - nhưng thời điểm tôi gõ : Vim vào chế độ Insert, và đại tràng bị chèn vào đoạn code để thay thế.

Cập nhật

Giả sử :N cách tiếp cận là đúng, vẫn hoàn toàn gỡ bỏ cài đặt và cài đặt của Vim, mà không cần bất kỳ cấu hình, quá đã không giúp đỡ - mặc dù bây giờ gõ : không chuyển Vim để chèn chế độ.

Trả lời

2

Phần mềm phải đưa bạn một danh sách như:

1: 345 my_func (int var) 
2: 4523 my_func (int var) 
3: 10032 my_func (3); 

Cột thứ hai là số dòng. Loại: 345 để nhảy đến dòng 345.

+0

John Thực ra tôi đã thử [: N] (http://stackoverflow.com/questions/137935/how-to-jump-to-an-occurrence-from-vim-search-list#137942) (ví dụ: 6) - nhưng thời điểm tôi gõ: Vim vào chế độ Chèn, và dấu hai chấm được chèn vào trong mã thay thế. – vikramsjn

+0

Có vẻ như bạn có cấu hình rất khác thường. Làm thế nào để bạn nhập các lệnh như: w nếu đại tràng vào chế độ chèn? –

+0

: w không vào chế độ chèn. Và mọi thứ khác dường như hoạt động tốt. Trên thực tế tôi nhớ sử dụng: N một số thời gian trước đây, nhưng ngày nay đột nhiên nó dường như đã ngừng làm việc. Mặc dù tôi không nghĩ rằng tôi đã thay đổi tập tin Vim cfg của tôi trong một năm nay. – vikramsjn

0

Khi tôi sử dụng vim, và tôi chuyển đến một thẻ, bằng cách làm ví dụ:

:tag getfirst 

tôi nhận được trình bày với một cái gì đó trông giống như:

# pri kind tag    file 
    1 F m getfirst   /home/sthorne/work/.../FormData.py 
       class:FakeFieldStorage 
       def getfirst(self, k, default): 
    .... 
    8 F m getfirst   /home/sthorne/work/.../CGIForm.py 
       class:CGIForm 
       def getfirst(self, name): 
Choice number (<Enter> cancels): 

Tôi nhập '5' để đến lần xuất hiện thứ 5.

Nếu bạn không thể nhận vim của bạn để có hành vi đó (nó có vẻ được bật theo mặc định cho vim của tôi), bạn có thể sử dụng g] thay vì Ctrl-], đó là analagous để : tselect thay vì : thẻ

1

Đỗ: h tselect trên vim để xem định nghĩa hoàn chỉnh

Nếu bạn đã thấy thẻ bạn muốn sử dụng, bạn có thể gõ 'q' và nhập số.

-2

Hãy thử sử dụng 123G để chuyển đến dòng 123 (xem :h G).

1

Nếu bạn nhấn nút nhảy và nhận danh sách các mục tiêu có thể, hãy chọn số và nhấn lại lần nữa.

Vì vậy, cho

1: 345 my_func (int var) 
2: 4523 my_func (int var) 
3: 10032 my_func (3); 

Nếu bạn nhấn '2] |', nó sẽ nhảy trực tiếp đến dòng đó.

1

tôi đã cùng một vấn đề, và chuẩn bị cùng các câu trả lời trước và thử nghiệm tôi đã đưa ra giải pháp này:

[I // gives list of matches for word under cursor, potentially some matches are in headers. remember the number of the match you're interested in, eg. the 3rd 
q // quits the list of matches 
3[Ctrl-i // (with cursor in same position) jumps to third match 
Các vấn đề liên quan