728x90
리눅스에서 자주 사용되는 에디터인 vi/vim에 대한 명령어 정리입니다.
# vi/vim 에디터 명령어 정리
1. vi 시작하는 명령어(파일 생성 수정)
명령어 | 사용방법 | 예시 |
vi 파일명 | 파일열기 및 작성 | vi sample.txt |
vi 행번호 파일명 | 파일을 열고 커서를 행번호로 이동 | vi -50 sample.txt (50번째행으로이동) |
vi /"검색문자" 파일명 | "검색문자"와 일치하는 첫단어로 이동 | vi -/"wow" sample.txt (첫 wow로 이동) |
view 파일명 | 읽기전용으로 파일 열기 | view sample. txt |
vi 파일명으로 입력했을때, 동일 파일명이 존재하면 파일이 수정.
파일명이 존재하지않는다면 신규파일이 생성
2. vi 커서 이동하기
키 | 설명 |
h(상), j(하), k(좌), l(우) | 각각 ()방향으로 |
e | 오른쪽 단어의 끝 부분으로 |
w | 오른쪽 단어의 앞 부분으로 |
b | 왼쪽 한 단어의 앞 부분으로 |
Enter | 한 행아래로 |
Back Space | 한 문자 왼쪽으로 |
Space bar | 한 문자 오른쪽으로 |
^ | 행의 맨 왼쪽으로 |
$ | 행의 맨 오른쪽으로 |
H | 화면의 맨 위로 |
M | 화면의 중간으로 |
L | 화면의 맨 아래로 |
숫자G(10G) | 숫자만큼 지정한 줄로 이동, (10만큼 이동) |
Ctrl + i | 한 화면 위로 |
Ctrl + b | 한 화면 아래로 |
Ctrl + d | 반 화면 아래로 |
Ctrl + u | 반 화면 위로 |
Ctrl + e | 한 줄씩 위로 |
Ctrl + y | 한 줄씩 아래로 |
3. vi 삽입모드 명령어(문자나 행)
키 | 설명 |
a | 커서 오른쪽에 문자 삽입 |
A | 커서 오른쪽, 행의 끝에 문자 삽입 |
i | 커서 왼쪽에 문자 삽입 |
I | 커서 왼쪽, 행의 처음에 문자 삽입 |
o | 커서 아래에 행 삽입 |
O | 커서 위에 행 삽입 |
ESC | 삽입모드 종료 |
4. 텍스트 변경 명령어
명령어 | 설명 |
cw | 단어 변경 |
cc | 행 변경 |
C | 커서 오른쪽 행 변경 |
s | 커서가 있는 문자열 대체 |
S | 커서가 위치한 라인의 문자열 대체 |
r | 커서 위치 문자를 다른 문자로 대체 |
r-Enter | 행 분리 |
J | 현재 행과 아래 행 결합 |
xp | 커서 위치 문자와 오른쪽 문자 교환 |
~ | 문자형 변경 (대->소, 소->대) |
u | 이전 명령 취소 |
U | 행 변경 사항 취소, 이전의 최종 행 취소 |
. | 이전 최종 명령 반복 |
5. 텍스트 삭제 명령어
명령어 | 설명 |
x | 커서가 있는 문자 삭제 |
nx | 커서가 있는 위치부터 n개의 문자 삭제 |
dw | 현재 커서가 있는 단어 하나 삭제 |
dd | 커서가 있는 행 삭제 |
ndd | 커서가 있는 행부터 n개의 행 삭제 |
db | 커서의 위치부터 반대로 한 단어 삭제 |
D | 커서 오른쪽 행 삭제 |
:5,10d | 5~10번째 행 삭제 |
6. 복사 및 이동 명령어
명령어 | 설명 |
yy | 커서가 위치한 줄 복사 |
Y | 행 yank 또는 복사 |
yh | 커서의 왼쪽 문자 복사 |
yl | 커서에 위치한 문자 복사 |
yi | 커서가 위치한 줄과 그 아랫줄 복사 |
yk | 커서가 위치한 줄과 그 윗줄 복사 |
p | yank 되거나 삭제된 행 현재 행 위로 삽입 |
P | yank 되거나 삭제된 행 현재 행 아래에 삽입 |
:1,2 co 3 | 1~2행을 3행 다음으로 복사 |
:4,5 m 6 | 4~5행을 6행 위로 이동 |
* yank는 당기는 것을 의미합니다.
한줄 복사
커서가 위치한 라인에서 yy(y를 두번누름)하면 캐시에 저장되며 p를 누르면 다음 라인에 붙여넣기.
블럭 복사
v키를 누른 후 커서를 이동해서 블럭 설정(putty는 블럭이보이는데 ssh는 블럭이 안보이니 주의) 이후 y키를 누르면 캐시에 복사되고 p를 누르면 다음 라인이 붙여넣기.
7. 행 관련 명령어
명령어 | 설명 |
:set nu 또는 :set numer 또는 :se nu | 에디터의 각 행의 좌측에 행 번호를 표시한다. |
:set nonu | 행 번호 표시 숨기기 |
G | 파일의 마지막 행으로 이동 |
21G | 파일의 21번째 행으로 이동 |
Ctrl + G | 현재 File name과 커서의 라인 정보 |
8. 탐색 및 대체 명령어
명령어 | 설명 |
/"검색할 문자열" | 오른쪽 아래방향으로 문자열 검색 |
?"검색할 문자열" | 왼쪽 위 방향으로 문자열 검색 |
n | 다음으로 계속 검색 |
N | 이전으로 계속 검색 |
:g/search-string/s/ | 각 발생 탐색 후 확인하고 대체 |
:s/string/rep | 현재 행의 str을 rep로 대체 |
:1,.s/string/rep/ | 1부터 현재 행의 str을 rep로 대체 |
:%s/string/rep/g | 파일 전체 str을 rep로 전부대체 |
:.$/aa/bb | 커서의 위치로부터 파일의 끝까지 있는 모든 aa를 bb로 대체 |
9. 화면 정리 명령어
명령어 | 설명 |
Ctrl + l | 불필요한 화면 정리 후 다시 표시 |
10. 파일 명령어
명령어 | 설명 | 예제 |
:r 파일명 | 커서 다음에 파일 삽입 | :r test.txt |
:행번호 r 파일명 | 입력한 파일 입력한 행번호 다음에 삽입 | :10 r test.txt |
11. 보관 및 종료 명령어
명령어 | 설명 |
:w | 변경사항 저장 |
:w 파일명 | 입력한 파일명으로 변경사항 저장 |
:wq | 저장 후 종료 |
ZZ | 저장 후 종료. 임시 버퍼 내용을 vi로 호출할 때 사용되었던 파일에 기록하고 vi를 빠져나옴 |
:q! | 변경사항 저장하지 않고 종료 |
q | 수정한 파일을 저장하지 않고 vi 종료 |
e! | 수정한 것을 무시하고 다시 편집상태로 돌림 |
12. 기타명령어
명령어 | 설명 |
. | 현재 line |
% | 전체 line |
$ | 파일의 맨끝 line |
1,$ | % |
2,3 | 2~3 line |
'운영체제 (OS) > Linux' 카테고리의 다른 글
[Linux] ZSH 설치 및 Windows terminal 설정 (2) | 2023.11.25 |
---|