Linux

[Linux] 리눅스 Vi 에디터 명령어

allempty_sheep 2024. 6. 11. 12:02
반응형
종류 모드 명령키 기능
저장과 종료 마지막 행 모드 :q vi에서 작업한 것이 없을 때 그냥 종료
:q! 작업한 내용을 저장하지 않고 종료
:w [파일명] 작업한 내용을 저장만 함 파일명 지정 시 새 파일로 저장
:wq, :wq! 작업한 내용을 저장하고 vi 종료
명령 모드 ZZ 작업한 내용을 저장하고 vi 종료
입력 모드로 전환 i 커서 앞에 입력
l 커서가 위치한 행의 첫 컬럼으로 이동하여 입력
a 커서 뒤에 입력
A 커서가 위치한 행의 마지막 컬럼으로 이동하여 입력
o 커서가 위치한 행의 다음 행에 입력
커서 이동하기 명령 모드 k 커서를 한 행 위로 이동
j 커서를 항 행 아래로 이동
l 커서를 한 글자 오른쪽으로 이동
h 커서를 한 글자 왼쪽으로 이동
^ 또는 O 커서를 현재 행의 처음으로 이동
$ 커서를 현재 행의 마지막으로 이동
- 커서를 앞 행의 처음으로 이동
+ 또는 Enter 커서를 다음 행의 처음으로 이동
H 커서를 화면의 맨 윗행으로 이동
M 커서를 화면의 중간 행으로 이동
L 커서를 화면의 맨 아랫행으로 이동
w 커서를 다음 단어의 첫 글자로 이동
b 커서를 앞 단어의 첫 글자로 이동
e 커서를 다음 단어의 마지막 글자로 이동
화면 이동하기 명령 모드 CTRL+u 반 화면 위로 이동
CTRL+d 반 화면 아래로 이동
CTRL+b 한 화면 위로 이동
CTRL+f 한 화면 아래로 이동
CTRL+y 화면을 한 행만 위로 이동
CTRL+e 화면을 한 행만 아래로 이동
특정 행으로 바로 이동하기 명령 모드 G 파일의 마지막 행으로 커서가 이동
행 번호 G 지정한 행 번호로 커서가 이동
마지막 행 모드 :행 번호 지정한 행 번호로 커서가 이동
:S 파일의 마지막 행으로 커서가 이동

 

종류 모드 명령 키 기능
내용 수정하기 명령 모드 r 커서가 위치한 글자를 다른 글자로 수정
cw, #cw 커서 위치부터 현재 단어의 끝까지 수정
#에는 수정할 단어의 수를 지정
ex)3cw : 커서 위치부터 세 단어 수정
s, #s 커서 위치부터 ESC 키를 입력 할 때까지 수정
#에는 수정할 글자의 수를 지정
5s : 커서 위치부터 다섯 글자 수정
cc 커서가 위치한 행의 내용을 모두 수정
C 커서 위치부터 행의 끝까지 수정
내용 삭제하기 명령 모드 x, #x 커서 위치의 글자를 삭제
#에는 삭제할 글자 수 지정
dw, #dw 커서 위치의 단어를 삭제
#에는 삭제할 단어의 수 지정
dd, #dd 커서 위치의 행을 삭제
#에는 삭제할 행의 수 지정
D 커서 위치부터 행의 끝까지 삭제
명령 취소하기 명령 모드 u 명령을 취소
U 해당 행에서 한 모든 명령을 취소
마지막 행 모드 :e! 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업
복사, 붙여넣기
잘라내기
명령 모드 yy, #yy 커서가 위치한 행을 복사
#에는 복사할 행의 수 지정
p 커서가 위치한 행의 아래쪽에 붙임
P 커서가 위치한 행의 위쪽에 붙임
dd, #dd 커서가 위치한 행을 자름
#에는 자를 행의 수 지정
마지막 행 모드 1, $ 또는 % 1행부터 마지막 행까지 지정
1,. 1행부터 커서가 있는 행까지 지정
,-3 현재 행과 이전 세 행까지 지정
10,20 10행부터 20행까지 지정
:#y #로 지정한 행을 복사
:<범위>y 범위로 지정한 행을 복사
#:d #로 지정한 행을 자름
:<범위>d 범위로 지정한 행을 자름
:pu 현재 행 다음에 버퍼의 내용을 붙임
:#pu #로 지정한 행 다음에 버퍼의 내용을 붙임
검색하기 명령 모드 /문자열 문자열을 아래 방향으로 검색
?문자열 문자열을 위 방향으로 검색
n 원래 찾던 방향으로 다음 문자열을 검색
N 반대 방향으로 다음 문자열을 검색
바꾸기 마지막 행 모드 :s/문자열1/문자열2 커서가 위치한 행에서 첫 번째로 나오는 문자열1을 문자열2로 바꿈
:%s/문자열1/문자열2/g 파일 전체에서 모든 문자열1을 문자열2로 바꿈
:<범위>s문자열1/문자열2/ 범위 내 모든 각 행에서 첫 번째로 나오는 문자열1을 문자열2로 바꿈
:<범위>s문자열1/문자열2/g 범위 내 모든 행에서 문자열1을 문자열2로 바꿈
:<범위>s문자열1/문자열2/gc 범위 내 모든 행에서 문자열1을 문자열2로 바꿀 때 수정할지 여부를 물음

 

종류 모드 명령 키 기능
파일 읽어오기
여러 파일 편집
마지막 행 모드 :r 파일 지정한 파일을 읽어들여 현재 커서 위치에 삽입
:e 파일 지정한 파일로 전환(기존 파일을 :w로 지정한 뒤에 실행해야함)
:n vi 시작 시 여러 파일을 지정했을 경우 다음 파일로 작업을 이동
vi 에서 셸 명령 사용 마지막 행 모드 :! 셸 명령 vi 작업을 잠시 중단하고 셸 명령을 실행 (Enter 누르면 vi로 돌아옴)
:sh vi를 잠시 빠져나가서 셸 명령을 실행 (exit명령을 사용하면 vi로 돌아옴)
기타 명령 키 명령 모드 Ctrl + l ( 소문자 L) 현재 화면을 다시 출력
Ctrl + g 현재 커서 위치의 행 번호를 마지막 행에 출력
Shift + j 현재 행과 아랫행을 연결하여 한 행으로 만듬
. 바로 직전에 했던 명령을 반복
환경설정 마지막 행 모드 :set nu 파일 내용의 각 행에 행 번호를 표시
:set nonu 행 번호를 감춤
:set list 눈에 보이지 않는 특수 문자를 표시
:setnolist 특수 문자를 감춤
:set showmode 현재 모드를 표시
:set noshowmode 현재 모드를 감춤
set set으로 설정한 모든 vi 환경설정 값을 출력
set all 모든 vi 환경 변수와 현재 값을 출력

'Linux' 카테고리의 다른 글

[Linux] 리눅스 기본 명령어  (0) 2024.06.11