search 자바스크립트 - Vim에서 대소 문자를 구별하지 않는 방법




체크 대문자 (12)

대문자 단어 (예 : COPYRIGHT)를 파일에서 검색하고 싶습니다. 나는 다음과 같은 검색을 시도했다.

/copyright/i    # Doesn't work

하지만 작동하지 않습니다. 나는 Perl에서 i 플래그를 정규 표현식에 넣으면 정규 표현식을 대소 문자를 구별하지 않는 정규 표현식으로 바꾼다는 것을 알고있다. Vim은 대소 문자를 구별하지 않는 정규 표현식을 나타내는 자체 방식을 가지고있는 것으로 보입니다.


Answers

좋은 오래된 vim[grep] 명령 ..

:vimgrep /example\c/ &
  • 대소 문자를 구별하지 않으려면 \ c
  • 대소 문자를 구분하려면 \ C
  • % 는 현재 버퍼에서 검색하는 것입니다.


대 / 소문자를 구분하는 검색과 구분하지 않는 검색간에 전환하려면 내 .vimrc에서이 매핑을 사용합니다.

nmap <F9> :set ignorecase! ignorecase?


\c 이스케이프 시퀀스를 사용해야합니다. 그래서:

/\ccopyright

역함수 (대소 문자를 구분 하는)를하려면 \C 대신 사용하십시오.


@huyz 언급은 때로는 원하는 동작이 대소 문자를 구분하지 않고 대 / 소문자를 구별하는 대용을 사용한다는 것을 언급합니다. 내 솔루션 :

nnoremap / /\c
nnoremap ? ?\c

그걸로 항상 / 아니면 때렸 ? 대소 문자를 구별하지 않으려면 \c 를 추가합니다.


Vim에서 검색하기 전에 ic 옵션을 설정할 수 있습니다.

:set ic

대 / 소문자를 구분하는 검색으로 돌아가려면 다음을 사용하십시오.

:set noic

icignorecase 약어입니다.


이 명령을 vimrc 파일에 넣으십시오.

set ic 

항상 대소 문자를 구분하지 않는 검색


명령을 실행할 수 있습니다.

:set ignorecase

그 후에는 검색에서 대소 문자를 구별하지 않습니다.


다른 사람들이 제안했듯이 :

:set ic

하지만 멋진 기능은 다음과 같은 모드로 전환 할 수 있습니다.

:set ic!

나는 검색 문자열의 끝에 \c 를 사용하는 것을 선호한다 :

/copyright\c

\cignorecase 대한 제안뿐만 아니라 smartcase 매우 유용하다는 것을 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'

vimrc 에서 다음 명령을 사용할 수 있습니다 :

  • set ignorecase - 모든 검색은 대소 문자를 구별하지 않습니다.
  • set smartcase - 대문자가 포함 된 검색은 대소 문자를 구분합니다.

smartcase 제공하는 것을 사용하려면 ignorecase 를 설정해야합니다.

필자는 최근 에 Vim 검색 명령대한 기사를 작성 했습니다 (명령 및 최상의 플러그인을 사용하여 효율적으로 검색 할 수 있음).


위의 아담 샐스 (Aam Sills)의 대답을 기반으로 - Contains ...에 대한 멋진 확장 방법이 있습니다.

///----------------------------------------------------------------------
/// <summary>
/// Determines whether the specified list contains the matching string value
/// </summary>
/// <param name="list">The list.</param>
/// <param name="value">The value to match.</param>
/// <param name="ignoreCase">if set to <c>true</c> the case is ignored.</param>
/// <returns>
///   <c>true</c> if the specified list contais the matching string; otherwise, <c>false</c>.
/// </returns>
///----------------------------------------------------------------------
public static bool Contains(this List<string> list, string value, bool ignoreCase = false)
{
    return ignoreCase ?
        list.Any(s => s.Equals(value, StringComparison.OrdinalIgnoreCase)) :
        list.Contains(value);
}




search vim case-insensitive