728x90
반응형
vi(visual editor)는 리눅스 환경에서의 대표적인편집기이다.
vi 시작하기
터미널 화면에서 ‘vi [파일이름]’
$ vi main.c
읽기 전용으로 볼 때는 –R 추가
$ vi –R main.c
vi의 모드
일반 모드
화살표 이동이나 특정 문자의 수정/삭제 및 편집에 쓰이는 대부분의 명령어를 실행
입력 모드
일반 모드에서 i, a, o를 입력하면 입력 모드로 전환되어 텍스트 입력이 가능
명령 모드
일반 모드에서 콜론(‘:’, Shift+;)을 입력하여 전환. 명령모드로 들어가면 화면 하단 버퍼에서 커서가 깜빡이는 상태로 전환
입력 모드 명령어
i(insert) – 커서 앞에 삽입
a(append) – 커서 뒤에 삽입
o – 현재 줄 다음 줄에 삽입. 한 줄 생성
O – 현재 줄 앞 줄에 삽입. 한 줄 생성
A – 줄 끝에 삽입
I – 줄 시작부분에 삽입
명령 모드 명령어
:w – 파일 저장
:w abc.txt – abc.txt 파일로 저장
:w! – 파일 강제 저장 (! 붙일 시 강제로 이행)
:q – 변경된 내용이 없을 때 그대로 종료 (+ !)
:wq, :x – 저장 및 종료 (+ !)
:e abc.txt – abc.txt 파일 편집
:n – n번째 줄로 이동
:set nu – 행 번호 표시
:set nonu – 행 번호 숨기기
:! – 잠시 쉘(터미널)로 복귀
:!abc – 터미널에서 abc 명령어 실행 후 복귀
:sh – 쉘 프롬프트 실행(복귀 시 exit)
커서 이동
h, j, k, l = ←, ↓, ↑, →
$ - 라인 끝
^ - 라인 처음
w – 다음 단어로 이동
b – 앞 단어로 이동
H – 화면 최상단
M – 화면 가운데
L – 화면 최하단
e – 단어의 끝
‘n’G – ‘n’번째 라인 이동
화면 이동
Ctrl + F – 화면 단위로 앞(forward)으로 이동
Ctrl + B – 화면 단위로 뒤(backward)로 이동
Ctrl + D – 앞으로 반 화면 스크롤
Ctrl + U – 뒤로 반 화면 스크롤
Ctrl + L – 화면 재표시
삭제
x – 커서가 위치한 문자 삭제
‘n’x – 커서가 위치한 문자부터 ‘n’번째 문자 삭제
dw – 커서가 위치한 단어 삭제
dd – 커서가 위치한 줄 삭제
‘n’dd – 커서가 위치한 라인부터 ‘n’번째 라인 삭제
D – 커서가 위치한 부분부터 현재 줄 끝까지 삭제
dG – 커서가 위치한 줄에서 끝까지 삭제
편집
r – 커서가 위치한 문자를 다른 문자로 교체
R – 커서가 위치한 부분부터 Esc 키를 누를 때까지 계속 덮어쓰기
cw – 커서가 위치한 단어 변경
cc – 커서가 위치한 줄 변경
C – 커서가 위치한 곳 오른쪽 줄 변경
s – 커서가 위치한 문자열 변경
J – 현재 줄과 아래 줄 결합
xp – 커서가 위치한 문자와 오른쪽 문자 교환
~ - 대/소문자 치환
u – 이전 명령 취소
. – 최근의 작업 반복 수행
복사
y – 문자 복사
yw – 커서가 위치한 단어 복사
yy – 커서가 위치한 줄 복사
yj – 커서가 위치한 줄과 그 다음 줄까지 복사
yo – 커서가 위치한 줄의 처음까지 복사
yk – 커서가 있는 줄과 그 앞 줄까지 복사
‘n’yy – n개의 라인 수만큼 복사
붙여넣기
p – 삭제/복사된 내용을 커서가 있는 문자나 줄 뒤에 삽입
P – 삭제/복사된 내용을 커서가 있는 문자나 줄 앞에 삽입
검색
/‘abc’ – 커서가 위치한 텍스트에서 순방향으로 ‘abc’ 검색
? ‘abc’ – 커서가 위치한 텍스트에서 역방향으로 ‘abc’ 검색
n – 순방향으로 이전 검색 반복
N – 반대 방향으로 이전 검색 반복
.vimrc
$ vi ~/.vimrc
vimrc을 최상위 디렉토리에 생성해서 vi 편집기의 각종 설정을 할 수 있다.
728x90
반응형
'개발 · 컴퓨터공학' 카테고리의 다른 글
네트워크 프로그래밍 - TCP 함수 호출 순서, Iterative 서버 (0) | 2021.10.04 |
---|---|
네트워크 프로그래밍 - TCP State Transition Diagram (0) | 2021.10.03 |
UNIX - multi-user environment, permission, password change (0) | 2021.10.01 |
UNIX - standard input, output, error, standard library, error handling (0) | 2021.09.30 |
UNIX - system call - dup, fcntl (0) | 2021.09.29 |