작업환경 & 주변기기

[프로그래밍 환경] VSCode에서 Vim 명령사용하기!

MOONCO 2021. 3. 1. 16:28

👉 Vim이란?

오래전부터 지금까지 꾸준히 사용되는 VS Code 같은 <코드편집기> ( 거의 유물ㅋㅋ )

 

Vim의 필요성

키보드만 가지고도, 수 많은 기능을 수행할 수 있게 만들어졌다. (단축키!)

 

👉 VS Code에서  Vim 확장프로그램 설치

VS Code 확장프로그램 Vim

 

Vim의 모드 ( 하고자 하는 작업에 따라, 모드 변경 )

명령 모드 (Command mode)
  
  입력하는 모든 키 명령으로 실행


명령줄 모드 (Command Line mode)

  화면 하단에 ":"(콜론) 프롬프트에 명령문장 입력, /프롬프트에 단어입력
  

입력 모드 (Insert mode)

  문서 내용 작성만 가능한 모드
  

비주얼 모드 (Visual mode)

  선택만 가능한 모드

 

👉 Vim 명령 모드 명령어 (Command mode)

// 명령줄모드로 전환하기

: ( 명령모드에서 명령줄모드로 변경하겠다. )


// 입력모드로 전환하기

i ( 현재 커서의 앞에서 편집하겠다. )

a ( 현재 커서의 다음부터 편집하겠다. )

A ( 현재 커서가 있는 라인의 맨 끝으로 커서를 이동 후, 편집하겠다. )

o ( 현재 커서 아래에 새로운 라인을 추가 후, 편집하겠다. )

O ( 현재 커서 위에 새로운 라인을 추가 후, 편집하겠다. )


// 선택기능

V [Shift + v] ( 현재 라인을 선택 - visual line )


// 지우기

backspace, delete 사용가능

x ( 한 글자 지우기 )

dw ( 현재 커서부터 단어의 끝까지 지우기 )

d ( 선택된 visual line 삭제 )

dd ( 한 개의 라인 지우기 )

숫자 + dd ( 원하는 숫자만큼의 라인 지우기 )

D [Shift + d] ( 현재 커서의 뒤편 전부 삭제 )


// 작업 취소 ( undo )

u ( 가장 최근에 사용한 명령을 취소 )

U [Shitf + u] ( 해당 라인의 전체 수정사항을 취소 )

ctrl + r ( 재작업, redo )


// 내용 변경

r ( 선택된 글자 하나를 변경 )

cw ( 선택된 단어 삭제 후, 입력 )

c$ ( 선택된 라인 삭제 후, 입력 )


// 복사, 붙여넣기

y ( 선택된 visual line 복사 )

yy ( 현재 커서가 있는 라인 1개만 복사 )

숫자 + yy ( 현재 커서가 있는 라인부터 숫자만큼 라인 복사 )

p ( 마지막 지운 정보를 현재 커서 다음에 붙여넣기 )


// 이동

방향키, hjkl (왼쪽, 아래, 위, 오른쪽)

w ( 다음 단어 첫번째 글자로 이동 )

b ( 이전 단어 첫번째 글자로 이동 )

$ [Shift + 4] ( 현재 라인의 맨 뒤로 이동 )

^ [Shift + 6] ( 현재 라인의 맨 앞으로 이동 )

라인번호 + G ( 해당 라인으로 이동 )

G [Shift + g] ( 파일에서 마지막 라인으로 이동 )

ctrl + g ( 현재 커서의 위치와 파일상태 확인 )

ctrl + f ( 화면에 보이는 마지막 라인의 다음 라인부터 보여줌 )

ctrl + u ( 화면에 보이는 첫 라인의 이전 라인 보여줌 )

ctrl + d ( 화면에 보이는 마지막 라인의 이후 라인 보여줌 )

ctrl + y ( 커서가 아닌, 화면을 한줄씩 올림 )

ctrl + e ( 커서가 아닌, 화면을 한줄씩 내림 )


// 저장하고 나가기

ZZ [Shift + zz] ( 현재 파일을 저장하고 vim 종료 / VS Code :  )


// 글자, 단어 찾기

/글자 ( 아래 쪽에서 찾기 )

?글자 ( 위쪽에서 찾기 )

* [Shift + 8] ( 현재 커서가 있는 해당 단어와 동일한 단어들 찾기

n ( * 명령어 결과 아래쪽으로 이동하면서 찾기 )

N ( * 명령어 결과 위쪽으로 이동하면서 찾기 )


// 2개 이상의 창 이동

ctrl + ww ( 다음 파일의 에디터 창으로 이동 / VS Code :  )


// 정렬하기

= ( 선택된 visual line 정렬하기 )

=+% ( {}중괄호로 묶여있는 구간 정렬하기 / "{" 에 커서 이동한 후 사용할 것 )

 

👉 Vim 명령줄 모드 명령어 (Command Line mode)

// 저장, 나가기

:w ( 현재 파일을 저장 )

:q ( vim 종료 / VS code :  )

:q! ( 저장하지 않고 vim 종료 / VS Code :  )

:wq ( 현재 파일을 저장하고 vim 종료 / VS Code : )

// 라인 선택하기 ( 삭제, 변경 등 여러 명령어와 조합 가능 )
:0,17

// 글자(단어) 찾아서 바꾸기

:s/찾는단어/새단어 ( 현재라인에서 찾는단어를 새단어로 한번만 찾아서 바꾸기 )

:s/찾는단어/새단어/g ( 현재라인에서 찾는단어를 새단어로 모두 바꾸기 )

:%s/찾는단어/새단어/g ( 현재파일에서 찾는단어를 새단어로 모두 바꾸기 )

:%s/찾는단어/새단어/gc ( 현재파일에서 찾는단어를 새단어로 바꾸기 전에 물어보고 바꾸기 )

:숫자,숫자s/찾는단어/새단어/g ( 두 번호 사이의 라인에서, 찾는단어를 새단어로 모두 바꾸기 )


// 창을 나눠 다른 파일 열기

:vs<filename> ( 수직으로 창을 나눈 후, 해당 파일을 읽어옴 )

:split<filename> ( 수평으로 창을 나눈 후, 해당 파일을 읽어옴 )


// 외부 명령 잠깐 수행하기

:!명령어 <enter> ( 쉘 명령을 실행할 수 있다 - 명령창으로 잠깐 나가기 )


// 현재 위치에 파일 끼워넣기

:r<filename> (원하는 파일을 읽어오기 )


// 파일 일부를 따로 저장하기

숫자,숫자w<filename> ( 두 번호 사이의 라인을 filename으로 저장함 )


// 이동

:숫자 ( 해당 숫자의 라인으로 이동 )

 

👉 윈도우 기본 단축키와 중복되는 부분 제거하기! ( 복사 / 붙여넣기 안될때 )

// settings.json ( VS Code에서 " ctrl + , " 누르고 우측상단 Open settings 클릭 )

{
    "vim.handleKeys": {
        "<C-c>": false,
        "<C-v>": false,
        "<C-x>": false,
        "<C-z>": false,
        "<C-f>": false,
        "<C-a>": false
    }
}

 

 

반응형