vi 편집기는 개발자들에게 필수적인 도구입니다. 이 텍스트 기반 편집기는 강력한 기능과 유연성으로 유명하며, 다양한 명령어를 통해 효율적인 코딩 환경을 제공합니다. 이 글에서는 편집기의 주요 명령어와 그 사용법을 소개합니다. vim 공식문서
vi 편집기 명령어 단축키 정리
분류 | 명령키 | 기능 |
vi 모드 전환 | i | 현재 커서 자리에 입력한다. |
I(대문자 i) | 커서가 위치한 행의 첫 칼럼으로 이동하여 입력한다. | |
a | 현재 커서 다음 자리에 입력한다. | |
커서 이동하기 | k / j | 커서를 한 행 위 / 아래로 이동한다. |
– / + or Enter | 커서를 앞 / 다음 행의 처음으로 이동한다. | |
w / e | 커서를 다음 단어의 처음 / 마지막 글자로 이동한다. | |
b | 커서를 앞 단어의 첫 글자로 이동한다. | |
^ or 0 | 윈도우에서 Home 키의 역할을 함 | |
$ | 윈도우에서 End 키의 역할을 함 | |
화면 이동 | Ctrl + b | 한 화면 위로 이동한다. |
Crtl + f | 한 화면 아래로 이동한다. | |
특정 행 이동 | G(shift + g) | 파일의 마지막 행으로 커서가 이동한다. |
행번호G | 지정한 행 번호로 커서가 이동한다. | |
:행번호 | 지정한 행 번호로 커서가 이동한다. | |
수정하기 | cw | 커서 위치부터 현재 단어의 끝까지 수정한다. |
cc | 커서가 위치한 행의 내용을 모두 수정한다. | |
내용 삭제 | dw | 커서 위치의 단어를 삭제한다. |
dd | 커서 위치의 행을 삭제한다. | |
명령 취소 | u | 명령을 취소한다. |
U | 해당 행에서 한 모든 명령을 취소한다. | |
복사 및 잘라 붙이기 | yy | 커서가 위치한 행을 복사한다. |
p | 커서가 위치한 행의 아래쪽에 붙인다. | |
dd, #dd | 커서가 위치한 행을 잘라둔다. #에는 잘라둘 행의 수 지정 | |
네임드 버퍼 | “()yy | ()에 숫자 혹은 스펠링을 지정해서 버퍼에 복사내용을 기억 |
“()p | ()에 저장한 내용 붙여넣기 | |
범위지정 명령어 | 1,$ | 1행부터 마지막 행까지 지정한다. |
범위 지정하기 | 1,. | 1행부터 커서가 있는 행까지 지정한다. |
.,$ | 커서가 있는 행부터 마지막 행까지 지정한다. | |
,-3 | 현재 행과 이전 세 행까지 지정한다. | |
10,20 | 10행부터 20행까지 지정한다. | |
검색 | /문자열 | 문자열을 아래 방향으로 검색한다. |
?문자열 | 문자열을 위 방향으로 검색한다. | |
n | 원래 찾던 방향으로 다음 문자열을 검색한다. | |
N | 역방향으로 다음 문자열을 검색한다. | |
바꾸기 | s/문자열1 /문자열2/ | 커서가 위치한 행에서 첫 번쨰로 나오는 문자열1을 문자열 2로 바꾼다. |
vi에서 shell | :! 셸명령 | vi 작업을 잠시 중단하고 셸 명령을 실행한다. |
기타 명령 | shitf+j | 현재 행과 아래 행을 연결하여 한 행으로 만든다. |
. | 바로 직전에 했던 명령을 반복한다. |
vi 환경설정
vi는 사용자가 환경을 설정할 수 있도록 set 명령을 제공한다.
- 사용자 홈 디렉터리에 .exrc파일로 저장하거나, 환경 변수에 환경을 설정해놓았을 경우, 편집기를 시작할 때 이 설정을 읽어서 적용한다.
- 편집기 내부에서 마지막 행 모드 명령으로 설정한 것은 편집기를 종료하면 해제된다.
set 명령과 옵션 | 기능 |
set nu | 파일 내용의 각 행에 행 번호를 표시한다. |
set nonu | 행 번호를 감춘다. |
set list | 눈에 보이지 않는 특수문자를 표시한다.(tab:^|,eol등) |
set nolist | 특수문자를 감춘다. |
set showmode | 현재모드를 표시한다. |
set noshowmode | 현재 모드를 감춘다. |
set | set으로 설정한 모든 vi 환경 설정 값을 출력한다. |
set all | 모든 vi 환경 변수와 현재 값을 출력한다. |
마무리
vi 편집기는 다양한 명령어를 통해 강력한 편집 기능을 제공합니다. 이러한 명령어들을 익히면 코딩 과정이 훨씬 더 효율적이고 빠르게 진행될 수 있습니다. 본 글에서 소개된 명령어들을 숙지하면 편집기의 기능을 최대한 활용할 수 있을 것입니다.!