본문 바로가기
AI 개발 팁

[Vim] Terminal shell의 사용 : Vim keynote

by Tae_bbang 2021. 8. 1.

Terminal Shell에서 코드 작업은 어떻게 할까요?

여러 편집기(editor)들이 있지만, 가장 대중적인 것은 vim입니다.

 

 

Linux의 대표적인 편집기인 vi와 호환되는 텍스트 편집기입니다.!

 

Vim은 "vim filename" or "vi filename"을 통해 파일의 내부 내용을 수정할 수 있습니다.

파일을 당장 수정할 수 있는 것은 아닙니다. Vim은 사용하면 여러개의 모드를 가지고 있기 때문입니다.

  • 명령 모드(Command mode, 일반모드) : 입력하는 모든 키는 명령으로 수행한다.
  • 명령줄 모드(Command Line mode) : 화면 하단에 :(콜론) 프롬포트에 명령문장을 입력하거나 /프롬포트에 단어를 입력한다.
  • 입력 모드(Insert mode, 편집모드) : 입력을 기반으로 문서의 내용을 작성한다.
  • 비주얼 모드(Visual mode, 선택모드)

모드의 변경은 아래처럼 하면 됩니다.

Command mode -> Command Line mode

:(클론)

Command mode -> Insert mode

i (아래의 keynote 참고)

Insert mode -> Command mode

Esc

Command Line mode -> Command mode

Esc

 

그렇다면, Command mode에서 우리가 사용할 수 있는 keynote들은 무엇이 있을까요?

Keynotes for vi

커서 이동

  • j - 한 칸 아래로 이동.
  • k - 한 칸 위로 이동.
  • h - 한 칸 왼쪽으로 이동.
  • l - 한 칸 오른쪽으로 이동.
  • w - 한 단어만큼 앞쪽으로 전진 (앞쪽: 문서를 써나가는 방향)
  • b - 한 단어만큼 뒤쪽으로 전진 (w의 반대)
  • 0 - (숫자 0)  현재 줄의 시작지점으로 점프
  • $ - 현재 줄의 끝 지점으로 점프
  • ^ - 현재 줄에서 공백이 아닌 첫 글자로 점프.
  • gg - 파일의 맨 첫줄로 점프
  • G - (shift + g) 파일의 맨 끝으로 점프
  • 숫자G - 해당 번호의 행으로 점프
  • ^f - (ctrl+f) 다음 페이지로 이동. 특히 도움말을 볼 때 유용함.
  • ^b - 이전 페이지로 이동.
  • 숫자와 함께 명령어를 사용가능함. 예,  8h or 8j … 

삭제

  • x - 커서가 위치한 곳의 글자 지움.
  • d h - 커서가 위치한 곳에서 부터 한칸 앞쪽으로 지운다. delete + h 인 셈.
  • d j - 현재 줄을 포함하여 다음 줄까지 2줄을 지우게 된다.
  • d d - 현재 줄을 지움.

고치기

  • r - 현재 커서 위치ㅔ서 한 글자만 바꿈.
  • R - 수정모드가 되어 ESC를 누를 때까지 현재 줄의 내용을 수정함.
  • c - 이동 명령과 결합하여 한 글자를 지우고 입력모드가 된다.
  • s - 한글자만 지우고 입력.
  • S - 줄 전체를 새로 씀. 

복사 & 붙이기

  • y - 복사 시작.
  • y w - 단어 복사.
  • y $ - 현재 줄의 끝까지 복사.
  • p - 붙여 넣기. 줄을 복사한 경우, 바로 아래쪽에 줄이 붙음. 삭제로 지운것들 역시 메모리에 저장되어 있어 오려두기의 역할.

되돌리기

  • u - 한 번의 변경을 되돌릴 수 있음.
  • U - 한 줄에 대해 변경사항을 모두 되돌림.
  • ^r - (ctrl + r) 되돌린 내용을 다시 적용함.

저장과 종료

  • :cd -  현재 디렉토리를 보여줌.
  • :cd _PATHNAME_ - 다른 디렉토리로 변경.
  • !{shell command} - 쉘 명령을 vi안에서 실행.
  • ^g - 현재 행 번호를 보여줌
  • :w - 현재 내용을 디스크에 기록함.
  • :q - 종료함. 만약 편집된 내용이 있다면 종료가 안됨.
  • :q! - 무조건 종료. 편집 무시.
  • :wq - 저장 후 종료.
  • ZZ - 내용을 저장하고 종료

찾기와 바꾸기

  • / - 패턴을 검색할 수 있다. 패턴은 당연히 ! 정규식을 지원함.
  • n - 다음 검색 결과로 이동.
  • N - 이전 검색 결과로 이동.
  • : %s/old/new - old를 찾아 new로 바꿔준다.
  • :%s/old/new/g - 전체를 검색하여 한 번에 모두 바꿈.
  • :%s/old/new/gc - 위와 같은데 바꿀 때마다 물어보게 함. (c는 confirmation)

 


고치기

  • r - 현재 커서 위치ㅔ서 한 글자만 바꿈.
  • R - 수정모드가 되어 ESC를 누를 때까지 현재 줄의 내용을 수정함.
  • c - 이동 명령과 결합하여 한 글자를 지우고 입력모드가 된다.
  • s - 한글자만 지우고 입력.
  • S - 줄 전체를 새로 씀. 
  • ^p : (ctrl + p) 자동완성
  • :nohl - remove the yellow highlight ( 
  • ^r : (ctrl + r) Redo (undo의 반대 -  ctrl + p)