h, j, k, l의 키로 좌, 하, 상, 우 방향으로 커서 이동 가능
(화살표가 지원되지 않는 리눅스도 존재하기 때문에 h, j, k, l로 조작하는 것이 좋음)
vi에디터로 내용을 바로 수정하고 싶을 때
:s/ms-wbt-server/rdp
-> 현재 페이지에서 찾아서 대체하겠다/[기존문자열/[변경할 문자열]
:%s/ms-wbt-server/rdp
-> 전체 문서에서 찾아서 대체하겠다/[기존문자열/[변경할 문자열]
u : 되돌리기 기능(여러 번 누르게 되면 누른 횟수만큼의 이전으로 돌아감)
(undo의 의미)
ctrl + r : u로 되돌린 것들을 앞으로 다시 돌림(여러 번 누르게 되면 누른 횟수만큼의 다시 앞으로 돌아옴)
(redo의 의미)
i 입력으로 insert모드 변환 가능
esc 눌러서 입력모드
: 눌러서 명령모드
저장 후 나가기
현재 변경 사항 저장하지 않고 강제로 나가기
명령모드 키 값들
1. 이동
- gg : 문서의 첫 라인으로 이동
- G : 문서의 마지막 라인으로 이동
- 5G : 숫자(5번) 라인으로 이동
- ^ : 행의 처음
- 0(숫자) : 행의 처음
- $ : 행의 마지막
- w : 단어사이 이동
2. 방향키값
- h : 왼쪽
- j : 아랫쪽
- k : 윗쪽
- l : 오른쪽
3. 복사
- yy : 현재 커서가 있는 라인을 복사
- 5yy : 현재 커서로부터 5라인을 복사
4. 붙여넣기
- p(소문자) : 현재 커서의 다음 라인에 붙여넣기
- P(대문자) : 현재 커서의 윗라인에 붙여넣기
5. 삭제
- x : 자소 단위(한 음절)로 삭제
- dd : 현재 커서의 라인을 삭제
- D : 현재 커서의 라인의 문자 삭제, 라인은 유지됨
- dw : 단어 단위로 삭제
- d$ : 현재 커서 뒤에 있는 행의 문자열 삭제
- d0 : 현재 커서 앞에 있는 행의 문자열 삭제
6. 취소
- u : 실행을 취소
- 10u : 10번 실행을 취소
- ctrl + r : 취소를 번복
입력모드 키 값들
7. 입력모드
- i(소문자) : 현재 커서의 앞에 입력
- a(소문자) : 현재 커서의 뒤에 입력
- A(대문자) : 현재 라인의 맨 뒤에 입력
- s(소문자) : 현재 커서의 자소(한 음절)를 지우고 그 자리부터 입력하기
- S(대문자) : 현재 라인을 지우고, 새롭게 입력
- o(소문자) : 현재 커서의 아래 행에 입력
- O(대문자) : 현재 커서의 아래 행에 입력
실행 모드 키 값들
8. 실행 모드 키 값들(실행모드로는 : 으로 표시됨)
- :w (저장)
- :q (변경된 내용이 저장된 경우에만 빠져나옴)
- :q! (변경된 내용을 저장하지 않고 빠져나옴)
- wq (변경된 내용을 저장한 후 빠져나옴)
- :set nu (라인 번호 출력)
9. 이동한 후 붙여넣기(잘라내기)
- :2,3 m 13
2,3 행을 잘라내서 13행에 붙여넣기
10. 특정 라인들을 복사한 후 특정 라인에 붙여넣기
- : 3,4 co 13
3,4행을 복사해 13행에 붙여넣기
11. 라인의 범위 지정 후 복사, 삭제하기
- :58,60d (58라인에서 60라인까지 삭제)
- :1,10y (1라인에서 10라인까지 복사)
12. 모든 라인을 범위로 설정한 후 복사하기
- :0,$ co $ (현 파일의 모든 라인을 복사한 후 마지막 라인으로 붙여넣기)
- :% co $ (현 파일의 모든 라인을 복사한 후 마지막 라인으로 박사)
-> 0,$ co $ (문서 첫 행부터 마지막 행까지 복사 후 마지막 행에 붙여넣기)
-> % co $ (문서 전체 행을 복사 후 마지막 행에 붙여넣기)
문자열 검색 키 값들
1. 문자열 검색
- /문자열 (첫라인부터 아래방향으로 검색)
- ?문자열 (마지막 라인부터 윗방향으로 검색)
- /end (end는 검색하고자 하는 문자열)
- n (현 커서의 아래 방향으로 검색된 다음 문자열로 이동)
- N (현 커서의 윗 방향으로 검색된 다음 문자열로 이동)
문자열 치환 키 값들
1. 문자열 치환
- :%s/OLD/NEW/g (문서 전체에서 OLD를 NEW로 치환)
- :%s/end/END/g (문서 전체에서 소문자 end를 대문자 END로 치환)
- :%s/old/new/g (모든 old 단어를 찾아 new 단어로 치환)
- :%s/^old/new/g (행의 첫 단어가 old인 것을 new로 치환)
- :%s/old$/new/g (행의 끝 단어가 old인 것을 new로 치환)
- :%s/aaa//g (모든 aaa 단어를 삭제)
- :0,$s/Linux/Redhat/g (파일 전체에서 Linux를 찾아서 Redhat으로 확인 없이 교체)
- :10,20s/^/>>/c (10번 라인에서 20번 라인까지 라인 앞에 >>를 확인 후 첨가)
2. 주석처리하기
- :g/^[^#]/s/^/m
- :%s/^[^#/#&/g
- :%s/^[[:alnum:]]/$&/g
-> 걍 문자행 가서 앞에 # 넣으면 안됨?
3. 패턴과 일치되는 라인 삭제(특정 pattern이 들어가는 line 지우기)
- g/pattern/d
4. 특정 pattern이 들어가 있는 line을 제외한 모든 line 지우기
- g!/pattern/d
- v/pattern/d
5. error, warning, fail이 포함되지 않는 모든 line 지우기
- :v/error\|warning\|fial/d
6. 빈줄 찾아 지우기
- :g/^$/d
7. 라인부터 n lines 삭제
- 1800d 14 (1800라인부터 14라인 삭제)
8. 외부 파일을 불러와서 현 커서에 추가하기
- :r FileName
9. 외부 파일을 불러와서 특정 라인에 추가하기
- :10r FileName (파일을 불러와서 10라인에 추가)
10. 명령 실행의 결과값을 특정 라인에 추가하기
- 10r ! ls -l
11. 열려있는 창에서 다른 파일 불러오기
- :e FileName
12. 단축키 값들
- ctrl + z : vi에서 백그라운드로 실행하기
- shift + zz : 저장하고 빠져 나오기
- shift +zq : 취소하고 빠져 나오기
13. 포그라운드로 작업 실행하기
- # fg 1(작업id)
14. set
검색할 때 대소문자 구별 안함
- :set ic
- :set noic
set nu할 때 번호와 간격 조정
- :set nuw=1
항상 파일이름, 커서위치, 문서경과 표시하기
- :set ls=2
- :set laststatus=2
- :set ls=1(취소)
자동 들여쓰기
- :set autoindent
자동 들여쓰기 취소
- :set noautoindent
상용구 기능
- :ab 문자 상용구
- :abb for KOREA(for 문자 입력할 때 KOREA를 호출함)
상용구 해제
- unab for
상용구 보기
- :ab
vi에디터 파일 실습해보기
'On-Premise > System' 카테고리의 다른 글
dpkg, apt, tar, sed 등 (1) | 2024.01.02 |
---|---|
리눅스 권한의 개념, sudo 명령 등 (0) | 2024.01.02 |
리눅스 기본 명령어(2) (0) | 2024.01.02 |
리눅스 기본 명령어(1) (0) | 2024.01.02 |
개인 공부 목적으로 사용하는 블로그입니다 :)
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!