항시 자주 안쓰는넘들은 까묵는다...
VI 편집기 실행하기
. #vi : 새 파일을 편집할 수 있는 화면이 나온다.
여기서 작업을 한후에는 반드시 파일이름을 지정하여 저장하여 주어야 한다.
ex) w filename(최하위행 모드)
. #vi filename : filename 이름을 자진 파일이 존재하는 경우 해당 파일을 편집하고
filename 이름을 가진 파일이 존재하지 않는 경우 새 파일을 편집할 수 있는 화면 상태가 된다.
. #vi -R filename : Readonly, Readonly 상태로 열어준다.
중요한 파일, 여러 사람이 동시에 수정가능한 파이을 다룰 때 편리하게 사용될 수 있다.
view 명령어와 동일한 기능을 수행할 수 있다.
. #vi -r filename : Recovery, 이전 vi 편집 작업 중 비정상적으로 작업이 끝난 경우 편집하던 파일 복구시에 사용된다.
이 경우 사용자의 메일로 복구할 파일에 대한 정보가 오게 된다.
. #vi -L : 이전 vi 편집 작업 중 비정상적으로 작업이 끝난 경우 복구할 파일드에 대한 전체적인 목록을 볼 수 있다.
. #vi +38 filename : 편집작업에 드어갈 때 특별한 명령어를 수행하면서 시작하는 경우에 사용한다.
#vi -c 38 filename : 위와같은 의미.
VI 편집기 Mode
(1) command mode(명령행 모드) - vi 편집기의 초기 상태. 입력외에 나머지 작업이 가능하다.
l. 이동할 때 쓰이는 명령어
. h : 한 문자 왼쪽으로 이동
. l : 한 문자 오른쪽으로 이동
. w : 한 단어 오른쪽으로 이동
. b : 한 단어 왼쪽으로 이동
. 0(^) : 라인의 처음 문자로 이동
. $ : 라인의 마지막으로 이동
. j : 한 문자 아래로 이동
. k : 한 문자 위로 이동
. <CTRL+F> : 다음 페이지로 이동
. <CTRL+B> : 이전 페이지로 이동
. 1G : 문서의 첫 번째 라인으로 이동
. G : 문서의 마지막으로 이동
ll. 삭제할 때 쓰이는 명령어
. x : 현재 커서 한 글자 삭제
. dw : 햔재 커서 한 단어 삭제
. d0 : 현재 커서부터 라인의 처음까지 삭제
. d$ : 현재 커서부터 라인의 마지막까지 삭제
. dd : 현재 라인 삭제
. 3dd : 현재 커서 라인을 포함해서 아래로 3개 라인 삭제
. :1,3d : 1번째 라인부터 3번째 라인까지 삭제
. dG : 현재 커서 라인부터 문서 마지막까지 삭제
. d1G : 현재 커서 라인부터 문서 처음까지 삭제
lll. 복사/붙이기할 때 쓰이는 명령어
. yy : 현재 라인 복사(Yank)
. 3yy : 현재 커서 라인 포함해서 하위의 3개의 라인 복사
. :1,3 co 5 : 첫 번째 라인부터 3번째 라인까지 복사하여 5번째 라인 아래에 붙이기
. :1,3 m 5 : 첫 번쨰 라인부터 3번째 라인까지 5번째 라인 아래에 이동하기
. p : 현재 커서 아래에 붙이기
. P : 현재 커서 위에 붙이기
lV. 검색할때 쓰이는 명령어
. /NEW : 현재 커서 라인부터 찾을려는 문자열 검색
. ?NEW : 문서의 마지막 라인부터 찾을려는 문자열 검색
. n : 정방향으로 다음번째 검색
. N : 역방향으로 검색
V. 검색&붙이기
. :%s/hello/Hello/g : 문저 전체에서 hello를 검색해서 HELLO로 변환
. :1,$s/hello/HELLO/g : 문저 전체에서 hrllo를 검색해서 HELLO로 변환
. 5,10s/^/#/ : 5번째 라인부터 10번째까지의 라인의 처음부분에 '#' 처리
VI. Undo
. u : 바로 이전에 상태로 되돌림
. U : 라인전체에 대해 이전 상태로 되돌림
Vll. Replace
. r : 현재 글자를 대치
. R : <ESC>키를 누르기 전까지 현재 글자 대치
Viii. Save & Quit
. :w - 현재 파일에 저장하기
. :w filename - 다른이름으로 저장하기
. :w! - 현재파일에 강제적으로 저장(root만 쓸수있다)
. :3, 10w file - 3번째 라인부터 10번째 라인까지 file로 저장
. :q - 저장 안하고 편집기 종료
. :wq - 저장하고 편집기 종료
. :!CMD - vi 편집기를 빠져나가지 않은 상태에서 쉘 명령어를 수행
. :x - 저장하고 편집기 종료
. ZZ - 저장하고 편집기 종료
(2) Input mode(입력행 모드) - 키입력을 파일에 입력하는 상태.
. vi 편집기 실행시 기본 모드는 명령행 모드이다. 명령행 모드에서 입력을 하기 위해서는 입력행 모드로 전환해야한다.
. 입력행으로 전환하기 위한 문자
. i : 현재 커서 위치로부터 입력한다.
. I : 현재 커서가 있는 행의 처음부터 입력한다.
. a : 현재 커서 위치 이후부터 입력한다.
. A : 현재 커서가 있는 행의 마지막부터 입력한다.
. o : 현재 커서가 있는 아래행부터 입력한다.
. O : 현재 커서가 있는 윗행부터 입력한다.
(3) last line mode - 명령어를 입력하기위한 상태.
. :set nu - vi 편집기모드의 라인넘버를 붙여준다
. :set nonu - vi 편집기모드의 라인넘버를 해제.