Xoay vòng qua các trận đấu trong lịch sử ZSH - tăng-mẫu-tìm kiếm-lùi


10

Gần đây tôi đã chuyển tìm kiếm lịch sử để sử dụng history-incremental-pattern-search-backwardvì nó cho phép các mẫu trong tìm kiếm. Đây là cách nó được thiết lập trong.zshrc

bindkey -M vicmd '/' history-incremental-pattern-search-backward

Điều này hoạt động rất tốt, nhưng tôi không thể tìm ra cách đi đến trận đấu tiếp theo từ menu tìm kiếm.

% cat foobarbaz.txt
bck-i-search: f*baz

Có một chìa khóa ràng buộc để làm điều này?

Câu trả lời:


12

Cuối cùng tìm thấy câu thần chú đúng. Bạn cần ánh xạ tìm kiếm mẫu trong chế độ chèn. Đây là mảnh tôi đã mất:

# Search backwards and forwards with a pattern
bindkey -M vicmd '/' history-incremental-pattern-search-backward
bindkey -M vicmd '?' history-incremental-pattern-search-forward

# set up for insert mode too
bindkey -M viins '^R' history-incremental-pattern-search-backward
bindkey -M viins '^F' history-incremental-pattern-search-forward

Tôi đã sử dụng ^Bđể tìm kiếm ngược trong chế độ chèn, nhưng tôi đã ánh xạ nó sang thứ khác. Vì vậy, bây giờ ^R^Fchu kỳ thông qua các trận đấu.


những gì hiện các -Mlệnh làm gì? Trong trường hợp của tôi ngay cả khi không có -Mtừ khóa, nó vẫn hoạt động rất tốt ..
alpha_989

Cho -M keymapbiết bindkey mà keymap sẽ áp dụng ràng buộc. Tôi đã thiết lập nó cho cả chế độ chèn và chế độ lệnh.
claytron

Cảm ơn bạn đã làm rõ. Trong trường hợp của tôi, tôi chỉ có bindkey '^R' history-incremental-pattern-search-backward, và nó hoạt động. Tôi cũng sử dụng /lệnh mặc định trong mô hình vi bình thường trong zsh. Trong đó tôi có thể tìm kiếm lịch sử lệnh và một khi nó tìm thấy lệnh, nó sẽ chỉ cung cấp nó tại dòng lệnh. Sau đó tôi có thể sửa đổi lệnh cuối cùng nếu cần thiết.
alpha_989

'^R' history-incremental-pattern-search-backwardMặt khác, nếu tôi sử dụng , nó sẽ đưa tôi đến lệnh cuối cùng khớp với chuỗi tìm kiếm. Tuy nhiên, tôi chưa tìm được cách nào để thực sự có thể chỉnh sửa lệnh. Sau khi tìm thấy một lệnh phù hợp khớp với chuỗi tìm kiếm thông qua tìm kiếm patter tăng dần, có tổ hợp phím cụ thể nào mà tôi có thể nhấn để có thể chỉnh sửa lệnh không?
alpha_989

8

Theo zshzletrang hướng dẫn cho zsh 4.3.10, không có khóa nào bị ràng buộc theo mặc định. Bạn cần thêm các liên kết vào isearchbản đồ và chỉ có một vài vật dụng có sẵn. Chẳng hạn, bạn có thể làm:

bindkey -M isearch '^R' history-incremental-search-backward
bindkey -M isearch '^S' history-incremental-search-forward

bindkey -lkhông hiển thị isearchbản đồ
claytron

@claytron: phải là một vấn đề về phiên bản: isearchmới trong 4.3.10, trong khi history-incremental-pattern-search-backwardxuất hiện trong 4.3.7 (nếu tôi đọc chính xác thay đổi).
Gilles 'SO- ngừng trở nên xấu xa

Tôi đang sử dụng 4.3.10, không chắc tại sao nó không ở đó. Sử dụng các ràng buộc chế độ chèn làm việc cho tôi mặc dù.
claytron
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.