http://www.vim.org/pics/vim.moolenaar.vimlogo.gif
====== vim ======
* open file :e filename
* start vim with two files vsplit vim -O file1.txt file2.txt
* highlight syntax for xml :set filetype=xml
* set autoindent :set autoindent\_ | \_:set ai
* spellcheck :setlocal spell spelllang=engb
* Set tab width to 4 spaces :set tabstop=4
* edit a file in a new tab :tabedit {file}
* next tab :tabn
* previous tab :tabp
* split open file :vsplit filename or :split filename
* exit insert mode esc or ctrl-[
* go to normal mode for one command ctrl-o
* Go to beginning of a line ^ or 0 (normal mode)
* Go to the end of a line $ (normal mode)
* Go to the top of window H (normal mode)
* Go to last line of file G (normal mode)
* vi 에디터 사용법은 어떻게 되나요?
- telnet 작업 사용 안내
- vi 편집기란?
- vi 에디터 구성과 방법
1. 시작
2. 종료
3. 디스플레이 제어하기
4. 마지막으로 지운 것 복사하기
5. 패턴 검색
6. 약어의 사용
7. 줄 길이의 조정
8. 커서 이동
9. 편집 버퍼를 통한 이동
10. 셸 명령 실행
11. 패턴에 의한 치환
12. 데이터 읽기
13. 정규 표현식을 사용하기 위한 특수 기호
14. 줄 번호
15. 삽입
16. 편집하고 있는 파일을 바꾸기
17. 내용 고치기
18. 고치기의 취소 또는 반복
19. 문자 삭제
20. 여러 줄의 복사와 이동
21. 데이터를 처리하기 위한 셸 명령의 사용
22. 데이터 저장하기
- telnet 작업 사용 안내
"FAQ" 내용을 보시면 telnet 에서 해야 할 작업이 있습니다. vi 명
령어를 잘 모르신 분을 생각하여 준해 한 자료이니 작업을 하시면서 명령어를 잘 모
르실 경우 위의 제목 줄를 보시고 찾으시길 바랍니다.
- vi 편집기란?
파일을 생성하거나 편집하는데 사용하는 프로그램을 에디터(editor)라고 합니다. 유
닉스에서 사용하는 에디터 중 vi 에디터 텍스트 편집기로 가장 대표적인 프로그램은
vi 에디터 입니다. vi 편집기는 Visual Editor로서, 모든 유닉스 시스템에 있으며 따라
서 vi 편집기를 사용할 수 있다는 것은 어떤 유닉스 시스템에서도 문서 작업을 할 수
있다는 것을 의미합니다. 예를 들어 전자우편을 작성하거나, 프로그램을 작성하는 일
, 또는 기타문서를 작성할 때에 편집기는 필수적인 연장(tool)입니다.
- vi 에디터 구성과 방법
vi는 입력 모드와 명령어 모드 그리고 라인 모드의 세 가지 형태로 구성되어 있습니다.
입력모드는 일반적은 텍스트 에디터와 같이 원하는 문자를 입력할 수 있는 상태를 말
하고, 명령어 모드는 입력한 내용을 편집하기 위해서 다양한 편집 관련 명령어를 사용
할 수 있는 상태를 의미 한다. 따라서 입력 모드에서는 문자의 입력만이 가능하며 문
단의 재구성과 삽입, 삭제 등의 편집 기능은 오직 명령어 모드에서만 사용할 수 있습
니다. vi를 실행한 직후에는 명령어 모드에 위치하게 되며 i(insert)나 a(append),
o(open)를 입력하게나 키를 이용해서 입력 모드로 전환할 수 있다. 입력 모
드에서 명령어 모드로 복귀할 때는 키만을 사용합니다.
입력 모드로 전화 i 또는 a 또는 o 또는
명령어 모드로 전환
vi는 입력 모드와 명령어 모드 이외에 라인 모드를 추가로 갖고 있는데, 이는 셸 명령
어나 외부 프로그램들을 에디터의 내부에서 직접 실행 시킬 수 있는 모드입니다.
라인 모드는 vi의 본체인 ex가 실행되는 상테이므로 보다 원초적인 텍스트 조작이 가
능해진다. 또한 라인 모드는 셸과 직접 연결되어 파이프를 구성하기 때문에 작업 중인
텍스느에 대해서 다양한 작업을 연결시킬 수 있다. 다른 모드와는 달리 라인 모드는
화면의 마지막 줄에 라인 모드임을 알리는 콜론(:)과 함께 입력한 내용이 출력되어
진행 중인 내용을 확인을 할 수 있도록 되어 있다.
라인 모드는 명령어 모드에서만 전환될 수 있으며, 입력 모드에서 직접 라인 모드로
들어올 수 없다. 따라서 vi 에디터는 실행 직후에 위치한 명령어 모드에서 입력 모드
그리고 라인 모드의 세 가지 모드를 상호 전환시키면서 작업을 진행하는 방식으로
사용된다.
그림 삽입.
라인 모드에서 :을 먼저 입역한 뒤에 원하는 명령어를 입력하는 방식으로 vi 명령어
이외의 셸 명령어와 외부 명령어들을 실행시킬 수 있다.
1.시작
vi file
vi를 시작하여 지정한 파일 편집
vi -R file
읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집
view file
읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집
2.종료
:wq
데이터를 저장하고 종료
:q!
데이터를 저장하지 않고 종료
3. 디스플레이 제어하기
^L
현재 화면을 다시 디스플레이하기
:set number
내부 줄 번호 디스플레이
:set nonumber
배부 줄 번호 디스플레이 않기
4. 마지막으로 지운 것 복사하기
p
마지막으로 지워진 것을 커서의 뒤/아래에 삽입
P
마지막으로 지워진 것을 커서의 앞/위에 삽입
xp
두 문자를 바꿈
deep
두 단어를 바꿈
ddp
두 줄을 바꿈
5. 패턴 검색
/rexp
지정된 정규 표현식에 대해 앞으로 이동
/
이전의 패턴에 대해 앞으로 검색을 반복
?rexp
지정된 정규 표현식에 대해 뒤로 이동
?
이전의 패턴에 대해 뒤로 검색을 반복
n
/나 ?명령에 대해 같은 방향으로 반복
N
/나 ?명령에 대해 반대 방향으로 반복
6. 약어의 사용
:ab short long
short를 long에 대한 약어로 변경
:ab
현재 약어 목록을 표시
:unpa short
약어 short를 표시
7. 줄 길이의 조정
r
문자를 뉴라인으로 변경
J
줄의 결합
:set wm=n
오른쪽으로 n문자 위치에서 자동적으로 줄 나눔
8. 커서 이동
h
커서를 한 칸 왼쪽으로 이동
j
커서를 한 줄 아래로 이동
k
커서를 한 줄 위로 이동
l
커서를 한 칸 오른쪽으로 이동
커서를 한 칸 왼쪽으로 이동
커서를 한 칸 오른쪽으로 이동
-
커서를 이전 줄의 처음으로 이동
+
커서를 다음 줄의 처음으로 이동
커서를 다음 줄의 처음으로 이동
0
커서를 현재 줄의 맨 앞으로 이동
$
커서를 현재 줄의 맨 끝으로 이동
^
커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동
w
커서를 다음 단어의 첫 글자로 이동
e
커서를 다음 단어의 끝 글자로 이동
b
커서를 이전 단어의 첫 글자로 이동
W
w와 같음(문장 부호 무시)
E
e와 같음(문장 부호 무시)
B
b와 같음(문장 부호 무시)
(
다음 문장의 처음으로 이동
)
이전 문장의 처음으로 이동
{
다음 문단의 처음으로 이동
}
이전 문단의 처음으로 이동
H
커서를 화면 맨 위로 이동
M
커서를 중간으로 이동
L
커서를 맨 아래로 이동
9. 편집 버퍼를 통한 이동
^F
한 화면 아래로 이동
^B
한 화면 위로 이동
n^F
n화면 아래로 이동
n^B
n화면 위로 이동
^D
반 화면 아래로 이동
^U
반 화면 위로 이동
n^D
n줄만큼 아래로 이동
n^U
n줄만큼 위로 이동
10. 셸 명령 실행
:!command
vi를 중단하고 지정한 셸 명령을 실행
:!!
vi를 중단하고 이전의 셸 명령을 실행
:sh
vi를 중단하고 셸을 실행
:!csh
vi를 중단하고 새로운 C-셸을 실행
11. 패턴에 의한 치환
:s/pattern/replace/
현재 줄의 치환
:lines/pattern/replace/
지정한 줄의 치환
:line,lines/pattern/replace/
지정한 범위의 치환
:%s/pattern/replace/
모든 줄의 치환
12. 데이터 읽기
:liner file
file의 내용을 지정한 줄 다음에 삽입
:r file
file의 내용을 현재의 줄 다음에 삽입
:liner !command
command의 결과를 지정한 줄 다음에 삽입
:r !command
command의 결과를 현재의 줄 다음에 삽입
:r !look pattern
지정한 pattern으로 시작된 단어 삽입
13. 정규 표현식을 사용하기 위한 특수 기호
.
뉴라인을 제외한 모든 단일 문자와 대응
*
영 또는 그 이상의 선행 문자와 대응
^
줄의 시작과 대응
$
줄의 끝과 대응
<
단어의 시작과 대응
>
단어의 끝과 대응
[ ]
묶여진 문자중의 하나와 대응
[^ ]
묶여진 문자를 제외한 아무것하고나 대응
이어지는 기호를 문자 그대로 해석
14. 줄 번호
nG
줄번호 n으로 건너뛰기
1G
편집 버퍼의 첫 줄로 건너뛰기
G
편집 버퍼의 마지막 줄로 건너뛰기
:map g lG
g가 lG와 같도록 매크로 정의
15. 삽입
i
입력 모드로 전환, 커서 위치 앞에서 삽입
a
입력 모드로 전환, 커서 위치 뒤에서 삽입
I
입력 모드로 전환, 현재 줄의 앞에 삽입
A
입력 모드로 전환, 현재 줄의 끝에 삽입
o
입력 모드로 전환, 현재 줄의 아래에 전개
O
입력 모드로 전환, 현재 줄의 위에 전개
16. 편집하고 있는 파일을 바꾸기
:e file
지정한 파일의 편집
:e! file
지정한 파일의 편집, 자동 점검의 생략
17. 내용 고치기
r
단지 한 글자만 변경(입력 모드로 바뀌지 않음)
R
입력하는 대로 겹쳐 써서 변경
s
삽입에 의해 한 단어의 변경
C
커서의 위치로부터 줄 끝까지 삽입에 의한 변경
cc
전체 줄을 삽입에 의한 변경
S
전체 줄을 삽입에 의한 변경
cmove
커서부터 move까지 삽입에 의해 변경
~
대,소문자 바꾸기
18. 고치기의 취소 또는 반복
u
편집 버퍼를 수정했던 마지막 명령을 취소
U
현재 줄을 저장
.
편집 버퍼를 수정했던 마지막 명령 반복
19. 문자 삭제
x
커서가 있는 문자 삭제
X
커서의 왼쪽 문자 삭제
D
커서부터 줄의 끝까지 삭제
dd
현재 줄의 전체 삭제
dmove
커서부터 move까지 삭제
dG
커서부터 편집 버퍼의 끝까지 삭제
d1G
커서부터 편집 버퍼의 맨 앞까지 삭제
:lined
지정한 줄의 삭제
:line, lined
지정한 범위의 삭제
20. 여러 줄의 복사와 이동
:linecotarget
지정한 줄을 복사하여 target 줄 밑에 삽입
:line, linecotarget
지정한 범위를 복사하여 target 줄 밑에 삽입
:linemtarget
지정한 줄로 이동하여 target 줄 밑에 삽입
:line, linemtarget
지정한 범위로 이동하여target 줄 밑에 삽입
21. 데이터를 처리하기 위한 셸 명령의 사용
n!!command
n번 줄에서 command의 실행
!move command
커서부터 move까지 command 실행
!move fmt
커서부터 move까지 줄들을 형식 맞추기
22. 데이터 저장하기
:w
원래의 파일로 데이터를 저장
:w file
지정한 파일로 데이터를 저장
:w>> file
지정한 파일에 데이터를 추가
http://www.certcc.or.kr/paper/tr2002/tr2002_04/spammanual/vi.html