2010-02-04 27 views
19

Có cách nào dễ dàng để lưu mẫu Regex thường được sử dụng để tôi có thể sử dụng lại giữa các tệp khác nhau không? Tôi xem qua nhiều tệp nhật ký và luôn cần tạo một regex phức tạp nhẹ (nó không phải là khoa học tên lửa nhưng nó là một nỗi đau để gõ lại) để tìm lỗi vì vậy nó sẽ là tốt để có một cách để nhớ lại mà không cần phải lưu nó trong một văn bản và dán nó vào các thông số tìm kiếm mỗi lần.Lưu các mẫu regex thường được sử dụng trong Vim?

Trả lời

2

Chỉ cần bấm / và sau đó mũi tên lên.

Hoặc tạo lệnh để gọi tìm kiếm regexp.

:command -nargs=0 Errors vimgrep "Error\s*regexp" % | cw 15 

và sau đó chỉ cần

:Errors 
+0

Tôi đến đây để tìm cách thu hồi các mẫu tìm kiếm trước đó. Đôi khi tôi tìm kiếm nhiều lần cho một mẫu nhất định, bị gián đoạn bởi tìm kiếm mẫu khác và phải nhập lại mẫu gốc là gây phiền nhiễu. Tôi không biết rằng bạn có thể truy cập lịch sử bằng mũi tên lên và xuống. (Ctrl-P và Ctrl-N cũng hoạt động.) Cảm ơn! –

2

Nếu bạn đã bắt đầu gõ một lệnh trong vim, bao gồm tìm kiếm hoặc thay thế, ép 'lên' nên tìm kiếm trong lịch sử của bạn cho các lệnh sử dụng gần đây với cùng một tiền tố.

3

Có một vài cách khác nhau:

  • Tạo một ánh xạ mà những gì bạn muốn và thêm nó vào .vimrc của bạn, ví dụ: map /foo /[long complicated regex]. Nhưng hãy cẩn thận rằng điều này sẽ làm cho nó khó khăn để tìm kiếm các chuỗi chữ "foo", mặc dù nó có thể được thực hiện với Ctrl-V thoát. Một cách khác là sử dụng một số tiền tố khác cho các tìm kiếm regex tùy chỉnh của bạn, ví dụ: map ::foo /[complicated regex].
  • Tạo một chức năng thực hiện tìm kiếm regex mà bạn muốn và thêm nó vào .vimrc của bạn.
  • Một số sự kết hợp của các bên trên
14

Đặt:

source ~/.regexlist.vim 

vào vimrc của bạn.

Thực hiện tìm kiếm. Quyết định bạn có thể muốn sử dụng lại một lần nữa. Loại này theo nghĩa đen:

:sp ~/.regexlist.vim<CR> 
olet MyRegExName = '<C-R>/'<ESC> 
:w<CR> 
:so %<CR> 
:q<CR> 

đâu <C-R>CtrlR, <CR>ENTER<ESC>ESC.

Tiếp theo thời gian bạn muốn sử dụng nó:

/<C-R>=MyRegExName<CR><CR> 

Ctrl-R là bạn của bạn! Ctrl-R theo sau bởi/kéo lên tìm kiếm cuối cùng. Ctrl-R theo sau = cho phép bạn nhập một biểu thức.

0

Tạo tệp nơi bạn dự định lưu trữ các mẫu regex của mình và tiếp tục mở tệp này trong tab hoặc cửa sổ riêng biệt khi bạn xem qua tệp nhật ký của mình.

Để thêm một mô hình tìm kiếm mà bạn chỉ được sử dụng để tập tin của bạn, gõ theo nghĩa đen:

o<CTRL-R>/ 

Khi bạn cần phải sử dụng một mô hình ra khỏi danh sách của bạn, di chuyển đến dòng đó và gõ theo nghĩa đen:

yyq/p<CR> 

Sau đó, bạn có thể chuyển tab/cửa sổ và sau đó nhấn n hoặc N để tìm kiếm.

Các vấn đề liên quan