[처음에 알아야 할 명령] :q!
1. :q! 빠져 나오기 : <ESC>(왼쪽 위에 있는 에스케이프 키)를 누른 후 :q! (콜론(쉬프트를 누른 후 세미콜론 키)+q(영문자판의 q)+!(쉬프트를 누른 후 오른쪽 상단의 1을 누름)를 누르면 (저장하지 않고) 빠져 나옵니다.
2. 입력(편집) 모드 진입: i(아이) 또는 a(에이), o(오) 또는 r(알), R(대문자 알)와 I(대문자 아이), O(대문자 오), A(대문자 에이)를 누르거나 어쩌나 누르게 되면 입력할 수 있는 편집(입력)모드가 됩니다. (글자가 입력되면 입력(편집)모드입니다.)
[ VIM 명령어 정리] 초보자가 Vi(풀버전은 Vim)을 사용할 때에 가장 혼란스러운 부분이 세 가지 모드("입력 모드"와 "명령 모드" / "실행 모드")에 대한 개념입니다. 개념 정리를 명확하게 정리해야 "충격과 혼돈"에서 벗어날 수 있습니다.
. 한글자판 상태인지, 영문자판 상태인지 명확히 알아야 합니다.
. 처음에 Vi를 실행하면 "명령 모드" 상태임을 알아야 한다. 보통 편집기 처럼 실행하고 열리면 입력하는 상태가 아닙니다. 즉, 명령상태이므로 입력모드(a, i, o, A, I, O, R 중에 a를 입력)로 진입하면 비로소, 마음대로 키를 눌러도 좋습니다. 마음대로 키를 누르면서 "입력모드"에서 할 수 있는 것들이 무엇인지를 숙지합니다.(오직, "Esc"만 누르지 마라.-Vim 종료는 Esc키를 누르고 Shift+;을 눌러 :(콜론)을 입력한 다음 q(영문철자)와 엔터를 입력하면 프롬프트(터미널 상태)로 빠져나옵니다. [ Esc > Shift+; > q > 엔터 ]
Vi는 처음 사용자를 충격과 혼란으로 빠뜨려서 접근하지 못하게 하려는 의도가 있는 것 같습니다. 처음 사용자에 대한 배려는 철저하게 없습니다. 정확히 말하면, 처음 사용자에게는 전혀 관심이 없습니다. 오직 모든 것이 Vi(Vim)사용자에 대해서 집중하고 있다. 즉, 어리석은 Vim 사용자도 Vim을 사용하다 보면 현명한 프로그래머로 이끄는 인공지능에 가까운 UI를 내재하고 있습니다. 적응이 되면 다른 편집툴은 가소로울 뿐이다. 이 메모장 같은 Vim이 가히 전지전능한 능력을 갖고 있다는 것을 누가 알겠습니까?
. Vim은 모든 서버에 기본으로 탑재되어 있습니다. Vim을 잘 사용하면 수준있는 프로그래머라고 볼 수 있습니다.
[ Vim(빔)의 대표적인 기능 ]
1. vi와 99.9% 호환 모드 지원: VIM을 vi처럼 사용하고자 하는 사용자를 위한 모드로서 vi의 버그 조차도 그대로 흉내를 냅니다.
2. 다단계 반복(redo)/취소(undo) 기능
3. 다수의 화면분할 및 버퍼 기능
4. 화면분할은 수직/수평 모두 가능
5. 비주얼 모드 지원
6. 텍스트를 비주얼하게 선택하여 복사나 삭제등 여러가지 작업을 수행할 수 있으며, 사각형 형태로 선택할 수도 있습니다.
7. 명령행 라인의 편집 및 이력(history) 기능
8. 이전에 입력했던 명령을 불러와서 편집 및 재실행할 수 있다.
9. 명령행 라인 완성(completion) 기능
10. 명령어나 파일명 등을 일부만 입력한 후에 자동으로 완성시키는 기능
11. 텍스트 형식화(formatting)
12. 주어진 옵션에 따라 텍스트 혹은 프로그램 소스 코드/코멘트 등의 형식을 자동으로 바꿀 수 있다.
13. 입력모드에서의 단어/라인 완성 기능
14. 단어 혹은 라인의 일부만 입력한 후에 현재 파일이나 태그 파일 혹은 사전 파일등에서 단어/라인을 찾아서 자동으로 완성시킬 수 있다.
15. 자동명령: 파일명 혹은 이벤트에 따라 명령 실행
16. 특정 파일을 열 때 혹은 특정 이벤트 발생시 자동으로 원하는 명령을 실행할 수 있다.
17. 그래픽 사용자 인터페이스
18. 메뉴, 도구막대, 대화상자등
19. 매크로 기록 기능
20. 반복적인 작업이 필요한 경우 작업을 한 번 수행하면서 그 내용을 기록하여 간단하게 해당 작업을 반복할 수 있다.
21. 서로 다른 많은 시스템에서 동일한 기능/환경 제공
22. 확장된 내장 스크립트 언어 제공
23. 태그 기능을 이용한 온라인 매뉴얼
24. 한글을 포함한 여러 언어 지원
25. 1바이트를 사용하는 영어, 유럽의 여러가지 언어등과 여러바이트를 사용하는 한글, 중국어, 일본어등을 지원하며, 심지어는 오른쪽에서 왼쪽으로 입력을 해나가는 히브리어 같은 언어도 지원한다.
26. 플러그인 기능: explorer 기능이나 network을 통한 파일 편집 등을 이 플러그인 기능을 이용하고 있다.
27. 폴딩 기능 : 소스코드/문서의 일부분을 접거나 펴서 작업을 할 수 있으므로 한 화면에서 전체 구조를 보면서 작업이 가능
28. 함수, 변수 등을 여러 소스코드에서 찾는 기능
29. 200 가지 이상의 언어에 대한 문법 강조 (syntax highlighting) 기능
30. 빠른보완(quickfix) 모드
31. 소스코드의 편집-컴파일-수정 단계를 빠르게 진행할 수 있음
32. 많은 언어에 대한 자동 들여쓰기 (auto-indenting) 기능
33. 기타 모두 다 열거할 수 없을 정도의 수많은 기능들