Câu hỏi Làm thế nào để làm trường hợp tìm kiếm không nhạy cảm trong Vim


Tôi muốn tìm kiếm một từ chữ hoa, ví dụ COPYRIGHT trong một tập tin. Tôi đã thử thực hiện tìm kiếm như:

/copyright/i    # Doesn't work

nhưng nó không hoạt động. Tôi biết rằng trong Perl, nếu tôi cho i gắn cờ vào một regex nó sẽ biến regex thành một regex phân biệt chữ hoa chữ thường. Có vẻ như Vim có cách riêng để chỉ ra một regex phân biệt chữ hoa chữ thường.


1339
2018-02-18 09:17


gốc




Các câu trả lời:


Bạn cần sử dụng \c trình tự thoát. Vì thế:

/\ccopyright

Để làm ngược lại (trường hợp nhạy cảm phù hợp), sử dụng \C thay thế.


1679
2018-02-18 09:18



Cũng thế, \c có thể xuất hiện ở bất kỳ đâu trong mẫu, vì vậy nếu bạn nhập một mẫu và sau đó quyết định bạn muốn tìm kiếm phân biệt chữ hoa chữ thường, chỉ cần thêm \c cuối cùng. - Alok Singhal
Tôi muốn thêm set ignorecase để tìm kiếm phân biệt chữ hoa chữ thường trong vimrc của tôi và tôi có thể sử dụng \C để thực hiện tìm kiếm phân biệt chữ hoa chữ thường giống như những gì @AlokSinghal đã đề cập. - Nick McCurdy
Cũng có set smartcase sẽ tự động chuyển sang tìm kiếm phân biệt chữ hoa chữ thường nếu bạn sử dụng bất kỳ chữ cái viết hoa nào. - Zaz
Chỉ muốn thêm vào bình luận của Zaz. set smartcase chỉ áp dụng khi set ignorecase đã hoạt động. Tôi đã bối rối về điều này trong một thời gian. Xem Mẹo Vim. - Tan Wang
@coderMe, Đó là cách viết hoa, \c đấu với \C - Aaron McDaid


Cũng như các đề xuất cho \c và ignorecase, Tôi tìm thấy smartcase rất hữu dụng. Nếu bạn tìm kiếm một cái gì đó có chứa chữ hoa, nó sẽ làm một tìm kiếm trường hợp nhạy cảm; nếu bạn tìm kiếm một cái gì đó hoàn toàn bằng chữ thường, nó sẽ làm một tìm kiếm không phân biệt chữ hoa chữ thường. Bạn có thể dùng \c và \C để ghi đè điều này:

:set ignorecase
:set smartcase
/copyright      " Case insensitive
/Copyright      " Case sensitive
/copyright\C    " Case sensitive
/Copyright\c    " Case insensitive

Xem:

:help /\c
:help /\C
:help 'smartcase'

568
2018-02-18 12:11



Vấn đề với ignorecase là nó ảnh hưởng đến thay thế cũng như tìm kiếm. Tôi thấy rằng nó có ý nghĩa để có (thông minh) tìm kiếm không phân biệt chữ hoa chữ thường nhưng thay thế trường hợp nhạy cảm theo mặc định. Nhưng không có cách nào để làm điều đó mà tôi biết. - huyz
Đáng chú ý là cho smartcase để làm việc, bạn cũng cần set ignorecase. Mẹo tuyệt vời mặc dù, cảm ơn! - Skilldrick
Tôi tin rằng bạn chỉ có thể sử dụng \ C trong biểu thức tìm kiếm của mình để thay thế, như sau: :%s/lowercasesearch\C/replaceString/g. Điều này không tạo ra chức năng mặc định mà bạn mong muốn, nhưng nó cho phép bạn ép buộc trường hợp nhạy cảm cho các thay thế trong khi vẫn được hưởng lợi từ smartcase khi tìm kiếm. - Anthony DiSanti
Bạn cũng có thể đặt I cờ thay thế để buộc mẫu phân biệt chữ hoa chữ thường. Như :%s/lowercasesearch/replaceString/gI. - Rory O'Kane
Lưu ý từ trang trợ giúp (hữu ích nếu bạn bị "*" nghiện như tôi): After "*" and "#" you can make 'smartcase' used by doing a "/" command, recalling the search pattern from history and hitting <Enter>. - mcella


Bạn có thể đặt ic trong Vim trước khi tìm kiếm:

:set ic

Để quay lại tìm kiếm phân biệt chữ hoa chữ thường, hãy sử dụng:

:set noic

ic là viết tắt của ignorecase


238
2018-02-18 09:18





Bạn có thể ra lệnh

:set ignorecase

và sau đó tìm kiếm của bạn sẽ phân biệt chữ hoa chữ thường.


49
2018-02-18 09:19





Để chuyển đổi giữa tìm kiếm trường hợp nhạy cảm và không nhạy cảm, tôi sử dụng ánh xạ này trong .vimrc của tôi

nmap <F9> :set ignorecase! ignorecase?


41
2018-02-23 11:51



Chỉ :set ignorecase! nên làm việc tốt. - Chris Down
Đúng nhưng ignorecase? cho bạn thấy trạng thái hiện tại của lá cờ. (trong dòng lệnh) - Boris Brodski


đặt lệnh này trong tệp vimrc của bạn

set ic 

luôn tìm kiếm phân biệt chữ hoa chữ thường


15
2018-05-19 10:31



Tôi không biết tại sao nhưng vim của tôi được thiết lập để phân biệt dạng chữ theo mặc định, để chống lại điều này. sử dụng set noic. - user1510539


Cũ tốt vim[grep] chỉ huy..

:vimgrep /example\c/ &
  • \ c cho trường hợp không nhạy cảm
  • \ C cho trường hợp nhạy cảm
  • % là tìm kiếm trong bộ đệm hiện tại

enter image description here


10
2017-11-18 01:18



Cannot open file "&" - Vitaly Zdanevich


Như những người khác đã đề xuất:

:set ic

Nhưng những thứ tuyệt vời Bạn có thể chuyển đổi các chế độ như vậy với:

:set ic!

8
2018-01-19 09:34





Như @huyz đề cập đến đôi khi hành vi mong muốn là sử dụng tìm kiếm phân biệt chữ hoa chữ thường nhưng thay thế trường hợp nhạy cảm. Giải pháp của tôi cho điều đó:

nnoremap / /\c
nnoremap ? ?\c

Với điều đó luôn luôn khi bạn nhấn / hoặc là ? nó sẽ thêm \c cho tìm kiếm phân biệt chữ hoa chữ thường.


6
2018-02-12 09:58



Không phải là một gợi ý xấu, nhưng nó có ngăn cản bạn sử dụng smartcase Tùy chọn? - Trebor Rude
Có vẻ như nó sẽ bị \ n ghi đè smartcase - Matthew Woo


Tôi thích sử dụng \c ở cuối chuỗi tìm kiếm:

/copyright\c

5
2018-06-15 01:54