[Linux] vi 에디터
2024. 3. 12. 17:02ㆍstudy
파일 저장하고 종료하기
모드 | 명령 키 | 기능 |
마지막행 모드 | :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 |