Vi 편집기 의 기본 사용 방법
명령 모드 (command mode): 커서 의 이동, 문자, 글자 또는 줄 의 삭 제 를 제어 하고 특정한 구간 을 이동 하여 복사 하 며 삽입 모드 와 기본 줄 모드 에 들 어 갑 니 다.
삽입 모드 (Insert mode): 이 모드 에서 만 텍스트 입력 을 할 수 있 습 니 다. "ESC"를 누 르 면 명령 행 모드 로 돌아 갑 니 다.
기본 줄 모드 (Last line mode): 파일 을 vi 에 저장 하거나 종료 할 수도 있 고 문자열 찾기, 줄 번호 표시 등 편집 환경 을 설정 할 수도 있 습 니 다.
들어가다
: 시스템 알림 기호 $에 vi my file 을 입력 하면 vi 전체 화면 편집 화면 에 들 어 갑 니 다.명령 모드.삽입 모드 만 텍스트 를 입력 할 수 있 습 니 다.
1. 삽입 모드 의 명령 안내
"명령 모드"에서:
"i"를 누 르 면 삽입 모드 로 전환 한 후 커서 의 현재 위치 부터 문 자 를 입력 합 니 다.I 커서 가 있 는 열의 첫 번 째 비 공백 문자 앞에서 부터 문 자 를 삽입 합 니 다.
"a"를 누 르 면 삽입 모드 에 들 어간 후 커서 가 있 는 위치의 다음 위치 부터 문 자 를 입력 합 니 다.A. 커서 가 있 는 맨 뒤에 있 는 곳 부터 자 료 를 추가 합 니 다.
"o"를 누 르 면 삽입 모드 에 들 어간 후 새로운 줄 을 삽입 하고 줄 의 첫머리 부터 문 자 를 입력 합 니 다.O 커서 가 있 는 열 위 에 1 열 을 추가 하고 삽입 모드 에 들 어 갑 니 다.
'삽입 모드' 에 서 는 텍스트 만 계속 입력 할 수 있 으 며, 잘못 입력 하면 'ESC' 를 누 르 고 '명령 모드' 로 이동 해서 삭제 할 수 있 습 니 다.
2. 명령 모드 의 명령 안내
이동 하 다.
vi. 소문 자 'h', 'j', 'k', 'l' 로 각각 커서 의 왼쪽, 아래, 위, 오른쪽으로 한 칸 을 제어 한다.
"ctrl"+ "b"를 누 르 면 화면 이 "뒤로"로 한 페이지 이동 합 니 다.
"ctrl"+ "f"를 누 르 면 화면 이 "앞으로"로 한 페이지 이동 합 니 다.
"ctrl"+ "u"를 누 르 면 화면 이 "후"로 반 페이지 이동 합 니 다.
"ctrl"+ "d"를 누 르 면 화면 이 "앞"으로 반 페이지 이동 합 니 다.
"0": 글 의 시작 으로 이동 합 니 다.
"G"누 르 기: 마지막 문장 으로 이동
"$"누 르 기: 커서 에 있 는 "줄 끝"으로 이동 합 니 다.
"^"를 누 르 십시오: 커서 에 있 는 "줄 머리"로 이동 합 니 다.
"w": 커서 를 누 르 면 다음 글자 의 시작 으로 이동 합 니 다.
"e": 커서 를 누 르 면 다음 글자 의 끝으로 이동 합 니 다.
"b": 커서 를 누 르 면 이전 글자 의 시작 으로 돌아 갑 니 다.
'\# l': 커서 를 누 르 면 이 줄 의 첫 번 째\# 위치 로 이동 합 니 다. 예 를 들 어 5l, 56l.
삭제
"x": 한 번 누 를 때마다 커서 가 있 는 위치의 "뒤에"문 자 를 삭제 합 니 다.
'\# x': 예 를 들 어 '6x' 는 커서 가 있 는 위 치 를 삭제 하 는 '뒤에' 6 개의 문 자 를 표시 합 니 다.
"X": 대문자 X, 누 를 때마다 커서 가 있 는 위치의 "앞"문 자 를 삭제 합 니 다.
'\# X': 예 를 들 어 '20X' 는 커서 가 있 는 위 치 를 삭제 하 는 '앞' 20 자 를 표시 합 니 다.
"dd": 커서 를 삭제 하 는 데 익숙 한 줄
"\# dd": 커서 에 있 는 줄 부터 삭제 합 니 다\# 줄
복제 하 다.
"yw": 커서 가 있 는 곳 에서 끝 에 있 는 문 자 를 버퍼 에 복사 합 니 다.
"\# yw": 버퍼 에\# 글 자 를 복사 합 니 다.
"yy": 버퍼 에 있 는 커서 를 복사 합 니 다.
'\# yy': 예 를 들 어 '6yy' 는 커서 가 있 는 이 줄 에서 6 줄 의 문 자 를 복사 하 는 것 을 나타 낸다.
"p": 버퍼 안의 문 자 를 커서 가 있 는 위치 에 붙 입 니 다.메모: "y"와 관련 된 모든 복사 명령 은 "p"와 결합 해 야 복사 와 붙 여 넣 기 기능 을 완성 할 수 있 습 니 다.
바꾸다
"r": 커서 가 있 는 곳 의 문 자 를 바 꿉 니 다.
"R": "ESC"키 를 눌 렀 을 때 까지 커서 가 있 는 곳 의 문 자 를 바 꿉 니 다.
회복 하 다.
"u": 명령 을 잘못 실행 하면 "u"를 누 르 고 이전 작업 으로 돌아 갈 수 있 습 니 다."u"를 여러 번 누 르 면 여러 번 답장 을 실행 할 수 있 습 니 다.
변경 하 다.
"cw": 커서 가 있 는 곳 의 글 자 를 끝까지 변경 합 니 다.
"c\# w": 예 를 들 어 "c3w"는 3 글자 변경 을 표시 합 니 다.
직업 을 바꾸다
"ctrl"+ "g"은 커서 가 줄 에 있 는 줄 번 호 를 보 여 줍 니 다.
'\# G': 예 를 들 어 '15G' 는 커서 를 글 의 15 번 째 줄 로 이동 하 는 것 을 나타 낸다.
맞추다
a. 명령 모드 에서: =: 1, $
b. gg (닫 힌 표 지 를 맨 위 에 위치), V (VISUAL 모드 로 들 어가 기), shift + g (전체 텍스트 선택), 그리고 =.
c.gg=G
3. 기본 줄 모드 명령 안내
사용 중 "
기본 줄 모드 전에 "ESC"키 를 눌 러 서 "있 는 지 확인 하 세 요."
명령 모드 에서 ":"번 호 를 누 르 면 "들 어 갈 수 있 습 니 다."
기본 줄 모드
a) 줄 번호 표시
"set nu": "set nu"를 입력 하면 파일 의 줄 마다 줄 번 호 를 표시 합 니 다.
b) 파일 의 한 줄 로 건 너 뛰 기
"\#": "\#"번 호 는 숫자 를 표시 합 니 다. 사칭 후 숫자 를 입력 하고 Enter 키 를 누 르 면 이 줄 로 넘 어 갑 니 다. 숫자 15 번 을 입력 하면 문장의 15 번 째 줄 로 넘 어 갑 니 다.
c) 문자 찾기
'/키워드': '/' 키 를 누 르 고 찾 고 싶 은 문 자 를 입력 하 십시오. 처음 찾 는 키워드 가 원 하 는 것 이 아니라면 'n' 을 누 르 고 원 하 는 키 워드 를 찾 을 수 있 습 니 다.
'? 키워드': '?' 키 를 누 르 고 찾 고 싶 은 문 자 를 입력 하 십시오. 처음 찾 는 키워드 가 원 하 는 것 이 아니라면 'n' 을 누 르 고 원 하 는 키 워드 를 찾 을 수 있 습 니 다.
d) 파일 저장
: w filename ('w filename' 을 입력 하여 지정 한 파일 이름 filename 으로 글 을 저장 합 니 다)
: wq ("wq"를 입력 하고 vi 를 종료 합 니 다)
: q! (q 입력!, 메모리 없 이 vi 강제 종료)
편집기 명령 모음 (Emacs, Vim)
exit: C-x C-c :qa /:wq /:xa /:q!
Get back/command mode: C-g <esc>
Backward(left): C-b h
Forward(right): C-f l
Next(down): C-n j
Previous(up): C-p k
stArt of line(^): C-a 0
End of line($): C-e $
mUltiple commands: C-u nnn cmd nnn cmd
Multiple commands: M-digitkey cmd
save File: C-x C-s :w file
beginning of buffer: M-< 1G
end of buffer: M-> G
scroll forward 1 screen: C-v ^F
scroll forward 1/2 screen: ^D
scroll forward 1 line: ^E
scroll backward 1 screen: M-v ^B
scroll backward 1/2 screen: ^U
scroll backward 1 line: ^Y
scroll the other window: M-C-v
delete under cursor: C-d x
delete from cursor to eol: C-k D
iSearch forward: C-s
isearch Reverse: C-r
Search forward: C-s enter /
search Reverse: C-r enter ?
isearch regexp: M-C-s
isearch backward regexp: M-C-r
search regexp: M-C-s enter /
search backward regexp: M-C-r enter ?
Help: C-h C-h :help
Help Apropos: C-h a
Help key Bindings: C-h b :help [key]
Help Info: C-h i
Help Major mode: C-h m
Help tutorial: C-h t :help howto
Undo: C-_ u
Redo: C-f ^R
Mark cursor position: C-@ m{a-zA-Z}
eXchange Mark and position: C-x C-x
goto mark in current file: '{a-z}
goto mark in any file: '{A-Z}
copy region: M-w {visual}y
kill region: C-w {visual}d
Yank and keep buffer: C-y
Yank from kill buffer: M-y p
convert region to Upper: C-x C-u {visual}U
convert region to Lower: C-x C-l {visual}u
Insert special char: C-q octalnum/keystroke
^V decimal/keystroke
replace: M-x replace-string :%s/aaa/bbb/g
replace regexp: M-x replace-regexp :%s/aaa/bbb/g
query replace: M-% :%s/aaa/bbb/gc
query replace: M-x query-replace
query replace regexp: M-x query-replace-regexp
Open file: C-x C-f :r file
Save file: C-x C-s :w
Save all buffers: C-x s :wa
Save as: C-x C-w file :w file
Prompt for buffer: C-x b
List buffers: C-x C-b :buffers
Toggle read-only: C-x C-q :set ro
Prompt and kill buffer: C-x k
Split vertical: C-x 2 :split
Split horizontal: C-x 3 :vsplit (ver. 6)
Move to other window: C-x o ^Wp
Delete this window: C-x 0 :q
Delete other window(s): C-x 1 ^Wo
run shell in bg: M-x compile
kill shell run in bg: M-x kill-compilation
run make: :make Makefile
check error message: C-x` :echo errmsg
run shell and record: M-x shell :!script -a tmp
...clean BS, ... :!col -b <tmp >record
...save/recall shell record: C-x C-w record :r record
run shell: M-! sh :sh
run command: M-! cmd :!cmd
run command and insert: C-u M-! cmd :r!cmd
run filter: M-| file {visual}:w file
run filter and insert: C-u M-| filter {visual}:!filter
show option :se[t] {option}?
reset option to default :se[t] {option}&
reset boolean option :se[t] no{option}
toggle boolean option :se[t] inv{option}
wrap text at column 72 :se tw=72
do not wrap :se tw=0
autoindent :se ai
expand tab :se et
specify comment (mail) :se comments=n:>,n:\|
run GDB M-x gdb
describe GDB mode C-h m
step one line M-s
next line M-n
step one instruction (stepi) M-i
finish current stack frame C-c C-f
continue M-c
up arg frames M-u
down arg frames M-d
copy number from point, insert at the end
C-x &
set break point C-x SPC
vim 에서 바 이 너 리 파일 을 편집 합 니 다.Vim 은 본래 이 때문에 설계 한 것 이 아니 기 때문에 약간의 한계 가 있다.읽 을 수 있어.
파일 을 가 져 와 서 문 자 를 바 꾸 고 저장 합 니 다.결국 당신 의 파일 은 그 글자 만 바 뀌 었 습 니 다.
다른 건 원래 그 거 랑 똑 같 아.
Vim 이 똑똑 한 팁 을 잘못 사용 하지 않도록 해 야 합 니 다. Vim 을 시작 할 때 "- b"인 자 를 추가 해 야 합 니 다.
vim -b datafile
이 매개 변 수 는 'binary' 옵션 을 설정 하 였 습 니 다.그 역할 은 모든 의외 의 부작용 을 배제 하 는 것 이다.예 를 들 어 'textwidth'
텍스트 줄 이 제멋대로 조판 되 지 않도록 0 으로 설정 하 다.또한, 파일 은 일률적으로 유 닉 스 파일 형식 으로 읽 습 니 다.
바 이 너 리 모드 는 어떤 프로그램의 메시지 메 시 지 를 수정 하 는 데 사용 할 수 있다.어떤 문자 도 삽입 하거나 삭제 하지 않도록 조심 하 세 요. 프로그램 이 실 행 될 수 있 습 니 다.
문제 가 생기다."R"명령 으로 교체 모드 에 들 어 갑 니 다.
파일 안의 많은 문 자 는 표시 할 수 없습니다.Hex 형식 으로 값 표시 하기:
:set display=uhex
또한 커서 에 있 는 문자 값 을 명령 'ga' 로 표시 할 수도 있 습 니 다.커서 가 하나 에 있 을 때
<Esc>
문자 에 있 을 때,이 명령 의 출력 은 이렇게 보 입 니 다:
<^[>
27, Hex 1b, Octal 033
파일 에 줄 바 꿈 이 그리 많 지 않 을 수도 있 습 니 다.'wrap' 옵션 을 닫 으 면 총람 효 과 를 얻 을 수 있 습 니 다::set nowrap
바이트 위치
파일 에 있 는 현재 바이트 위 치 를 발견 하려 면 이 명령 을 사용 하 십시오:g CTRL-G
출력 이 매우 지루 합 니 다:Col 9-16 of 9-16; Line 277 of 330; Word 1806 of 2058; Byte 10580 of 12206
마지막 두 숫자 는 파일 의 현재 바이트 위치 와 파일 바이트 총수 입 니 다.이것 은 이미 'fileformat' 을 고려 했다.
옵션 을 선택 하면 줄 바 꿈 문자 바이트 가 다른 영향 을 줍 니 다.
파일 에 지정 한 바이트 로 이동 하려 면 "go"명령 을 사용 하 십시오.예 를 들 어 바이트 2345 로 이동 하려 면:2345go
XXD 사용
진정한 바 이 너 리 편집 기 는 두 가지 방식 으로 텍스트 를 표시 합 니 다. 바 이 너 리 와 16 진 형식 입 니 다.너 는 Vim 에서
이 효 과 는 변환 프로그램 'xx d' 를 통 해 이 루어 집 니 다.이 프로그램 은 Vim 과 함께 발표 되 었 다.
우선 이 파일 을 바 이 너 리 로 편집 합 니 다.vim -b datafile
현재 xxd 로 이 파일 을 16 진수 로 변환 합 니 다.:%!xxd
텍스트 가 이렇게 보 입 니 다:0000000: 1f8b 0808 39d7 173b 0203 7474 002b 4e49 ....9..;..tt.+NI
0000010: 4b2c 8660 eb9c ecac c462 eb94 345e 2e30 K,.`.....b..4^.0
0000020: 373b 2731 0b22 0ca6 c1a2 d669 1035 39d9 7;'1.".....i.59.
이제 너 는 마음대로 이 텍스트 들 을 읽 고 편집 할 수 있다.Vim 은 이 정 보 를 일반 텍스트 로 취급 합 니 다.
16 진법 부분 을 수정 하면 문자 부분 을 표시 할 수 있 는 변 화 를 가 져 오지 않 고 반대로 도 마찬가지 입 니 다.
마지막 으로 다음 명령 으로 변환 합 니 다.:%!xxd -r
16 진법 부분의 수정 만 이 채 택 될 수 있다.오른쪽 에 텍스트 부분의 수정 을 표시 할 수 있 습 니 다. 무시 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
✨〰️ ZI 〰️✨ Vim 구문❮ ZI ❯ 🧙♀️ Zsh를 위한 스위스 아미 나이프. 모든 것을 함께 붙일 수 있도록 설계되었습니다. zsh 유형의 파일에 있는 명령에 대한 Vim 구문 정의입니다. 📥 설치 Vim 플러그인으로 로드합니다. 예를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.