컴퓨터 공부/유닉스 시스템 프로그래밍

vi

려리군 2009. 4. 21. 17:44

vi

 

모드

명령모드(기본)
명령줄모드 : 명령이 길 경우
입력모드

 

$vi
새파일 편집할 때 위와 같이 입력한다.
$vi [파일이름]

[파일이름]으로 편집할 때 위와 같이 입력한다.

 

명령모드
hjkl : 상하좌우 이동
^, 0 : 왼쪽 끝
$ : 오른쪽 끝
HML : 화면이동
wbe : 단어이동
:n, nG : 줄번호 이동
$G : 파일 끝
ctrl+u, ctrl+d : 화면 반페이지씩 이동
ctrl+b, ctrl+f : pageup, pagedown
ctrl+l : refresh(서버와 클라이언트 화면 동기화) <- 안중요
x,#x : 문자 #(개수) 삭제
dw,#dw : 단어 삭제
dd,#dd : 줄 삭제
u : undo
r : 커서 위치의 한 문자 변경
cw : 단어 변경
i(현재커서),a(현재커서 오른쪽 이동),o(한줄 비움) : 입력모드로 고고싱
: : 명령줄 모드로 고고싱

y : 복사
p : 뒤로 붙이기(버퍼에 있는 내용, 삭제나 복사에 의해)

 

검색 명령어

/(단어) : (단어)를 아래로 검색
?(단어) : (단어)를 위로 검색
n(다음), N(이전)

 

명령줄 모드
:(범위)s/찾을문자열/바꿀문자열
예시)

:14,20s/linux/windows
:.,$s/linux/windows
(.은 시작, $는 끝)
/g : 같은 줄에서 찾은 문자열도 바꿔줌. (원래는 라인에서 첫번째 찾은 단어만 바꿔준다.)

 

환경 설정
set number : 라인수 표시
set nonu : 라인수 표시 취소
set all : 도움말
set cindent : c언어 스타일에 들여쓰기, 내어쓰기 됨
set tabstop=4 : tab키 눌렀을 때 몇 칸 움직일까?
set shiftwidth=4 : indent 몇 칸 띄어쓰기?