2000/03/14
Lee, Hee-joon
wideface@sparcs.kaist.ac.kr
VI 시작하기
vi filename : 지정한 파일을 편집
vi -R filename : 읽기 전용으로 열기
(같은 파일을 한번 더 열면 읽기 전용으로 열림)
vi -r : 되살릴 수 있는 파일 목록을 보여준다.
vi -r filename : 지정한 파일을 되살려서 편집한다.
모드변환명령모드
이동, 삭제, 복사, 탐색 등의 명령을 수행한다.
vi 를 처음 실행시켰을때는 명령모드이다.
이때 입력되는 모든 키보드 입력은 vi 가 명령으로 해석한다.
vi 는 모든 입력에서 대소문자를 구분한다.
입력모드로 들어가는 명령에는 a,A,i,I,o,O 가 있다.
명령모드에서 : 를 누르면 last-line mode 로 들어간다.
last-line 모드에서 ESC 키를 누르면 다시 일반적인 명령모드로 돌아간다.
입력모드
텍스트의 입력이 가능한 상태이다.
ESC 키를 누르면 명령모드로 빠져나간다.
커서이동 k h l h(왼쪽), j(아래), k(위), l(오른쪽)
j
커서의 이동은 화살표 키로도 가능하다.
하지만 이것은 좋지 않은 습관이다.
vi 로 작업하는 동안에는 키보드 위에서 문자를 입력하기 위한 부분외에는
다른 곳으로 손을 이동시킬 필요가 없기 때문에 빠른 작업이 가능한데
커서이동에 화살표 키를 이용하는 것은 이런 장점을 무시하는 것이기
때문이다.
0 현재 커서가 위치한 줄의 처음으로 이동한다.
$ 현재 줄의 마지막으로 이동한다.
% (), {}, [] 의 괄호문자 사이를 이동한다.
왼쪽 괄호에 커서를 두고
% 를 누르면 이 괄호를 닫는 오르쪽 괄호로 커서가 이동하고,
오른쪽 괄호에서 누르면 왼쪽괄호로 이동한다.
C 로 코딩할때 괄호를 제대로 닫았는지 확인하기에 편하다.
w,W 다음 단어의 첫 글자로 커서를 이동한다.
W 는 단어 구분을 띄어쓰기로
하고,
w 는 영어권에서 단어를 구분하는 방식으로 단어를 구분한다.
void main(main_arg)라는 문자열을 w, W 로 이동해 보기 바란다.
e,E 다음 단어의 끝 글자로 커서를 이동한다.
e 와 E 의 차이는 w,W 의 차이와 같다.
b,B 이전 단어의 첫 글자로 커서를 이동한다. 역시 w,W 의 차이와 같다.
^u, ^d 반 화면 단위로 위, 아래로 이동하는 명령이다.
up, down 의 의미이다.
^b, ^f 한 화면 단위로 위, 아래로 이동하는 명령이다.
backward, forward 의 의미이다.
#gg, #G, :#
# 에는 숫자를 입력한다. 세가지 모두 지정한 행으로 이동하는 명령이다.
gg, G 문서의 첫째줄로 이동, 문서의 끝줄로 이동하는 명령이다.
삽입
a 현재 커서위치 다음부터 입력
A 현재 커서가 위치한 줄의 제일 끝부터 입력
i 현재 커서위치부터 입력
I 현재 커서가 위치한 줄의 처음부터 입력
o 현재 커서위치의 아래에 새로운 줄이 생기면서 입력상태로 된다.
O 커서위치의 위에 새로운 줄이 생기면서 입력상태로 된다.
삭제 (잘라내기)
vi 에서의 삭제는 윈도체제의 응용프로그램에서의 '잘라내기'와 같은 기능이다.
x 커서 위치의 한 문자 삭제
X 커서 왼쪽의 한 문자 삭제
D 커서위치부터 줄 끝까지 삭제
dw 커서가 위치한 한 단어를 삭제
dd 커서가 위치한 한 줄을 삭제
#dd # 에 입력한 수만큼의 줄을 삭제
:10d 10번째 줄을 삭제
:10,20d 10~20 줄 삭제
복사
yy,Y 한 줄 복사
#yy # 에 입력한 만큼의 줄을 복사
p(소문자) 커서의 아랫줄 혹은 커서 뒤에 붙여넣기
P 커서의 윗줄 혹은 커서 앞에 붙여넣기
붙여넣기 명령으로 '삭제(잘라내기)' 명령으로 삭제한 것을
붙여넣을 수 있다.
:10co20 10번째 줄을 복사, 20번째 줄 밑에 삽입
:10,20co30 10~20 줄을 복사, 30번째 줄 밑에 삽입
:10m20 10번째 줄을 잘라내어 20번째 줄 밑으로 이동
탐색
/문자열 아래쪽으로 문자열 찾기
/ 아래쪽으로 이전에 찾았던 문자열 찾기
?문자열 위쪽으로 문자열 찾기
? 위쪽으로 이전에 찾았던 문자열 찾기
n / 혹은 ? 명령을 같은 방향으로 다시 찾기
N / 혹은 ? 명령을 반대 방향으로 다시 찾기
치환
:s/from/to/ 현재 커서가 위치한 줄에서 from 이라는 문자열을
to 라는 문자열로 바꿈
:1,10s/from/to/g 1~10 줄 까지 바꾸기
범위 지정하기
복사, 삭제, 치환 명령 등에서는 적용범위를 줄 수 있는데 이때
범위를 나타내기 위한 특수한 문자들이 있다.
$ 문서의 끝 줄
. 커서가 위치하는 줄
% 문서 전체
1,10 1~10 줄
ex)
:.,$s/abc/cba/
이런 명령은 현재 커서가 위치한 줄로부터 문서끝까지 abc 라는 문자열을
cba 로 바꾸라는 명령이다.
v(소문자) 블럭지정. 아래아한글에서 F3 으로 지정하는 블럭과 같다.
^v 블럭지정. 아래아한글에서 F4 로 지정하는 블럭과 같다.
V(대문자) 줄단위로 블럭을 지정한다.
블럭지정을 한 후 복사, 삭제, 치환 명령을 내릴 수 있다.
바꾸기(고치기)
J 커서가 위치한 줄과 그 아랫줄을 한 줄로 만든다.
r 커서가 위치한 한 문자를 다른 문자로 바꾼다.
abc -> aec 로 바꾸려면,
'b' 위에 커서를 두고 re 라고 누르면된다.
R 커서가 위치한 부분부터 입력하는대로 겹쳐써진다.
워드프로세서의 '수정'상태가 되는것이라 생각하면된다.
s 커서가 위치한 한 문자는 겹쳐써지고, 그 뒤로 입력되는 문자들은
삽입된다.
C 'D' 명령으로 지우고 입력상태로 변하는 것이라고 생각하면 된다.
cw 커서가 위치한 한 단어가 지워지고 삽입상태로 들어간다.
S,cc 커서가 위치한 줄이 지워지고 삽입상태로 들어간다.
~ 커서가 위치한 곳의 대소문자가 바뀐다.
기타
u 마지막 작업을 취소한다.
계속해서 u 를 누르게되면 이전에 했던 작업들을 계속 거슬러
올라간다.
. 마지막 작업을 반복한다.
<<,>> 커서가 위치한 줄을 왼쪽, 오른쪽으로 이동시킨다.
이때 몇 칸을 이동시킬것인지에 대한 설정이 set sw 이다.
파일관련 명령
:r filename 파일을 읽어와서 현재 커서가 위치한 줄 아래에 삽입한다.
:10r filename 명령은 10째줄 아래에 파일 내용을 삽입한다.
:w [filename] 파일명을 주지 않으면 현재 편집중인 파일에 저장하고
파일명을 주면 그 파일에 저장한다.
:wq 작업중인 파일에 저장하고 vi 를 종료한다.
:q 작업중인 파일을 저장하지 않고 vi 를 종료한다.
파일을 편집했다면 vi 를 종료할 수 없다.
:q! 파일을 편집한 것을 저장하지 않은채로 vi 를 종료한다.
:x,ZZ 파일을 편집했다면 :wq 와 같은 역할을 하고,
편집하지 않았다면 :q 와 같다.
:e [filename]
작업중인 파일을 닫고 다른 파일을 연다.
파일을 편집했다면 다른 파일을 열수 없다.
:e! [filename]
작업중인 파일을 편집했더라도 저장하지 않은채로 닫고,
다른 파일을 연다.
:f, ^G 편집중인 파일의 정보를 화면 아랫줄에 표시해준다.
환경설정
:set 현재 설정된 환경변수들을 출력해준다.
:set all 모든 환경변수들을 출력해준다.
:set nu(number) 줄번호를 보여준다. 해제는 :set nonu
:set ai(autoindent) 자동들여쓰기. 들여쓰기를 하고 엔터로 줄을 바꿨을때 들여쓴 것을 유지해준다.
해제는 :set noai
:set cindent C 코드에 맞춘 자동 들여쓰기.
해제는 :set nocindent
:set ts(tapstop)=8 tap 키로 건너뛰는 칸 수를 8로 설정.
:set sw(shiftwidth)=8
줄 밀어내기 칸 수를 8로 설정.
:set 명령으로 설정한 환경변수들은 vi 를 종료한 후 다시 실행시키면
기본값으로 돌아가버린다.
자신만의 설정을 항상 유지하려면 홈디렉토리에
.vimrc 라는 파일을 만들어둔다.
.vimrc 는 vim 의 환경설정 파일이다.
'UNIX&LINUX > AIX' 카테고리의 다른 글
[AIX] netstat 명령어 - 포트 오픈 여부 확인하는 방법 (0) | 2014.08.27 |
---|---|
AIX5.3 디스크 용량 확장 (0) | 2014.08.27 |
AIX 자주 쓰는 명령어 (0) | 2014.08.27 |
AIX - 유저 계정 잠김(Locked) 확인 및 해제 (0) | 2014.08.27 |
VI 에디터 120% 사용하기 (0) | 2014.08.13 |
IBM AIX Admin 교육 강좌... (0) | 2014.08.13 |
aix java 설치하기 (smit installp) (0) | 2014.07.22 |
aix java 설치하기 Tip (0) | 2014.07.22 |