2019 - 03 - 26 Vim 에서 찾기 및 교체

5237 단어
자꾸 Vim 에서 찾 을 수 있 냐 고 물 어 봐 요. 그럼요!그것 도 엄 청 난 검색!이 글 은 Vim 에서 관련 설정 과 사용 방법 을 찾 는 것 을 상세 하 게 소개 한다.찾기 와 교체, 커서 가 있 는 단어 찾기, 밝 은 전망 / 배경 색 찾기, 밝 은 상태 전환, 대소 문자 민감 한 찾기 등 을 포함한다.
찾다
normal 모드 에서 / 을 누 르 면 검색 모드 에 들 어 갈 수 있 습 니 다. 찾 을 문자열 을 입력 하고 리 턴 을 누 르 십시오.Vim 은 첫 번 째 매 칭 으로 이동 합 니 다.누 르 고 n 다음 을 찾 고 N 누 르 고 이전 을 찾 습 니 다.
Vim 은 정규 표현 식 을 지원 합 니 다. 예 를 들 어 /vim$ 줄 끝 에 일치 하 는 "vim" 을 찾 습 니 다.특수 문 자 를 찾 으 려 면 전의 가 필요 합 니 다. 예 를 들 어 /vim\$ 일치 "vim$".
되 돌아 오 는 차 를 찾 으 려 면
사용 해 야 하고, 되 돌아 오 는 차 로 바 꾸 려 면 \r 사용 해 야 한다.
대소 문자 민감 검색
검색 모드 에 대소 문자 가 민감 하지 않 음 을 표시 하고 대소 문자 가 민감 하지 않 음 을 표시 합 니 다. \c 대소 문자 가 민감 한 검색 을 표시 합 니 다.예 를 들 면:
/foo\c


모든 \C, "foo", "FOO" 등의 문자열 을 찾 을 수 있 습 니 다.
대소 문자 민감 설정
Vim 은 기본적으로 대소 문자 민감 한 검색 을 사용 합 니 다. 편리 하도록 대소 문자 민감 하지 않 은 것 으로 설정 합 니 다.
"               
set ignorecase
"          ,           
set smartcase 


위 설정 을 당신 의 "Foo" 에 붙 여 넣 고 Vim 을 다시 열 면 유효 합 니 다.
현재 단어 찾기
normal 모드 에서 ~/.vimrc 을 누 르 면 커서 가 있 는 단어 (word) 를 찾 을 수 있 습 니 다. 매번 나타 나 는 앞 뒤 가 공백 문자 나 문장 부 호 를 요구 합 니 다.예 를 들 어 현재 *foo 중의 foo bar 와 일치 할 수 있 으 나 foo 중의 foobar 와 일치 할 수 없다.이것 은 함수 명, 변수 명 을 찾 을 때 매우 유용 하 다.foo 을 누 르 면 커서 가 있 는 단어의 문자 순 서 를 찾 을 수 있 고 앞 뒤 문자 가 나타 날 때마다 요구 하지 않 습 니 다.즉 g*foo bar 중의 foobar 가 모두 일치 할 수 있다.
찾기 및 교체foo (substitute) 명령 은 문자열 을 찾 고 바 꾸 는 데 사 용 됩 니 다.문법 은 다음 과 같다.
:{    }s/{  }/{  }/{    }


예 를 들 어 :s 는 전체 범위 :%s/foo/bar/g 에서 찾기 % 를 찾 고 foo 로 교체 되 며 모든 출현 은 교체 된다 bar.
작용 범위
역할 범 위 는 현재 줄, 전문, 선택 구역 등 으로 나 뉜 다.
현재 줄:
:s/foo/bar/g


전체 텍스트:
:%s/foo/bar/g


선택 영역 은 Visual 모드 에서 영역 을 선택 한 후 입력 g 하면 Vim 이 자동 으로 : 으로 보 완 됩 니 다.
:'s/foo/bar/g


2 - 11 줄:
:5,12s/foo/bar/g


현재 줄 :' 과 다음 두 줄 .:
:.,+2s/foo/bar/g


표지 바 꾸 기
앞에서 명령 한 끝 +2 은 바로 교체 표지 중 하나 로 전체 g 의 교체 (즉, 목표 의 모든 출현) 를 나타 낸다.다른 유용 한 교체 표지 도 많이 있 습 니 다.
빈 바 꾸 기 표 지 는 커서 위치 에서 만 바 꾸 는 것 을 표시 합 니 다. 목표 의 첫 번 째 출현:
:%s/foo/bar

global 대소 문자 가 민감 하지 않 음 을 나타 내 고 i 대소 문자 가 민감 함 을 나타 낸다.
:%s/foo/bar/i


모드 의 \ c (민감 하지 않 음) 또는 \ C (민감 하지 않 음) 와 같 습 니 다.
:%s/foo\c/bar I 확인 이 필요 하 다 고 밝 혔 습 니 다. 예 를 들 어 전체 검색 c"foo" 으로 바 뀌 었 고 확인 이 필요 합 니 다.
:%s/foo/bar/gc


돌아 오 면 Vim 은 커서 를 매번 "bar" 나타 나 는 위치 로 이동 시 키 고 알려 줍 니 다.
replace with bar (y/n/a/q/l/^E/^Y)?


누 르 면 "foo" 교 체 를 표시 하고 y 교 체 를 표시 하 며 n 모든 것 을 교체 하 는 것 을 표시 하고 a 검색 모드 를 종료 하 는 것 을 표시 하 며 q 현재 위 치 를 교체 하고 종료 하 는 것 을 표시 합 니 다.l^E 커서 이동 단축 키 입 니 다.
하 이 라이트 설정
하 이 라이트 색상 설정
나 처럼 하 이 라이트 색상 이 불편 하 다 면 ^Y 에서 설정 할 수 있 습 니 다.
highlight Search ctermbg=yellow ctermfg=black 
highlight IncSearch ctermbg=black ctermfg=yellow 
highlight MatchParen cterm=underline ctermbg=NONE ctermfg=NONE


위 설정 에서 지정 한 Search 결과 의 전경 색 (foreground) 은 검은색 이 고 배경 색 (background) 은 회색 입 니 다.점진 적 검색 의 전경 치 는 검은색 이 고 배경 색 은 노란색 입 니 다.커서 의 문자 에 밑줄 을 치다.
하 이 라 이 트 를 사용 하지 않 거나 사용 하기
바 꿀 때마다 Vim 이 검색 결 과 를 밝 히 고 있다 고 생각 하 는 나무 가 있 습 니까?하 이 라 이 트 를 수 동 으로 멈 추고 normal 모드 에서 입력 할 수 있 습 니 다.
:nohighlight
"    
:nohl


사실 이 명령 은 모든 하 이 라 이 트 를 사용 하지 않 고 하 이 라 이 트 를 검색 하 는 명령 만 사용 하지 않 습 니 다 ~/.vimrc.다음 검색 시 :set nohlsearch 검색 하 이 라 이 트 를 다시 시작 해 야 합 니 다.
사용 하지 않 음
어떻게 Vim 이 검색 / 교체 후 일정 시간 동안 하 이 라 이 트 를 자동 으로 취소 하고 검색 이 발생 하면 자동 으로 열 릴 수 있 습 니까?
"             ,     
autocmd cursorhold * set nohlsearch
"         ,     
noremap n :set hlsearchn
noremap N :set hlsearchN
noremap / :set hlsearch/
noremap ? :set hlsearch?
noremap * *:set hlsearch


위 설정 을 :set hlsearch 에 붙 여 넣 고 vim 을 다시 열 면 유효 합 니 다.
원 클릭 비활성화
검색 하 이 라 이 트 를 사용 하지 않 는 것 이 불편 하 다 면 단축 키 를 설정 하여 검색 하 이 라 이 트 를 사용 하지 않 거나 열 수 있 습 니 다.
noremap n :set hlsearchn
noremap N :set hlsearchN
noremap / :set hlsearch/
noremap ? :set hlsearch?
noremap * *:set hlsearch

nnoremap  :call DisableHighlight()
function! DisableHighlight()
    set nohlsearch
endfunc


하 이 라 이 트 를 닫 으 려 면 누 르 기만 하면 됩 니 다 ~/.vimrc. 다음 검색 이 발생 하면 자동 으로 사 용 됩 니 다.

좋은 웹페이지 즐겨찾기