자동화

MySprtlty·2022년 7월 5일
0

vim

목록 보기
20/21
post-thumbnail

🏷️자동화

📌Key Mapping (단축키, shortcuts)

  • 특정 키가 눌릴 때, 미리 설정한 기능을 호출하도록 하는 것이다.

  • 약어 매크로는 입력 모드와 명령행 모드에서만 사용 가능하지만, 키 매핑은 모든 모드에서 사용할 수 있다.

  • 옵션처럼 단축키를 설정할 때 .vimrc에 추가해서 사용하면, vim을 실행할 때 자동으로 설정이 반영된다.

  • 키 맵핑을 설정하는 명령어는 다음과 같다.

    명령어설명
    nmap key commandnormal mode에서 key를 누르면 command가 실행된다.
    imap key commandinsert mode에서 key를 누르면 command가 실행된다.
    vmap key commandvisual mode에서 key를 누르면 command가 실행된다.
    cmap key commandcommand line mode에서 key를 누르면 command가 실행된다.
  • 🔍ex)

    • nmap <F2> :up<CR>
      • namp <F2>일반 모드에서 F2키를 눌렀을 때의 단축키를 설정한다는 뜻이다.
      • :up<CR>F2를 눌렀을 때 실행되는 명령이다.
  • 키 맵핑 해제하는 방법은 각 명령의 map 대신 unmap을 입력하는 것이다.

    명령어
    nunmap
    iunmap
    vunmap
    cunmap

📌자동 명령

  • 특정 파일을 열거나 저장하는 이벤트가 발생할 때, 사용자가 지정한 명령을 자동으로 수행시키는 기능이다.

  • autocmd라는 명령으로 자동 명령을 .vimrc에 설정해 놓으면 된다.

  • autocmd는 약어로 au로 사용한다.

  • 이 때 명령의 format은 다음과 같다.

    • autocmd {Event1},{Event2} {Filetype1},{FileType2} {동작1}|{동작2}
      • {Event}{FileType},로 구분한다.
      • 여러 명령을 실행하는 경우 | (수직바)로 구분한다.
  • 명령의 예시는 다음과 같다.

    • au BufRead,BufNewFile *.txt colo evening
      • .txt 파일을 읽거나 새로 만들 때 colo evening 명령을 자동으로 실행하라는 뜻이다.
  • au명령의 두 번째 인수인 파일과 관련된 주요 이벤트는 다음과 같다.

    이벤트설명
    BufNewFile파일을 새로 생성했을 때
    BufRead파일을 읽었을 때
    BufWrite파일을 저장했을 때
    SwapExists스왑 파일이 이미 존재하는 경우
  • 파일 형식을 구분할 수 있는 이벤트가 있다.

    이벤트설명
    FileType다음에 나오는 인자인 {FileType}을 확인하여 자동 명령을 실행하는 이벤트
    • 🔍ex) 이를 이용해 C++ 파일의 확장자를 지정하는 명령은 다음과 같다.
      • au FileType cpp colo state
        • au BufRead,BufNewFile *.cpp,*.cc,*.cxx colo state처럼 하는 것보다 훨씬 효율적이다.
        • 🖇️cf) C++ 파일의 확장자의 종류는 꽤 많다.

0개의 댓글