일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- php
- MacOS
- XML
- computer
- html
- DS
- system
- CSS
- mysql
- Algorithm
- Linux
- Class
- python
- Java
- data structure
- control
- DB
- github
- function
- DATAPATH
- instruction
- Pipelining
- architecture
- DoM
- while
- javascript
- MIPS
- web
- for
- react
- Today
- Total
YYYEJI
[Linux] vim/vi 명령어 정리 본문
리눅스도 다른 운영체제처럼 파일을 작성하거나 수정하기 위한 편집기가 필요합니다.
다양한 편집기 중에서 오늘은 vi에 대해 알아보겠습니다.
vim/vi에 대해 조금만 더 설명을 해드리겠습니다.
vi은 명령이 매우 단순하여 빠르게 편집할 수 있어서 널리 사용되는 화면 단위 편집기입니다.
글자를 입력하고 수정하는 방법이 일반 GUI 편집기와는 다르기 때문에 다소 불편하실 수 있습니다.
밑에 나오는 설명을 통해서 조금이라도 vim/vi에 익숙해졌으면 좋겠습니다.
< vi 사용법 >
vim/vi 주요 모드에는 3가지가 있습니다.
입력 모드(insert mode) - 입력한 키를 내용으로 처리하는 모드
시각 모드(visual mode) - 입력한 키를 명령으로 해석하는 모드
마지막 행 모드(command mode) - 특별 명령 처리하는 모드
또다른 모드 하나는 일반모드 입니다.
일반 모드는 위에 모드를 들어가기 전 모드 즉, vi을 시작한 상태입니다.
다른 모드를 사용하다가 일반 모드로 돌아오기 위해서는 [ESC]를 누르면 됩니다.
< vi/vim 명령어 >
vi 사용하기
$ vi test.txt
vi 종료하기
:q | vi에서 작업한 것이 없을 때 그냥 종료 |
:q! | 작업한 내용을 저장하지 않고 종료 (!는 강제의 의미) |
:w [file_name] | 작업한 내용을 저장만 하고 파일명까지 입력하면 새 파일로 저장 |
:wq or :wq! or shift + zz | 작업한 내용을 저장하고 vi를 종료 |
일반 모드에서 Copy / Paste
yy | 현재 라인 복사 |
3yy | 현재 커서에서 3라인 복사 |
p (lowercase) | 현재 커서 아래 붙여넣기 |
P (Uppercase) | 현재 커서 위에 붙여넣기 |
일반 모드에서 Delete / Undo(실행 취소) / Redo(재실행)
x | 현재 커서 위치에 있는 한 글자 지우기 |
dw | 현재 커서에 있는 한 단어 지우기 |
dd | 현재 라인 지우기 |
3dd | 현재 커서부터 3라인 지우기 |
u (lowercase) | 마지막 명령어 취소 |
U (Uppercase) | 해당 줄 전체의 수정사항 취소 |
Ctrl + r | redo 기능 |
일반 모드에서 Replace / Move
r | 한 글자 수정하기 |
cw | 현재 커서에 있는 단어를 변경할 때 사용 (삭제 후 입력) |
c$ | 해당 줄 전체를 변경할 때 사용 (삭제 후 입력) |
E | 현재 라인의 끝으로 이동 ($도 동일) |
G | 파일의 끝으로 이동 |
gg | 파일의 처음으로 이동 |
3G | 3번째 라인으로 이동 |
일반 모드에서 Find / Search / Replace
/keyword | 원하는 Keyword 검색 |
?keyword | 원하는 keyword를 역방향으로 검색 |
n (lowercase) | 검색 결과에서 다음 문자열 찾기 |
N (Uppercase) | 검색 결과에서 이전 문자열 찾기 |
:%s/old/new/g | 찾는 단어를 새 단어를 파일에서 전체 (globally) 변경 |
:%s/old/new/gc | 사용자에게 물으며 변경 |
:%s/old/new/i | 대소문자 구분 없이 검색 |
:#,#s/old/new/g | 줄 번호(#) 사이의 찾는 단어를 새 단어로 모두 변경 |
Insert mode에서 사용할 수 있는 명령어
i (lowercase) | 현재 커서 앞에서 편집 시작 |
I (Uppercase) | 커서가 위치한 행의 첫 칼럼으로 이동하여 편집 시작 (Upper case 'i') |
a (lowercase) | 현재 커서 다음부터 편집 시작 |
A (Uppercase) | 커서가 위치한 행의 마지막 칼럼으로 이동하여 편집 시작 |
o (lowercase) | 커서가 위치한 행의 다음 행부터 편집 시작 |
O (Uppercase) | 커서가 위치한 행의 이전 행부터 편집 시작 |
Visual mode에서 사용할 수 있는 명령어
v (lowercase) | 현재 커서 위치에서부터 문자 단위로 선택 가능 |
V (Uppercase) | 현재 커서 위치에서부터 라인 단위로 선택 가능 |
Ctrl + v | 현재 커서를 기준으로 블록 선택 가능 |
p (lowercase) | 복사된 데이터를 현재 위치에 붙여넣기 |
P (Uppercase) | 복사된 데이터를 마지막 라인에 붙여넣기 |
Command mode에서 사용할 수 있는 명령어
1. 여러 파일 열기
:vs filename | 수직으로 창 나누고 읽어옴 |
:split filename | 수평으로 창 나누고 읽어옴 |
Ctrl + ww | 다른 창으로 이동 |
2. 외부 명령어 실행하기
:! command[enter] - 쉘 명령어 실행 후 vim 복귀
Ex) 현재 작업하고자 하는 파일의 이름을 알고자 할 때 잠깐 나가서 ls를 실행하고 싶을 때 쓰는 명령어 -> :! ls
Insert mode에서 커서 이동하기
h - 커서를 한 글자 왼쪽으로 이동
j - 커서를 한 행 아래로 이동
k - 커서를 한 행 위로 이동
l - 커서를 한 글자 오른쪽으로 이동
◡̈
'Linux' 카테고리의 다른 글
[Linux] 쉘(Shell)의 기능과 종류 (0) | 2022.07.23 |
---|---|
[Linux] 리눅스에서 패키치 설치하기 (0) | 2022.07.22 |
[Linux] 리눅스 기본 명령어-2 (0) | 2022.07.17 |
[Linux] 리눅스 기본 명령어-1 (0) | 2022.07.17 |
[Linux] 리눅스 파일과 디렉토리 (0) | 2022.07.17 |