*usr_24.txt* Vim version 7.4 대상. 새로 고침: 2006년 7월 23일 VIM 사용설명서 - Bram Moolenaar 저 정지용 역 빠르게 입력하기 Vim은 문서를 작성할 때 타자 치는 수를 줄이고, 실수를 막기 위한 다양한 도구를 제공합니다. 이미 입력한 단어를 반복해서 입력하는 경우에는 입력 모드 자동 완성을 사용하십시오. 긴 단어들은 약어를 만들어 입력하십시오. 키보드에는 없는 문자들을 입력할 수도 있습니다. |24.1| 틀린 내용 고치기 |24.2| 괄호 짝 찾기 |24.3| 자동 완성 |24.4| 반복 입력 |24.5| 다른 줄에서 복사해오기 |24.6| 레지스터 내용 입력하기 |24.7| 약어 |24.8| 특수 문자 입력 |24.9| 다이그래프(Digraph) |24.10| 보통 모드 명령 다음 장: |usr_25| 형식에 맞추어 편집하기 이전 장: |usr_23| 특별한 파일 편집하기 차례: |usr_toc|
*24.1* 틀린 내용 고치기<BS>
키는 앞서 말했듯이, 커서 바로 앞의 글자를 지웁니다.<Del>
키는 커서가 위치해있는(혹은, 바로 다음의) 글자를 지웁니다. 만약 단어 전체를 잘못 입력했다면,CTRL-W
를 사용하십시오:The horse had fallen to the sky
CTRL-W
The horse had fallen to the
내용이 완전히 꼬여서 줄 전체를 다시 입력하고 싶다면,CTRL-U
로 전체를 지우십시오. 커서 뒤의 내용과 들여쓰기는 지워지지 않습니다. 공백이 아닌 첫 글자부터 커서까지의 내용만 지워집니다. 다음 예에서 "fallen"의 "f"에 커서를 두고CTRL-U
를 누르면 다음과 같이 됩니다:The horse had fallen to the
CTRL-U
fallen to the
몇 단어 전에 잘못 입력한 내용이 있어서, 커서를 옮긴 후 고쳐야한다고 합시다. 예를 들어 다음과 같이 입력했다고 합시다:The horse had follen to the ground
"follen"을 "fallen"으로 고쳐야 합니다. 커서가 맨 뒤에 있다고 할 때, 다음을 입력하면 됩니다:
<Esc>
4blraA입력 모드 벗어나기
<Esc>
네 단어 앞으로 4b 오른쪽으로 한 칸 움직여 "o" 위로 l "a"로 바꿈 ra 입력 모드로 돌아감 A 다음 방법으로 해도 됩니다:
<C-Left>
<C-Left>
<C-Left>
<C-Left>
<Right>
<Del>
a<End>
네 단어 앞으로
<C-Left>
<C-Left>
<C-Left>
<C-Left>
오른쪽으로 한 칸 움직여 "o" 위로<Right>
"o"를 지움<Del>
"a"를 입력 a 줄의 끝으로 이동<End>
이 방법에서는 입력 모드를 유지한 채, 특수 키들을 사용해서 움직입니다. 모드가 따로 없는 일반적인 편집기들과 마찬가지입니다. 외우기는 쉽지만, 더 오래 걸립니다(손을 일반 키 자판에서 화살표 키로 옮겨야하는 데다가, 키보드를 보지 않고<End>
키를 누르기는 쉽지 않습니다). 이 특수 키들은 입력 모드를 벗어나지 않는 매핑을 만들 때 유용합니다. 이때는 타자를 치는 데 걸리는 시간이 별로 문제되지 않을 테니까요. 입력 모드에서 사용할 수 있는 키들은 다음과 같습니다:<C-Home>
파일의 시작으로<PageUp>
한 화면 위로<Home>
줄의 시작으로<S-Left>
한 단어 왼쪽으로<C-Left>
한 단어 왼쪽으로<S-Right>
한 단어 오른쪽으로<C-Right>
한 단어 오른쪽으로<End>
줄의 끝으로<PageDown>
한 화면 아래로<C-End>
파일의 끝으로 여기에 언급하지 않은 명령이 몇 가지 더 있는데, |ins-special-special
|에서 볼 수 있습니다.
*24.2* 괄호 짝 찾기 )를 입력할 때, 대응되는 (를 알려줄 수 있다면 좋을 것입니다. Vim에서는 다음 명령을 사용하면 됩니다:
:set showmatch
"(예제)"를 입력할 때, )를 입력하는 순간, 잠깐 커서가 대응되는 (로 옮겨졌다가 0.5초 쯤 후에 다시 원래 위치로 돌아옵니다. 대응되는 (가 없는 경우에는, 경고음을 내서 어딘가에 (를 빼먹었거나, )를 너무 많이 입력했다고 알려줍니다. []나
{}
쌍도 대응되는 것을 보여줍니다. 대응되는 괄호가 보이는 동안 기다릴 필요는 없습니다. 다음 문자가 입력되자마자 커서가 원래 위치로 옮겨지고 입력이 계속 처리됩니다. 'matchtime' 옵션으로 Vim이 괄호 쌍을 보여주는 시간을 조절할 수 있습니다. 1.5초간 보여주게 하려면:
:set matchtime=15
시간은 10분의 1초 단위로 지정합니다.
*24.3* 자동 완성 입력 도중에 단어를 완성시킬 수 있습니다. 단어의 앞부분을 입력하다가CTRL-P
를 누르면 됩니다. 나머지 부분은 Vim이 추측하여 채웁니다. 예를 들어, C 프로그래밍 도중 다음과 같은 내용을 넣고 싶다고 합시다 :total = ch_array[0] + ch_array[1] + ch_array[2];
먼저 다음 내용을 입력하십시오:total = ch_array[0] + ch_
이 상황에서,CTRL-P
명령으로 단어를 완성시켜 봅시다. Vim은 커서의 앞쪽에 위치한 문자들로 시작하는 단어를 찾습니다. 이 경우에는 "ch_" 이므로, ch_array 라는 단어가 해당됩니다. 따라서CTRL-P
를 입력한 결과는 다음과 같습니다:total = ch_array[0] + ch_array
다음과 같이 몇 자 더 입력했다고 합시다(맨 마지막에 스페이스가 있습니다):total = ch_array[0] + ch_array[1] +
CTRL-P
를 누르면 Vim은 커서 앞의 단어를 완성시키기에 적절한 단어를 찾습니다. 커서 앞에는 공백만 있을 뿐 아무 내용도 없기 때문에, 커서 이전(backward)의 첫 번째 단어인 "ch_array"를 찾게 됩니다.CTRL-P
를 한 번 더 누르면 다음 대응되는 단어인 "total"을 보여줍니다.CTRL-P
를 더 누르면 그 다음을 계속 찾게 됩니다. 위 내용 밖에 없으면, 추천할 단어가 바닥났으므로 원래의 내용으로 돌아오게 됩니다. 이 경우에는 그냥 아무것도 없는 상태가 됩니다. 네 번째CTRL-P
로는 추천 단어 찾기가 다시 시작되고, "ch_array"가 다시 나옵니다. 단어 완성 후보를 현재 커서 위치 이후(forward)에서 먼저 찾으려면,CTRL-N
을 사용하십시오. 파일의 끝을 만나면, 파일의 맨 처음으로 돌아가서 계속 찾기 때문에,CTRL-N
과CTRL-P
는 같은 단어들을 반대의 순서로 보여주게 됩니다. 힌트:CTRL-N
은 이후(Next) 찾기이고,CTRL-P
는 이전(Previous) 찾기입니다. Vim은 자동으로 단어를 완성하기 위해, 많은 곳을 찾습니다. 기본적으로 다음 내용들을 찾습니다: 1. 현재 파일 2. 다른 창의 파일 3. 다른 로드된 파일 (숨겨진 버퍼) 4. 로드되지 않은 파일 (비활성 버퍼) 5. 태그 파일 6. 현재 파일에 포함(#include)된 파일 옵션 ----- 탐색 순서는 'complete'(자동 완성) 옵션으로 바꿀 수 있습니다. 'ignorecase'(대소문자무시) 옵션이 켜지면 찾을 때 대소문자 차이가 무시됩니다. 자동 완성과 관련된 옵션 중 'infercase'(대소문자추론)는 대소문자를 무시하고 단어를 찾기는 하지만 ('ignorecase' 옵션이 켜져 있어야 합니다), 현재 입력한 내용의 대소문자 여부를 유지해야할 때 유용합니다. 예를 들어 "For"를 입력하고, Vim이 "fortunately"를 찾았을 때, "Fortunately"로 자동 완성 됩니다. 특정 내용으로 자동 완성 하기 --------------------------- 어떤 내용을 입력할 지 이미 알고 있다면, 특정 내용의 경우는 다음 명령을 사용하여 완성할 수도 있습니다:CTRL-X
CTRL-F
파일명CTRL-X
CTRL-L
줄 전체CTRL-X
CTRL-D
매크로 정의 (포함(#include)된 파일 포함)CTRL-X
CTRL-I
현재 파일과 포함된 파일CTRL-X
CTRL-K
사전에서 찾기CTRL-X
CTRL-T
시소러스에서 찾기CTRL-X
CTRL-] 태그CTRL-X
CTRL-V
Vim 명령줄 위 명령 입력 후에는CTRL-N
으로 다음 후보로,CTRL-P
로 이전 후보로 이동할 수 있습니다. 명령에 대한 더 자세한 정보는 |ins-completion
|을 참고하십시오. 파일명 자동 완성 ---------------- 예를 들어CTRL-X
CTRL-F
를 봅시다. 이 명령은 파일명으로 완성시켜줍니다. 현재 디렉터리를 찾아서 현재 커서 앞의 문자열과 일치하는 것을 보여줍니다. 예를 들어, 현재 디렉터리에 다음과 같은 파일들이 있다고 합시다: main.c sub_count.c sub_done.c sub_exit.c 입력 모드로 들어가서 다음 내용을 입력하십시오:종료 코드는 다음 파일에 있습니다: sub
이 상태에서,CTRL-X
CTRL-F
를 입력하세요. Vim이 현재 디렉터리를 찾아서, "sub"로 시작하는 단어로 완성시킬 것입니다. 첫 번째 후보는 sub_count.c 입니다. 이것이 아니라면,CTRL-N
으로 다음 파일로 넘어갑니다. 이번 후보는 sub_done.c 입니다.CTRL-N
을 또 누르면 sub_exit.c가 됩니다. 결과는 다음과 같습니다.종료 코드는 다음 파일에 있습니다: sub_exit.c
파일명이 /(유닉스)나 C:\(마이크로소프트 윈도)로 시작하는 경우에는 파일 시스템의 모든 파일을 찾을 수 있습니다. 예를 들어, "/u"를 입력하고CTRL-X
CTRL-F
를 하면, "/usr" 가 될 것입니다(유닉스):파일은 다음 위치에 있습니다 /usr/
다시CTRL-N
을 누르면 "/u"로 돌아갑니다. "/usr/" 상태에서 한 디렉터리 더 안으로 들어가려면,CTRL-X
CTRL-F
를 다시 누르면 됩니다:파일은 다음 위치에 있습니다 /usr/X11R6/
물론, 실제 동작은 현재 파일 시스템의 상태에 따라 다릅니다. 완성 후보들은 알파벳순으로 정렬됩니다. 프로그램 소스 코드에서의 자동 완성 ---------------------------------- 소스 코드 파일은 보통 그 구조가 정해져 있으므로, 좀 더 머리를 쓰면 훨씬 훌륭하게 자동 완성을 할 수 있습니다. Vim에는 옴니(Omni) 자동 완성이란 기능이 있습니다. 다른 에디터에서는 인텔리센스(intellisense - 상표권이 걸려있습니다)라고도 부릅니다. 옴니 자동 완성의 키는CTRL-X
CTRL-O
입니다. 물론 O는 옴니(Omni)의 O이므로 외우기 쉽습니다. C 프로그램 소스를 편집하는 예를 보겠습니다:{
struct foo *p;
p->
커서가 "p->" 다음에 있을 때,CTRL-X
CTRL-O
를 눌러봅시다. Vim은 "struct foo"에 속한 단어들로 후보 목록을 만듭니다.CTRL-P
를 눌렀을 때처럼 모든 단어가 후보가 되는 게 아니라, 현재 상황에 적합한 "struct foo"의 멤버들만 후보가 된다는 점이 다릅니다. 옴니 자동 완성이 동작하기 위해서는 미리 설정을 좀 해야 합니다. 최소한 파일 형식 플러그인은 활성화되어있어야 합니다. 그리고 vimrc 파일에는 다음과 같은 줄이 있어야 합니다:filetype plugin on
또는:filetype plugin indent on
C 코드를 작성하는 경우, 태그파일을 만들고 'tags'(태그) 옵션을 설정해 놓아야 합니다. 자세한 설명은 |
ft-c-omni
|를 참고하십시오. 다른 종류의 파일도 비슷한 일을 해야 하는데, |compl-omni-filetypes
|를 참고하십시오. 아직은 잘 알려진 몇몇 종류의 파일에서만 동작합니다. 현재 동작 중인지 여부를 확인하려면 'omnifunc'(옴니함수) 옵션을 확인하십시오.
*24.4* 반복 입력CTRL-A
를 누르면, 지난 입력 모드 때 입력했었던 내용을 다시 입력합니다. 예를 들어, 다음 내용으로 시작하는 파일이 있다고 합시다."file.h"
/* main 프로그램 코드 */
첫 번째 줄의 앞에 "#include "를 추가했습니다:#include "file.h"
/* main 프로그램 코드 */
"j^"를 입력하여 다음 줄의 맨 앞으로 이동합니다. 또 "#include"로 시작하는 줄을 입력하려면 : iCTRL-A
결과는 다음과 같습니다:#include "file.h"
#include /* main 프로그램 코드 */
CTRL-A
를 누르면 지난 입력 모드 때 입력한 내용이 입력되므로, 위와 같이 "#include "가 들어갔습니다. "main.h"<Enter>
를 입력하여 줄을 완성합시다:#include "file.h"
#include "main.h"
/* main 프로그램 코드 */
CTRL-@명령은CTRL-A
역할을 한 후, 입력 모드를 빠져나갑니다. 똑같은 내용을 계속 입력해야할 때 사용하면 좋습니다.
*24.5* 다른 줄에서 복사해오기CTRL-Y
명령은 커서 바로 위의 글자를 입력합니다. 윗줄의 내용을 복사할 때 유용합니다. 예를 들어, 다음과 같은 C 코드가 있다고 합시다:b_array[i]->s_next = a_array[i]->s_next;
"s_prev"만 "s_next"로 바꾸며 같은 내용을 또 입력하고 싶다고 합시다. 새 줄을 시작하고,CTRL-Y
를 14번 눌러 "next"의 "n"앞까지 옵시다:b_array[i]->s_next = a_array[i]->s_next;
b_array[i]->s_
"prev"를 직접 입력합시다:b_array[i]->s_next = a_array[i]->s_next;
b_array[i]->s_prev
다시CTRL-Y
를 "next"가 나올 때까지 누릅시다:b_array[i]->s_next = a_array[i]->s_next;
b_array[i]->s_prev = a_array[i]->s_
"prev;"를 입력해서 끝냅시다. 반대로CTRL-E
는 커서 밑의 문자를CTRL-Y
와 유사한 방법으로 입력합니다.
*24.6* 레지스터 내용 입력하기CTRL-R
{register}
명령은 레지스터의 내용을 입력합니다. 긴 단어를 입력할 때 유용합니다. 예를 들어, 다음 내용을 입력한다고 합시다:r = VeryLongFunction(a) + VeryLongFunction(b) + VeryLongFunction(c)
함수명은 다른 파일에서 정의되었다고 합시다. 그 파일에서 함수명 위로 커서를 옮긴 후, 레지스터 v로 복사해 넣읍시다:
"vyiw
"v 는 레지스터 지정이고, "yiw"는 복사하기(yank)-안쪽의(inner)-단어(word) 입니다. 내용을 입력할 파일로 가서, 줄의 앞부분을 직접 입력합시다:
r =
이제CTRL-R
v를 써서 함수명을 입력합니다:r = VeryLongFunction
함수명 사이의 내용은 직접 바로 입력하면 되고, 함수명은CTRL-R
v를 두 번 더 써서 입력합니다. 자동 완성을 써서 입력할 수도 있습니다. 하지만 같은 문자로 시작하는 단어들이 많은 경우에는 레지스터를 쓰는 쪽이 더 효율적입니다. 만약 레지스터에<BS>
같은 특수 문자가 들어있다면, 그 문자가 키보드에서 눌린 것처럼 해석되어 동작하게 됩니다. 이것을 막으려면 (진짜로 문서에<BS>
문자를 넣으려면)CTRL-R
CTRL-R
{register}
명령을 사용하십시오.
*24.7* 약어 약어(abbreviation)란 원래의 긴 단어를 간략하게 표시한 것입니다. 예를 들어, 일반적으로 "ad"는 "advertisement"를 의미합니다. Vim에는 약어를 입력하면 자동으로 긴 표현으로 확장해주는 기능이 있습니다. "ad"를 입력하면 자동으로 "advertisement"로 확장되도록 하려면, 다음 명령을 사용하십시오:
:iabbrev ad advertisement
이제 "ad"만 입력하면, 자동으로 "advertisement"가 확장되어 들어갑니다. 이 확장은 단어의 일부가 될 수 없는 문자 - 예를 들어 스페이스 - 가 들어올 때 일어납니다: 입력된 내용 화면에 나타나는 내용
I saw the a I saw the a
I saw the ad I saw the ad
I saw the ad
"ad"만 입력해서는 확장이 일어나지 않습니다. 이는 "add" 같은 단어를 입력할 수 있도록, 다른 단어의 일부인 경우는 확장이 일어나지 않게 하기 위함입니다. 오직 단어 통째에 대해서만 약어인지 여부를 확인합니다. 어구의 약어인 경우 ------------------ 약어가 단어 하나가 아니라 여러 단어로 이루어진 어구를 가리키도록 할 수도 있습니다. 예를 들어, "JB"를 "Jack Benny"로 정의하려면 다음 명령을 사용하십시오:<Space>
I saw the advertisement<Space>
:iabbrev JB Jack Benny
저는 프로그래밍을 위해 다음과 같은 특이한 약어를 사용합니다:
:iabbrev #b /****************************************
:iabbrev #e
<Space>
****************************************/이 약어들은 주석 상자를 만들기 위해서 씁니다. 윗줄을 그리는 #b 로 주석 상자를 열고, 주석 내용을 모두 쓴 다음, #e 로 아랫줄을 그려서 주석을 마무리하면 됩니다. 특이하게 #e 약어는 공백으로 시작하고 있습니다. 즉, 첫 두 문자가 공백과 별표입니다. 일반적으로 약어와 긴 표현 간의 공백은 무시됩니다. 따라서 공백을 표시하기 위해
<, S, p, a, c, e, >
라고 명확하게 써 준 것입니다.Note:
":iabbrev"도 매 번 입력하기는 꽤 긴 명령입니다. ":iab" 만 써도 됩니다. 약어 명령의 약어인 셈이지요. 입력 오류 자동 수정 ------------------- 키보드를 치다보면 같은 입력 실수를 계속 하게 되는 경우가 있습니다. 예를 들어, "the"를 쳐야하는데, "teh"라고 치는 경우가 많습니다. 이 경우 다음과 같은 약어로 자동으로 고쳐지도록 할 수 있습니다:
:abbreviate teh the
이런 실수들을 모두 등록해 놓으면 됩니다. 만날 틀리는 단어를 발견할 때마다 등록해주면 되겠습니다. 약어 목록 표시하기 ------------------ ":abbreviate" 명령은 약어 목록을 보여줍니다: :abbreviate i #e ****************************************/ i #b /**************************************** i JB Jack Benny i ad advertisement ! teh the 줄 맨 앞의 "i"는 입력(insert) 모드를 나타냅니다. 이 약어는 입력 모드에서만 유효합니다. "i" 외에도 다음 문자들이 올 수 있습니다: c 명령줄 모드 :cabbrev ! 입력 모드와 명령줄 모드 :abbreviate 일반적으로 명령줄 모드에서는 약어가 많이 쓰이지 않으므로, 대부분 ":iabbrev" 명령을 사용하게 될 것입니다. 따라서 다음과 같은 명령을 사용할 때는 "ad"가 확장되지 않습니다:
:edit ad
약어 삭제하기 ------------- 약어를 삭제하려면, ":unabbreviate" 명령을 사용합니다. 다음과 같은 약어가 있다고 합시다
:abbreviate @f fresh
다음 명령으로 약어를 지울 수 있습니다
:unabbreviate @f
명령을 입력하다보면, @f가 "fresh"로 확장되었을 것입니다. 하지만, 어쨌든 Vim이 잘 인식해서 지울 테니 걱정하지 않아도 됩니다 (단, "fresh"가 다른 단어의 약어였다면 엉뚱한 것이 지워지겠지만, 이럴 일은 거의 없을 것입니다). 모든 약어를 지우려면:
:abclear
":unabbreviate"와 ":abclear"의 입력 모드 한정판(":iunabbreviate"와 ":iabclear")과 명령줄 모드 한정판(":cunabbreviate"와 ":cabclear")도 있습니다. 약어가 다시 매핑 되는 경우 -------------------------- 약어를 정의할 때 주의할 점이 있습니다: 확장된 문자열이 매핑 되지 않아야한다는 것입니다. 예를 들어:
:abbreviate @a adder
:imap dd disk-door
이 상태에서 @a를 입력하면, "adisk-doorer"가 나타날 것입니다. 물론 이것을 의도한 것은 아닙니다만. 이렇게 약어가 다시 매핑 되는 경우를 피하려면, ":noreabbrev" 명령을 사용하십시오. ":abbreviate"와 동일하지만, 확장된 문자열이 다시 매핑 되는 것을 막아줍니다:
:noreabbrev @a adder
다행히 약어가 확장된 결과가 다시 매핑 되는 경우는 그리 많지 않습니다.
*24.8* 특수 문자 입력 다음 문자를 문자 그대로 문서에 입력하려면,CTRL-V
명령을 사용하면 됩니다. 다시 말해, 다음에 오는 문자의 특별한 기능이 무시된다는 의미입니다. 예를 들어:
CTRL-V
<Esc>
위 명령은 이스케이프 문자를 삽입합니다. 따라서 입력 모드에서 빠져나가지 않습니다. (
CTRL-V
다음에 스페이스를 누르지 마십시오. 읽기 쉽도록 띄어놓은 것 뿐입니다).Note:
마이크로소프트 윈도에서는CTRL-V
가 붙여넣기에 사용됩니다. 이때는CTRL-V
대신CTRL-Q
를 사용하십시오. 반대로 유닉스에서는 종종CTRL-Q
가 다른 용도로 사용되므로,CTRL-Q
가 동작하지 않습니다.{숫자}
에 해당하는 문자를 입력하려면,CTRL-V
{숫자}
명령을 사용하십시오. 예를 들어, 127에 해당하는 문자인<Del>
문자(<Del>
키가 항상<Del>
문자를 나타내지는 않습니다!)를 입력하려면:
CTRL-V
127이 방법으로 255까지의 문자를 입력할 수 있습니다. 숫자가 두 자리 이하일 경우에는, 숫자가 아닌 문자를 입력하면 명령이 끝납니다. 숫자가 아닌 문자를 입력하지 않으려면, 숫자 앞에 0을 붙여서 세 자리로 만들어주면 됩니다. 다음의 명령들은 모두
<Tab>
문자와 점을 입력합니다:CTRL-V
9.CTRL-V
09.CTRL-V
009. 숫자를 16진수로 입력하려면,CTRL-V
다음에 "x"를 입력하면 됩니다:
CTRL-V
x7f역시 255(
CTRL-V
xff)까지의 문자를 입력할 수 있습니다. 숫자 앞에 "o"를 붙여서 8진수로 입력할 수도 있습니다. 그리고, 16 비트 문자나 32비트 문자를 입력하기 위한 방법도 있습니다 (예를 들어, 유니코드를 입력할 때 사용할 수 있습니다):CTRL-V
o123CTRL-V
u1234CTRL-V
U12345678
*24.9* 다이그래프(Digraph) 가끔 키보드에 없는 문자를 입력해야 할 때가 있습니다. 저작권을 나타내는 © 문자가 좋은 예입니다. Vim에서 이런 문자들을 입력하려면, 두 문자로 한 문자를 표현하는 다이그래프(digraph)를 사용하면 됩니다. 예를 들어 ©를 입력하려면 다음과 같이 세 개의 키를 눌러야 합니다:
CTRL-K
Co다이그래프로 입력할 수 있는 문자를 보려면, 다음 명령을 사용하십시오:
:digraphs
다이그래프 문자표가 나옵니다. 다음은 그 중 세 줄만 뽑아본 것입니다:
AC ~_ 159 NS | 160 !I ¡ 161 Ct ¢ 162 Pd £ 163 Cu ¤ 164 Ye ¥ 165
BB ¦ 166 SE § 167 ': ¨ 168 Co © 169 -a ª 170 << « 171 NO ¬ 172
-- 173 Rg ® 174 'm ¯ 175 DG ° 176 +- ± 177 2S ² 178 3S ³ 179
예를 들어 위 표를 보고, £ 문자를 입력하려면CTRL-K
Pd를 누르면 된다고 알 수 있습니다. 이 문자는 10진수로 163에 해당합니다. Pd는 파운드(Pound)를 줄인 것입니다. 대부분의 다이그래프는 실제로 표시되는 문자를 쉽게 짐작할 수 있도록 정해졌습니다. 위 표를 쭉 살펴보면 이해가 가실 것입니다. 겹치는 다이그래프가 없다면, 첫 번째와 두 번째 문자를 바꿔서 눌러도 괜찮습니다. 즉,CTRL-K
dP에 해당하는 게 없다면, "Pd"에 해당되는 문자를 보여줍니다.Note:
다이그래프는 Vim이 인식하는 문자 셋에 따라 달라집니다. 마이크로소프트 도스에서의 다이그래프는 윈도에서와 다를 수도 있습니다. 따라서 현재 어떤 다이그래프를 쓸 수 있는 지 ":digraphs" 명령으로 꼭 확인해야 합니다. 직접 다이그래프를 정의할 수도 있습니다. 예를 들어:
:digraph a" ä
위 명령은
CTRL-K
a" 가 ä 문자를 입력하도록 지정합니다. 문자가 아니라 10진법 숫자로 지정할 수도 있습니다. 똑같은 다이그래프를 정의하는 예입니다:
:digraph a" 228
다이그래프에 대한 자세한 정보는 |
digraphs
|를 참고하십시오. 다이그래프 말고 키맵(keymap)을 사용해서 특수 문자를 넣을 수도 있습니다. |45.5|를 참고하십시오.
*24.10* 보통 모드 명령 입력 모드에서 사용할 수 있는 명령은 그다지 많지 않습니다. 보통 모드에서는 훨씬 많은 명령들을 사용할 수 있기 때문에,<Esc>
를 누르고 보통 모드로 빠져나와서 명령을 수행한 후 "i"나 "a"로 입력 모드로 돌아가는 경우가 많습니다. 좀 더 빠른 방법이 있습니다.CTRL-O
{명령}
으로 입력 모드에서도 모든 보통 모드 명령을 사용할 수 있습니다. 예를 들어, 현재 줄 커서 이후의 내용을 모두 지우려면:
CTRL-O
D이 방법으로는 단 하나의 보통 모드 명령만 사용할 수 있습니다. 명령 이외에 레지스터나 횟수도 함께 지정할 수 있습니다. 좀 더 복잡한 명령의 예를 보면 다음과 같습니다:
CTRL-O
"g3dw세 개의 단어를 잘라내어 g 레지스터에 담습니다.
다음 장: |usr_25| 서식에 맞추어 편집하기 저작권: |manual-copyright| 참고 vim:tw=78:ts=8:ft=help:norl:
Generated by vim2html on 2013. 12. 14. (토) 20:47:01 KST