[Linux] vi 에디터

2024. 3. 12. 17:02study

 

vi 동작 모드

 

파일 저장하고 종료하기

모드 명령 키 기능
마지막행 모드 :q vi 에서 작업한 것이 없을 때 그냥 종료
(저장하지 않고 실행하면 오류 발생)
:q! 작헙한 내용을 저장하지 않고 종료
:w, :w [파일명] 작업한 내용을 저장
파일명을 지정하면 새 파일로 저장
:wq, :wq!, :wq 파일이름 작업한 내용을 저장하고 vi 종료
파일명을 지정하면 저장 후 파일 이름 저장
명령 모드 ZZ (shift+zz) 작업한 내용을 저장하고 vi 종료

 

 

입력모드 전환 명령 키

명령키 기능
a 현재 커서 다음 칸부터 입력
A 현재 커서의 줄 맨 마지막 부터 입력
i 현재 커서 위치부터 입력
I (shift+i) 현재 커서줄의 맨 앞부터 입력
o 현재 커서의 다음 줄에 입력
O 현재 커서의 이전 줄에 입력
s 현재 커서 위치의 한 글자를 지우고 입력
S 현재 커서의 한 줄을 지우고 입력

 

명령모드로 전환 키

명령 키 기능
ESC 입력모드에서 명령모드로 전환

 

 

커서 이동 명령 키

명령 키 기능
k 커서를 한 행 위로 이동 ( ↑ ) 
j 커서를 한 행 아래로 이동 ( ↓ )
l 커서를 한 글자 오른쪽으로 이동 ( → )
h 커서를  한 글자 왼쪽으로 이동 ( ← )
^ or 0 커서를 현재 행의 처음으로 이동 (Home)
$ 커서를 현재 행의 마지막으로 이동 (End)
- 커서를 앞 행의 처음으로 이동
+ or Enter 커서를 다음 행의 처음으로 이동
H 커서를 화면의 맨 윗 행으로 이동
M 커서를 화면의 중간 행으로 이동
L 커서를 화면의 맨 아랫행으로 이동
w 커서를 다음 단어의 첫 글자로 이동
b 커서를 앞 단어의 첫 글자로 이동
e 커서를 다음 단어의 마지막 글자로 이동
G 마지막 행으로 이동
:숫자 지정한 숫자 행으로 이동

 

 

화면 이동 명령 키

기존 명령 키 기능 추가 명령 키
^u (ctrl+u) 반 화면 위로 이동  
^d (ctrl+d) 반 화면 아래로 이동  
^f (ctrl+f) 다음 화면으로 이동 Page Down
^b (ctrl+b) 이전 화면으로 이동 Page Up
^y (ctrl+y) 화면을 한 행만 위로 이동  
^e (ctrl+e) 화면을 한 행만 아래로 이동  

 

 

특정 행으로 바로 이동하는 명령 키

명령 키 기능
G (shift+g) 커서가  파일의 마지막 행으로 이동
행 번호G (shift+g) 커서가 지정한 행 번호로 이동
:행 번호 커서가 지정한 행 번호로 이동(마지막 행 모드)
:$ 커서가 파일의 마지막 행으로 이동(마지막 행 모드)

 

 

내용 수정 명령 키

명령 키 기능
r 커서가 위치한 글자를 다른 글자로 수정
cw, #cw 커서 위치부터 현재 단어의 끝까지 수정.
#에는 수정할 단어의 수를 지정
ex) 3cw는 커서 위치부터 세 단어를 수정
s, #s 커서 위치부터 Esc 키를 입력할 때 까지 수정.
#에는 수정할 글자의 수를 지정
ex) 5s는 커서 위치부터 다섯 글자를 수정
cc 커서가 위치한 행의 내용을 모두 수정
C 커서 위치부터 행의 끝까지 수정

 

 

내용 삭제 명령 키

명령 키 기능
x, #x 커서 위치의 글자를 삭제
#에는 삭제할 글자 수를 지정
X 커서 앞에 있는 글자 삭제
dw, #dw 커서 위치의 단어를 삭제 (커서 포함)
#에는 삭제할 단어 수를 지정
dd, #dd 커서 위치의 행을 삭제
#에는 삭제할 행의 수를 지정
db 커서를 기준으로 앞에 있는 단어 삭제
D (shift+d) 커서 위치부터 행의 끝까지 삭제

 

 

이전 명령 취소 명령 키

명령 키 기능
u 명령을 취소 (=ctrl+z)
U 해당 행에서 한 모든 명령을 취소
:e! 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업

 

 

복사하기, 잘라내기, 붙이기 명령 키

명령 키 기능
yy, #yy 커서가 위치한 행을 복사
#에는 복사할 행의 수를 지정
p 커서가 위치한 행의 아래쪽에 붙임
P 커서가 위치한 행의 위쪽에 붙임
dd, #dd 커서가 위치한 행을 잘라둠. 삭제와 같은 기능
#에는 잘라둘 행의 수를 지정

 

 

마지막 행 모드에서의 복사하기, 잘라내기, 붙이기 명령 키

명령 키 기능
:#y #로 지정한 행을 복사
ex) 3y는 세 행을 복사
:<범위>y 범위로 지정한 행을 복사
2,4y는 2~4행을 복사
:#d #로 지정한 행을 잘라냄(삭제)
ex) 3d는 세 행을 잘라냄
:<범위>d 범위로 지정한 행을 잘라냄(삭제)
ex) 1,4d는 1~4행을 잘라냄
:pu 현재 행 다음에 버퍼의 내용을 붙임
:#pu #로 지정한 행 다음에 버퍼의내용을 붙임
ex) 4pu와 같이 지정

 

 

범위 지정 명령 키

명령 키 기능
1, $ or % 1행부터 마지막 행까지 지정
1.. 1행부터 커서가 있는 행까지 지정
..$ 커서가 있는 행부터 마지막 행까지 지정
.-3 현재 행과 이전 세 행까지(총 네 행) 지정
10.20 10행부터 20행까지 지정

 

 

검색 명령 키

명령 키 기능
/문자열 문자열을 아래 방향으로 검색
?문자열 문자열을 위 방향으로 검색
n 원래 찾던 방향으로 다음 문자열을 검색
N 반대 방향으로 다음 문자열을 검색

 

 

바꾸기 명령 키

명령 키 기능
:%s/문자열1/문자열2 커서가 위치한 행에서 첫번째로 나오는 문자열1을 문자열2로 바꾼다.
:%s/문자열1/문자열2/g 파일 전체에서 문자열1을 문자열2로 바꾼다.
:%s/문자열1/문자열2/gc 파일 전체에서 문자열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 키)
:sh vi를 잠시 빠져나가서 셸 명령을 실행
(vi로 돌아오려면 exit 명령을 입력)

 

 

기타 명령 키

명령 키 기능
ctrl+l (lower L) 현재 화면을 다시 출력
ctrl+g 현재 커서 위치의 행 번호를 마지막 행에 출력
shift+j (upper J) 현재 행과 아랫행을 연결하여 한 행으로 만듬
. (dot) 바로 직전에 했던 명령을 반복

 

vi 환경 설정 명령

set 명령과 옵션 기능
set nu 파일 내용의 각 행에 행 번호를 표시
set nonu 행 번호를 감춘다.
set list 눈에 보이지 않는 특수문자를 표시(tab:^|, eol:$ 등)
set nolist 특수문자를 감춘다,
set showmode 현재 모드를 표시
set noshowmode 현재 모드를 감춘다.
set set으로 설정한 모든 vi 환경 설정 값을 출력
set all 모든 vi 환경 변수와 현재 값을 출력

 

 

 

 

 

'study' 카테고리의 다른 글

[Jetson] VSCode 설치  (0) 2024.03.26
[Linux] 디렉터리, 파일 시스템 관련 명령어  (0) 2024.03.12
[Linux] 리눅스 콘솔 단축키  (0) 2024.02.29
[Python] 가상환경  (0) 2024.02.29
NETRON : 딥러닝 모델 아키텍쳐 시각화  (0) 2024.02.26