• 매번 잊어버려서 참고할 장소를 만들었다

Tip 1. hightlight search 끄기

  • #hightlight, #unimpared

문제 상황

  • vim에서 특정 단어 위에서 *을 하거나 serach를 하게되면 찾은단어에 highlight 색상이 표기된다.
  • 찾은 목적이 완료된 뒤에 highlight가 너무 눈에 튀어 끄고 싶을 때 어떻게 하지?

관련 링크

plugin이 설치되지 않은 vim에서의 해결책

  • 다음번 서치까지 highlight를 끄고자 할 때
    1
    
    :noh
    
  • hightlight 기능을 완전히 끄고 싶을 때
    1
    
    set nohlsearch
    
  • 토글하려면 ( F3 키에 할당한 예제 )
    1
    2
    
    set hlsearch!
    nnoremap <F3> :set hlsearch!<CR>
    

plugin이 설치된 상태일때

  • 관련 답변 링크: there are two must have plugins for this:
  • 나는 unimpared를 설치했기 때문에…
    • [oh - :set hlsearch
    • ]oh - :set nohlsearch
    • yoh - hlsearch 토글 ( 위 답변에는 coh로 되어있지만, 최근 버전에서 댓글과 같이 yoh로 변경됨 )

Tip 2. Blank line (빈 줄)간에 이동하고 싶을 때는 어떻게 ?

문제 상황

  • 여러 Paragraph로 나뉜 함수 바디를 한덩이로 뭉쳐 선택해서 옮기고 싶다.
    • 그러러면, 함수 바디 내에서 blank line 사이를 뛰어 다니며 제거 해야 하는데..
    • 빈 줄에서 빈 줄로 뛰는 vim 명령은?
  • 한덩이로 뭉쳐있으면 vip 명령으로 쉽게 선택하고 마음대로 할 수 있는데..

관련 링크

해결책

  • { : paragraphs backward
  • } : paragraphs forward

Tip 3. vim help 사용방법

문제 상황

  • vim help안에서 navigation 하는 방법을 많이 까먹는다

관련 링크

해결책

help 진입및 탈출 방법

  • 명령줄에서 :help를 입력
    • 별도 창이 horizontal로 열리면서 커서 이동
    • :q 명령으로 창도 닫고 원래 편집점으로 이동
    • :help 대신 :h으로 해도 동작한다
  • 명령줄에서 :help pattern으로 특정 토픽으로 이동
    • 플러그인 설명을 보고 싶으면 pattern에 플러그인 이름을 넣는다
    • :help pattern 대신 :h pattern으로 해도 동작한다
  • /quick을 type 하면 “quickref” 링크를 search한다
  • 해당 링크위에서 Ctrl + ]를 클릭하면 quickref 토픽으로 이동한다
  • 해당 토픽을 모두 리뷰한 뒤, Ctrl + t를 클릭하면 이전 토픽으로 복귀한다
  • Ctrl + o를 눌러서 help history 상의 older location으로..
  • Ctrl + i를 눌러서 help history 상의 newer location으로 이동할 수 있다

help 검색

  • 기본적인 검색은 / 명령으로 일반 파일에서 검색하듯이 검색하면 된다
  • :helpgrep 명령으로 모든 help 파일을 검색할수 있다
    • 예를 들면
      1
      
      :helpgrep \csearch.\{,12}file
      
      • \c 는 pattern에 대해 case insensitvie 옵션을 선택함을 의미한다
      • 위 패턴은 “search”를 찾은 후 12 문자 이내에 “file”이 따라오는 패턴을 찾는것이다
    • 결과가 나온 이후에 다음 명령으로 결과간 navigation이 가능하다
      • :cnext : 다음 매칭 결과
      • :cprev : 이전 매칭 결과
      • :cnfile : 다음 파일의 매칭 결과
      • :cpfile : 이전 파일의 매칭 결과
      • :cfirst : 첫번째 매칭 결과
      • :clast : 마지막 매칭 결과
      • :cc : 헬프파일 브라우징중에 현재 매칭 결과 링크로 복귀
      • :copen : 모든 매칭 결과의 링크를 별도 창으로 띄움 ( 해당 창을 네이비게이션 하면서 링크에서 엔터하면 별도 헬프창을 띄움)

Context

  • 찾고 싶은 토픽별로 사용하는 기호가 있다

    prefix Example Context
    ∶h ∶r ex 명령1(colon으로) 에 대한 help를 찾고 싶을 때
    none ∶h r normal mode
    v_ ∶h v_r visula mode 관련 토픽
    i_ ∶h i_ctrl-w insert mode 관련 토픽
    c_ ∶h c_ctrl-r ex 명령줄 관련 토픽
    / ∶h /\r 찾는 패턴 (이 경우엔 ∶h \r 또한 동작함)
    ' ∶h 'ro' option 관련 토픽
    - ∶h -r (Vim 을 시작할때) Vim argument 관련 토픽
  • 가끔 특정 control key가 Vim에서 어떤 의미를 가지는지 알고 싶을 때가 있다

    • 예를 들면, “ctrl-r”을 포함하는 모든 help 토픽을 보려고 할 때
    • :h ctrl-r을 type하고 Ctrl + d를 누른다
    • 아래 표는 서로 다른 context에서 다양한 key를 누를때의 help를 보여준다

      Example Help for key
      ∶h ctrl-r Ctrl-R in normal mode
      ∶h i_ctrl-r Ctrl-R in insert mode
      ∶h c_ctrl-r Ctrl-R in command mode
      ∶h v_ctrl-v Ctrl-V in visual mode

Tip 4. 여러줄 앞에 동일한 문구를 넣고 싶을 때

vim multi cursor

  1. 커서를 맨 첫번째 줄 첫번째 컬럼에 둔다
  2. visula block mode로 들어간다 ( ctrl+v)
  3. Relative Line number를 이용하여 커서를 목표지점까지 내린다 ( 3j)
  4. 대문자 I를 누른다
  5. 넣고싶은 문구를 넣는다. ( 화면에서는 첫줄만 바뀌지만 다음단계에서 ‘Esc’를 누르면 전체 반영된다)
  6. Esc를 누른다

Tip 5. gVim에서 menu & toolbar를 숨기고 싶을 때

vim menu toolbar

1
2
3
:set go-=m  "menu bar 
:set go-=T  "toolbar 
:set go-=r  "scrollbar 
  • ‘go’는 ‘guioptions’ 의 abbreviation이다
  • 다시 보이고 싶으면 ‘-=’를 ‘+=’로 변경한다

Tip 6. 문서에서 공백문자를 보고 싶을 때


  1. colon으로 시작하는 명령