Làm cách nào tôi có thể thực hiện tìm kiếm khi vim hiển thị nội dung bằng cách sử dụng máy nhắn tin nhiều hơn nữa?


17

Tôi muốn xem giá trị của một biến, vì vậy tôi chạy lệnh

:let

Vim hiển thị kết quả của lệnh này bằng --more--máy nhắn tin.
Làm thế nào tôi có thể tìm kiếm cụm từ này, ví dụ html?
Tôi đã xem trang hướng dẫn để biết thêm máy nhắn tin +/được sử dụng để tìm kiếm nhưng dường như nó không hoạt động, cũng /như không có máy nhắn tin ít hơn.


1
AFAIK, đó là một lệnh nội bộ của Vim - có vẻ như 'nhiều hơn', nhưng chương trình không được gọi bởi Vim (bằng chứng: nó cũng hoạt động trong Windows). Bạn vẫn có thể viết phần đầu của một tên biến, hơn là yêu cầu Vim hoàn thành nó (ví dụ với Ctrl-d).
VanLaser

cảm ơn, khi tôi gõ tên biến - hoặc thực tế là khá nhiều thứ - vim sẽ không chấp nhận nó - nó chỉ nhắc -- More -- SPACE/d/j: screen/page/line down, b/u/k: up, q: quittrong dòng lệnh.
the_velour_fog

1
Viết :let rồi không nhấn Enter, nhưng Tabhoặc Ctrl-d- bạn sẽ có một danh sách các biến hiện có, được hiển thị theo kiểu "thêm" - bây giờ nhấn Esc, viết một vài chữ cái, nhấn Tabhoặc Ctrl-dmột lần nữa ... và cứ thế cho đến khi bạn tìm thấy biến bạn muốn Trên thực tế, để xem giá trị của một biến, có lẽ bạn nên sử dụng echo thay thế? (Hoặc set variable-name?cho các tùy chọn)
VanLaser

1
rất tuyệt, cả Ctrl-dtrò lừa và tiếng vang đều hoạt động tốt, cảm ơn!
the_velour_fog

Câu trả lời:


16

Đây không phải là moremáy nhắn tin, đây là máy nhắn tin nội bộ và tối giản của Vim không có khả năng tìm kiếm.

Nhưng bạn có thể sử dụng :redirlệnh:

:redir @a    redirect output of following commands to register a
:let         list every current option and its value
G<CR>        go straight to the end of the listing and make it disappear
:redir END   stop redirection
:tabnew      open a new buffer in a new window in a new tab page
"ap          put from register a

Sau đó, sử dụng các lệnh Vim thông thường.


oh rất tuyệt, đó là một lệnh tuyệt vời để biết! cảm ơn
the_velour_fog

7
đơn giản hơn một chút::redir @b|sil let|redir end
Christian Brabandt

11

Vim 8 có một execute()lệnh cho phép bạn nhận đầu ra của lệnh. Để xem nó vào bộ đệm hiện tại, hãy làm:

:put =execute('let')

Đối với Vim 7, bạn có thể sử dụng capt.vim . Nó là một plugin bao bọc các lệnh từ câu trả lời của @ romainl và cho phép bạn sử dụng nó như là

:Capture let

Đó là điều tốt để biết, cảm ơn. Tôi sẽ kiểm tra nó khi tôi nâng cấp. Trên vim 7 Tôi đang sử dụng plugin ngao của steve losh để thu được lượng lớn đầu ra vào một bộ đệm mới. nó cũng hoạt động tốt
the_velour_fog
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.