파일에서 COPYRIGHT와 같이 대문자를 검색하고 싶습니다. 다음과 같은 검색을 시도했습니다.
/copyright/i # Doesn't work
하지만 작동하지 않습니다. Perl에서 i
플래그를 정규식으로 지정하면 정규식이 대소문자를 구분하지 않는 정규식으로 바뀝니다. Vim에는 대소문자를 구분하지 않는 정규식을 나타내는 고유한 방법이 있는 것 같습니다.
질문자 :Haiyuan Zhang
파일에서 COPYRIGHT와 같이 대문자를 검색하고 싶습니다. 다음과 같은 검색을 시도했습니다.
/copyright/i # Doesn't work
하지만 작동하지 않습니다. Perl에서 i
플래그를 정규식으로 지정하면 정규식이 대소문자를 구분하지 않는 정규식으로 바뀝니다. Vim에는 대소문자를 구분하지 않는 정규식을 나타내는 고유한 방법이 있는 것 같습니다.
패턴의 어느 곳에서나 \c
이스케이프 시퀀스를 사용할 수 있습니다. 예를 들어:
/\ccopyright
또는 /copyright\c
또는 /copyri\cght
역(대소문자 구분 일치) \C
(대문자 C)를 사용하십시오.
\c
및 ignorecase
대한 제안과 함께 smartcase
매우 유용하다는 것을 알았습니다. 대문자가 포함된 항목을 검색하면 대소문자를 구분하여 검색합니다. 순전히 소문자를 검색하는 경우 대소문자를 구분하지 않는 검색을 수행합니다. \c
및 \C
를 사용하여 이를 재정의할 수 있습니다.
:set ignorecase :set smartcase /copyright " Case insensitive /Copyright " Case sensitive /copyright\C " Case sensitive /Copyright\c " Case insensitive
보다:
:help /\c :help /\C :help 'smartcase'
검색하기 전에 Vim ic
옵션을 설정할 수 있습니다.
:set ic
대소문자 구분 검색으로 돌아가려면 다음을 사용하십시오.
:set noic
ic
ignorecase
줄임말입니다.
명령을 내릴 수 있습니다
:set ignorecase
그 후에는 검색에서 대소문자를 구분하지 않습니다.
대소문자를 구분하는 검색과 구분하지 않는 검색 간에 전환하려면 .vimrc에서 이 매핑을 사용합니다.
nmap <F9> :set ignorecase! ignorecase?
vimrc
에서 다음 명령을 사용할 수 있습니다.
set ignorecase
- 모든 검색은 대소문자를 구분하지 않습니다.set smartcase
- 대문자가 포함된 경우 검색이 대소문자를 구분합니다. smartcase
제공하는 것을 사용하려면 ignorecase
를 설정해야 합니다.
최근 에 Vim 검색 명령에 대한 기사를 작성했습니다 (내장 명령과 효율적인 검색을 위한 최고의 플러그인 모두).
다른 사람들이 제안한 대로:
:set ic
그러나 멋진 점은 다음을 사용하여 이러한 모드를 전환할 수 있다는 것입니다.
:set ic!
이 명령을 vimrc 파일에 넣으십시오.
set ic
항상 대소문자를 구분하지 않는 검색 수행
검색 문자열 끝에 \c
를 사용하는 것을 선호합니다.
/copyright\c
@huyz가 때때로 언급했듯이 원하는 동작은 대소문자를 구분하지 않는 검색을 사용하지만 대소문자를 구분하는 대체를 사용하는 것입니다. 이에 대한 내 솔루션:
nnoremap / /\c nnoremap ? ?\c
당신이 칠 때 항상 그것으로 /
또는 ?
대소문자를 구분하지 않는 검색을 위해 \c
를 추가합니다.
기본적으로 vi의 모든 검색은 대소문자를 구분합니다. 대소문자를 구분하지 않고 검색하려면 명령 모드(Escape 키를 누름)로 이동하고 다음을 입력합니다.
:set ignorecase
:set ic
을 약어로 입력할 수도 있습니다.
대소문자 구분 모드로 다시 변경하려면 다음을 입력하십시오.
:set noignorecase
또는 :set noic
명령 모드
Vim에는 2가지 모드가 있습니다.
1.편집 모드
검색은 일반 모드에서 작동합니다.
/\c 대소문자 구분
/\c 검색
ignorecase
를 설정할 수 있습니다. 쉘에서 실행하십시오.
echo "set ic" >> ~/.vimrc
아래에 언급된 것처럼 vim 명령에 대해 더 알고 싶다면 다음 단계를 시도해 볼 수 있습니다.
:help ignorecase
:q
제공된 정보가 누군가에게 도움이 되기를 진심으로 바랍니다.
친애하는,
패턴의 어느 곳에서나 \c 이스케이프 시퀀스를 사용할 수 있습니다.
정규식 패턴에서 수정자를 배치할 위치에 차이가 없다는 허용된 답변에 관계없이 실제로 중요한 것처럼 보입니다.
예제 텍스트:
asdasdasdasdasd wiktor asdasdasdasd adasdasdasd wiktor asdasda ahjkjlkhjkl asdasd asd asdasdasdasd iuuuu - asdjkkkkkkkaopbsdasda wiktor ----(---------------------)--
\c^.*A?.*$
^\c.*A?.*$
^.*\cA?.*$
^.*A\c?.*$
^.\c*A?.*$
^.*A?\c.*$
^.*A?.\c*$
^.*A?.*$\c
vim -version
VIM - Vi IMproved 8.2(2019년 12월 12일, 컴파일 2020년 6월 1일 06:42:35) 포함된 패치: 1-869출처 : http:www.stackoverflow.com/questions/2287440/how-to-do-case-insensitive-search-in-vim
파일에 어떻게 추가합니까? (0) | 2022.01.02 |
---|---|
디렉토리의 모든 코드 줄을 재귀적으로 어떻게 계산할 수 있습니까? (0) | 2022.01.02 |
Git에서 로컬 커밋 버리기 (0) | 2022.01.02 |
C#에서 두 개의 물음표가 함께 의미하는 것은 무엇입니까? (0) | 2022.01.02 |
목록 항목의 발생 횟수를 어떻게 계산합니까? (0) | 2022.01.02 |