*usr_25.txt* Vim version 7.4 대상. 새로 고침: 2007년 5월 11일 VIM 사용설명서 - Bram Moolenaar 저 정지용 역 서식에 맞추어 편집하기 문서를 작성하다보면, 문장 하나에 한 줄이 넘어가는 경우가 많습니다. 이번 장에서는 문장을 나누어 페이지 크기나 다른 서식에 맞추는 방법을 살펴보겠습니다. 줄 단위 단락이나 표 편집을 위해 Vim이 제공하는 다양한 기능도 살펴보겠습니다. |25.1| 줄 나누기 |25.2| 정렬하기 |25.3| 들여쓰기와 탭 |25.4| 긴 줄 다루기 |25.5| 표 편집하기 다음 장: |usr_26| 반복하기 이전 장: |usr_24| 빠르게 입력하기 차례: |usr_toc|
*25.1* 줄 나누기 Vim에는 문서를 더 쉽게 다루기 위한 많은 기능이 있습니다. 기본 설정으로는 자동으로 줄이 바뀌지 않습니다. 즉, 줄을 바꾸려면<Enter>
를 직접 입력해야 합니다. 이 기능은 프로그램을 작성할 때와 같이 대부분의 줄 바꿈을 직접 결정하는 경우에는 유용합니다. 하지만 문서를 써야하는데, 최대 한 줄에 70자 까지만 쓸 수 있어서 일일이 줄 길이를 맞춰 주어야하는 경우라면 불편할 것입니다. 'textwidth'(내용폭) 옵션을 사용하면, Vim이 자동으로 줄을 바꿔줍니다. 예를 들어, 한 줄에 30 글자까지만 들어가도록(역주: 영어 알파벳 기준으로 30글자입니다. 한글은 한 자에 두 칸을 차지하므로 한글로만 이루어지는 경우 15글자까지만 들어가게 됩니다) 폭을 제한하려면 다음 명령을 사용하십시오:
:set textwidth=30
이제 다음 내용을 입력해봅시다 (칸 표시를 추가했습니다): 1 2 3 12345678901234567890123456789012345
나는 한 때 프로그래밍을 가르쳤
위 내용 다음에 "습"을 입력하는 순간, 줄이 30자 제한을 넘어가게 됩니다. Vim은 이 제한이 넘어가는 순간, 줄을 바꿉니다. 그 결과는 다음과 같습니다: 1 2 3 12345678901234567890123456789012345나는 한 때 프로그래밍을
가르쳤습
입력을 계속해서 문단 전체를 완성시키면 됩니다: 1 2 3 12345678901234567890123456789012345나는 한 때 프로그래밍을
가르쳤습니다. 한번은 내가 낸
숙제가 너무 어려워서 포트워스
경찰에게 제지당한 적도
있었습니다. 진짜입니다.
직접 줄을 바꾸지 않아도, Vim이 자동으로 바꾸어줍니다.Note:
'wrap'(자동줄바꿈) 옵션을 켜면 Vim은 긴 줄을 여러 줄로 나누어서 보여줍니다. 하지만, 실제로 문서에 줄 바꿈 문자를 넣지는 않습니다. 서식에 맞추어 바꾸기 -------------------- Vim은 워드프로세서가 아닙니다. 워드 프로세서에서는 문단의 처음에서 몇 단어를 지우면, 전체 줄 바꿈이 자동으로 맞추어집니다. 하지만 Vim은 그렇지 않습니다. 따라서 위 예에서 "프로그래밍을" 부분을 지운다고 해도, 그 줄만 짧아질 뿐입니다: 1 2 3 12345678901234567890123456789012345나는 한 때
가르쳤습니다. 한번은 내가 낸
숙제가 너무 어려워서 포트워스
경찰에게 제지당한 적도
있었습니다. 진짜입니다.
별로 보기 안 좋지요. 문단을 다시 깔끔하게 만들기 위해 "gq" 명령을 사용합시다. 먼저, 시각 모드에서 위 부분을 선택합시다. 첫 줄로 커서를 옮긴 후, 다음 명령을 사용합시다:
v4jgq
"v"로 시각 모드에 들어간 후, "4j"로 문단의 끝으로 커서를 옮깁니다. 그리고 "gq" 오퍼레이터를 적용합니다. 결과는 다음과 같습니다: 1 2 3 12345678901234567890123456789012345
나는 한 때 가르쳤습니다.
한번은 내가 낸 숙제가 너무
어려워서 포트워스 경찰에게
제지당한 적도 있었습니다.
진짜입니다.
Note:
특정한 문서 형태는 자동으로 서식을 맞출 수도 있습니다. |auto-format
|을 참고하십시오. "gq"는 오퍼레이터이기 때문에, 적용할 부분을 다음 세 가지 방법으로 선택할 수 있습니다: 시각 모드를 이용하는 방법, 움직임을 이용하는 방법, 텍스트 오브젝트를 이용하는 방법. 위에서 본 예의 경우, 동일한 동작을 "gq4j"로 할 수도 있습니다. 더 타자를 적게 칠 수 있지만, 명령을 사용하려면 전체가 몇 줄인지를 알아야 합니다. 더 편한 이동 명령은 "}"입니다. 이 명령은 문단의 마지막으로 이동하는 명령입니다. 따라서 "gq}"는 현재 커서 위치부터 문단 마지막까지의 서식을 맞추어줍니다. "gq"에 텍스트 오브젝트를 이용하려면 문단 오브젝트가 적당합니다. 다음 명령을 사용해보십시오:
gqap
"ap"는 "a-paragraph(문단)"을 의미합니다. 위 명령은 문단 하나의 서식을 맞춥니다 (문단은 빈 줄로 구분합니다). 이 명령은 같은 문단에 속하기만 하면 커서 앞의 내용에도 적용됩니다. 문단들이 빈 줄로 각각 구분되어있다면, 다음 명령으로 파일 전체의 서식을 맞출 수 있습니다:
gggqG
"gg"로 커서를 파일의 맨 앞으로 옮긴 다음, "gqG"로 파일의 마지막 줄까지 서식을 맞춥니다. 주의: 만약 문단이 빈 줄로 구분되어있지 않다면, 하나로 붙어버립니다. 스페이스나 탭 같은 공백들만 들어있는 줄들을 조심하십시오. 이런 줄들은 내용 없이 공백만 있는 줄이지만, 빈 줄은 아닙니다. Vim은 단순 텍스트 문서 이외의 서식도 지원합니다. 서식을 변경하려면 |
fo-table
|을 참고하십시오. 마침표 이후의 공백 수를 바꾸려면 'joinspaces'(붙이기공백) 옵션을 변경하십시오. 서식을 맞추기 위해 외부 프로그램을 사용할 수도 있습니다. Vim의 명령어들 만으로 서식을 맞추기 어려운 경우에 유용합니다. 'formatprg'(포맷프로그램) 옵션을 참고하십시오.
*25.2* 정렬하기 여러 줄을 가운데 정렬 하려면, 다음 명령을 사용하십시오:
:
{range}
center [width]
{range}
는 일반적으로 명령줄에서 쓰는 범위입니다. [width]는 가운데 정렬할 때 사용할 줄의 폭으로, 생략할 수 있습니다. 만약 [width]는 지정되지 않았다면, 'textwidth' 값이 쓰입니다. (만약 'textwidth'도 0이면, 기본 값인 80이 사용됩니다.) 예를 들어:
:1,5center 40
명령을 수행하면 다음과 같이 됩니다:
나는 한 때 가르쳤습니다.
한번은 내가 낸 숙제가 너무
어려워서 포트워스 경찰에게
제지당한 적도 있었습니다.
진짜입니다.
우측 정렬 --------- 앞에서와 유사하게, ":right" 명령으로 문서를 우측 정렬할 수 있습니다:
:1,5right 37
다음과 같이 됩니다:
나는 한 때 가르쳤습니다.
한번은 내가 낸 숙제가 너무
어려워서 포트워스 경찰에게
제지당한 적도 있었습니다.
진짜입니다.
좌측 정렬 --------- 마지막으로 다음 명령도 있습니다:
:
{range}
left [여백]하지만 ":center"나 ":right"와는 다르게, ":left"에는 줄의 폭을 지정하지 않습니다. 대신, 왼쪽 여백을 지정합니다. 생략할 경우, 문서 내용이 화면 왼편에 붙습니다 (즉, 크기 0의 여백을 지정하는 것과 같습니다). 여백이 5라면, 문서 내용이 다섯 칸 들여쓰기 됩니다. 예를 들어 다음 명령을 사용해보세요:
:1left 5
:2,5left
결과는 다음과 같습니다:
나는 한 때 가르쳤습니다.
한번은 내가 낸 숙제가 너무
어려워서 포트워스 경찰에게
제지당한 적도 있었습니다.
진짜입니다.
양쪽 맞춤 --------- Vim 내부에는 양쪽 맞춤 기능이 없습니다. 하지만, 깔끔한 양쪽 맞춤 매크로 패키지가 함께 제공됩니다. 이 매크로를 사용하려면, 다음 명령을 사용하십시오::runtime macros/justify.vim
이 Vim 스크립트 파일에는 새로운 시각 모드 명령인 "_j"가 정의되어있습니다. 문서 내용 일부의 양쪽을 맞추려면, 시각 모드에서 영역을 선택한 후 "_j" 명령을 실행하십시오. 더 자세한 설명은 스크립트 파일을 참고하십시오. 이 파일을 보려면 다음 파일명에 "gf" 명령을 사용하십시오: $VIMRUNTIME/macros/justify.vim. 아니면, 외부 프로그램을 사용해서 문서 서식을 맞출 수도 있습니다. 예를 들어 다음과 같이 하면 됩니다:
:%!fmt
*25.3* 들여쓰기와 탭 들여쓰기는 문서 내용을 돋보이게 만들기 위해 사용합니다. 예를 들어, 이 문서에 있는 예제들은 모두 여덟 개의 공백이나 탭으로 들여쓰기 되어있습니다. 각 줄을 시작할 때 탭을 입력해서 들여쓰기를 할 수 있습니다. 다음 예를 보겠습니다:첫 번째 줄
두 번째 줄
위 예는 탭을 입력하고, 내용과<Enter>
를 입력하고, 또 탭과 내용을 입력한 것입니다. 'autoindent'(자동들여쓰기) 옵션을 켜면 들여쓰기를 자동으로 넣어줍니다:
:set autoindent
새로운 줄이 나타날 때 자동으로 앞의 줄과 같은 들여쓰기가 됩니다. 앞의 예에서라면,
<Enter>
다음에 탭을 입력할 필요가 없어집니다. 더 많이 들여쓰기 ---------------- 더 많이 들여 쓰려면, ">" 오퍼레이터를 사용하십시오. 보통은 현재 줄을 더 들여 쓰는 명령인 ">>" 형태로 사용됩니다. 더 들여 쓰는 정도는 'shiftwidth'(들여쓰기폭) 옵션으로 지정됩니다. 기본 값은 8입니다. 예를 들어 ">>" 명령으로 네 칸만 들여 쓰게 하려면, 다음 명령을 사용하십시오:
:set shiftwidth=4
위 예에서 두 번째 줄에 ">>" 명령을 사용하면 다음과 같이 됩니다:
첫 번째 줄
두 번째 줄
"4>>" 명령은 현재 줄을 포함하여 아래로 네 줄을 함께 더 들여 씁니다. 탭 ----- 4의 배수로 들여쓰기를 하려면, 'shiftwidth'를 4로 설정하면 됩니다. 하지만<Tab>
을 누르면 8칸씩 들여쓰기가 됩니다. 이 들여쓰기 정도를 바꾸려면, 'softtabstop'(소프트탭크기) 옵션을 변경하면 됩니다:
:set softtabstop=4
이제
<Tab>
키를 누르면 네 칸씩 들여쓰기가 됩니다. 만약 이미 앞에 공백이 네 칸 있다면, 공백이 사라지고 탭 문자가 대신 삽입됩니다 (파일 크기에서 일곱 글자만큼을 절약할 수 있습니다). (만약 탭 문자를 사용하지 않고, 언제나 스페이스로만 들여쓰기를 하려면, 'expandtab'(탭확장) 옵션을 사용하십시오.)Note:
'tabstop'을 4로 설정할 수도 있습니다. 하지만, 나중에 'tabstop'을 기본 값인 8로 놓고 파일을 다시 열면, 모양이 흐트러져 보일 것입니다. 또한, 탭 크기가 8칸인 다른 프로그램이나 인쇄를 할 때도 흐트러져 보일 것입니다. 따라서 'tabstop'은 항상 8로 바꾸지 않고 사용하는 것이 좋습니다. 8로 쓰는 것이 표준이기 때문입니다. 탭 바꾸기 --------- 탭 크기가 3인 채로 작성된 파일을 편집해야한다고 합시다. 기본 탭 크기 값인 8을 사용해서 보면 이상하게 보일 것입니다. 'tabstop'을 3으로 설정하면 일단은 제대로 보이겠지만, 이 파일을 편집할 때마다 매번 설정해야하는 불편함이 있습니다. Vim으로 파일 내 탭 사용형태를 바꿀 수 있습니다. 먼저, 'tabstop' 값을 바꾸어 화면에 제대로 보이도록 설정합니다. 그리고 ":retab" 명령을 사용하면 됩니다:
:set tabstop=3
:retab 8
":retab" 명령은 'tabstop'을 8로 바꾸고, 그러면서도 화면에 보이는 모습이 바뀌지 않도록 문서 내용을 적절히 바꿉니다. 공백들을 적절히 탭과 스페이스들로 바꾸는 것입니다. 이제 파일을 저장하면, 다음에 파일을 열 때는 설정을 바꾸지 않아도 제대로 보일 것입니다. 주의: 프로그램 코드에 ":retab"을 사용하면, 문자열 상수 내의 공백도 바꿔버릴 수 있습니다. 프로그램 코드에서는 진짜 탭 문자 대신 "\t"를 사용하는 습관을 들입시다.
*25.4* 긴 줄 다루기 때때로 화면크기보다 더 폭이 넓은 파일을 편집해야할 때가 있습니다. 이런 때 Vim은 자동으로 긴 줄을 여러 줄로 나누어 화면에 표시합니다. 'wrap' 옵션을 끄면 파일의 각 줄이 화면에서도 한 줄로 표시됩니다. 그래서 화면크기보다 더 긴 줄은 화면 오른쪽으로 벗어나서 보이지 않게 됩니다. 화면을 벗어난 글자로 커서를 움직이면, 글자가 화면에 보이도록 문서가 스크롤됩니다. 문서 전체 중에서 보이는 부분을 수평방향으로 움직인다고 생각하시면 됩니다. 기본 설정으로는 GUI에서 수평 스크롤바를 보여주지 않습니다. 수평 스크롤 바가 나타나게 하려면, 다음 명령을 사용하십시오:
:set guioptions+=b
Vim 창 아래쪽에 수평 스크롤바가 나타날 것입니다. 스크롤바가 없거나, 있더라도 사용하고 싶지 않을 때는 다음 명령들을 사용하여 문서를 스크롤 하십시오. 문서 내 커서의 위치는 변하지 않습니다. 단, 화면 밖으로 벗어나는 경우에는 화면에 보이는 영역으로 옮겨집니다. zh 오른쪽으로 스크롤 4zh 오른쪽으로 네 글자 스크롤 zH 오른쪽으로 창 폭의 절반만큼 스크롤 ze 커서가 화면의 오른쪽 끝에 오도록 오른쪽으로 스크롤 zl 왼쪽으로 스크롤 4zl 왼쪽으로 네 글자 스크롤 zL 왼쪽으로 창 폭의 절반만큼 스크롤 zs 커서가 화면의 왼쪽 끝에 오도록 왼쪽으로 스크롤 다음 한 줄의 예문으로 위 명령들을 사용해보겠습니다. 커서가 다음 문장 중 "일부만"의 "일"에 있다고 합시다. "현재 창"은 현재 화면에 보이는 영역을 나타냅니다. 아래에 있는 "창" 부분은 각각 맨 앞에 있는 명령이 실행된 후 보이는 영역을 나타냅니다. |
<-- 현재 창 -->
|긴 내용, 화면에는 그 중 일부만 보이는 상황입니다
ze |<-- 창 -->
| zH |<-- 창 -->
| 4zh |<-- 창 -->
| zh |<-- 창 -->
| zl |<-- 창 -->
| 4zl |<-- 창 -->
| zL |<-- 창 -->
| zs |<-- 창 -->
| 자동 줄 바꿈을 껐을 때 움직이기 ------------------------------- 'wrap' 옵션을 끄면 문서가 좌우로 스크롤됩니다. 화면에 보이는 내용 안에서만 움직이려면 다음 명령들을 쓰면 됩니다. 이 명령들은 화면에 보이지 않는 영역의 내용을 고려하지 않으며, 이로 인해 문서가 스크롤되지 않습니다: g0 현재 줄에서 화면에 보이는 첫 번째 문자로 g^ 현재 줄에서 화면에 보이는 문자 중 공백이 아닌 첫 번째 문자로 gm 현재 줄의 가운데로 g$ 현재 줄에서 화면에 보이는 마지막 문자로 |<-- 창 -->
|긴 내용, 일부만 화면에 표시되는 상황
g0 g^ gm g$ 띄어쓰기 단위로 줄바꾸기 *edit-no-break* ------------------------ 다른 프로그램에서 사용할 문서를 작성하다보면, 문단 내에서 줄을 바꿀 수 없을 때가 있습니다. 'wrap' 옵션을 끄면 현재 쓰고 있는 문장을 한 눈에 모두 볼 수 없다는 문제가 있습니다. 반대로 'wrap' 옵션을 켜면, 줄의 끝에서 단어가 두 줄로 잘려서 읽기 힘들 때가 있습니다. 이 문제를 해결하려면 'linebreak'(줄바꿈) 옵션을 사용하면 됩니다. 그러면 Vim은 화면에 표시할 때 줄에서 적당한 부분을 찾아 줄 바꿈을 합니다. 물론 파일 자체의 내용은 바뀌지 않습니다. 예를 들어 'linebreak' 옵션을 끄면 다음과 같이 보입니다: +---------------------------------+ |중소 은행용 자동 편지 작성 프로그
| |램을 만들었습니다. 그들은 그 중>
| |에서도 제일 부유한 1000명의 고객>
| |에게는 특별한 맞춤 편지를 보내길
| |원했습니다. 프로그래머로서는 불>
| +---------------------------------+ 그리고:
:set linebreak
위와 같이 설정하면 다음과 같이 보입니다: +---------------------------------+ |
중소 은행용 자동 편지 작성
| |프로그램을 만들었습니다. 그들은
| |그 중에서도 제일 부유한 1000명의
| |고객에게는 특별한 맞춤 편지를
| |보내길 원했습니다.
| |프로그래머로서는 불행하게도,
| +---------------------------------+ 관련된 설정들: 'breakat'(줄바꿈위치) 옵션은 줄을 바꿀 수 있는 문자를 지정합니다. 'showbreak'(줄바꿈표시) 옵션은 문서의 한 줄이 여러 줄로 나뉘어 표시되는 경우 자동 줄 바꿈이 된 줄 앞에 보여줄 문자를 지정합니다. 문단이 여러 줄로 나뉘어 저장되지 않게 하려면 'textwidth'를 0으로 지정하십시오. 화면에 보이는 줄 기준으로 움직이기 ---------------------------------- "j", "k"는 다음이나 이전 줄로 움직이는 명령어입니다. 줄 하나가 매우 긴 경우에는, 화면에서 여러 줄을 한 번에 움직이게 됩니다. 화면에 보이는 상태를 기준으로 한 줄을 움직이려면, "gj", "gk" 명령어를 사용하십시오. 한 줄이 화면상에 한 줄로 표시된 경우에는 "j", "k"와 똑같이 동작합니다. 하지만 한 줄이 여러 줄로 나뉘어져 표시된 경우에는 화면상으로 한 줄만큼 내려오거나 올라갑니다. 키보드의 화살표 키를 눌렀을 때, 화면에 보이는 줄 단위를 기준으로 움직이고 싶다면 다음 매핑을 사용하면 됩니다:
:map
<Up>
gk:map
<Down>
gj
문단을 한 줄로 모두 붙이기 -------------------------- 마이크로소프트 워드 같은 프로그램으로 문서를 옮기려면, 각 문단이 한 줄이 되도록 해야 합니다. 만약 각 문단이 빈 줄로 구분되어있다면, 다음 명령으로 각 문단을 한 줄로 붙일 수 있습니다:
:g/./,/^$/join
조금 복잡해 보이는 명령입니다. 조금씩 나누어 차근차근 살펴보도록 하겠습니다: :g/./ 문자가 하나라도 있는 모든 줄을 찾는 ":global" 명령입니다. ,/^$/ (빈 줄이 아닌) 현재 줄부터 시작해서 빈 줄까지의 범위를 지정합니다. join ":join" 명령은 지정된 범위의 줄들을 한 줄로 모두 붙입니다. 예를 들어 다음과 같이 30칸의 폭을 갖는 여덟 줄짜리 문서가 있다고 합시다: +----------------------------------+ |
중소 은행용 자동 편지 작성
| |프로그램을 만들었습니다. 그들은
| |특별한 맞춤 편지를 보내길
| |원했습니다.
| || |
그 중에서도 제일 부유한 1000명의
| |고객에게. 프로그래머로서는
| |불행하게도,
| +----------------------------------+ 위 명령을 사용하면 다음과 같이 두 줄로 바뀝니다: +----------------------------------+ |중소 은행용 자동 편지 작성 프로그>
| |램을 만들었습니다. 그들은 특별한
| |맞춤 편지를 보내길 원했습니다.
| |그 중에서도 제일 부유한 1000명의 >
| |고객에게. 프로그래머로서는 불행하
| |게도,
| +----------------------------------+ 단, 문단을 구분하는 빈 줄이 완전히 비어있지 않고, 스페이스나 탭 같은 공백문자가 들어있는 경우에는 제대로 동작하지 않습니다. 그런 경우에도 제대로 동작하게 하려면 다음과 같이 명령을 조금 바꾸면 됩니다::g/\S/,/^\s*$/join
하지만 이 경우에도, 파일의 맨 마지막에 빈 줄이나 공백만 들어있는 줄이 있어야 마지막 문단이 한 줄로 모아지는 단점이 있습니다.
*25.5* 표 편집하기 네 개의 열을 가진 표를 편집하고 있다고 합시다:좋은 표 1번 2번 3번
입력 A 0.534
입력 B 0.913
세 번째 열에 숫자를 입력해야 합니다. 두 번째 줄로 가서 "A" 명령을 사용한 다음, 공백을 여러 개 입력해서 제 위치에 내용을 입력하면 됩니다. 하지만 다음 옵션을 사용하면 더 쉽게 할 수 있습니다:
set virtualedit=all
이제 문서 내용이 없는 곳이더라도 자유롭게 커서를 옮길 수 있습니다. 이 영역을 "가상 영역(virtual space)"라고 합니다. 이 기능을 사용하면 표를 훨씬 쉽게 편집할 수 있습니다. 마지막 열의 열 제목을 찾아서 커서를 옮깁니다:
/3번
이제 "j"를 누르면, "입력 A"의 값을 입력해야하는 위치에 정확히 오게 됩니다. 여기에 "0.693"을 입력하면 다음과 같이 됩니다:
좋은 표 1번 2번 3번
입력 A 0.534 0.693
입력 B 0.913
새로운 내용을 입력할 곳 앞에는 Vim이 자동으로 공백을 채워줍니다. 이제 "Bj"를 입력해서 같은 열의 다음 행으로 움직입니다. "B"는 직전의 띄어쓰기 바로 다음으로 움직이는 명령입니다. 그리고 "j"로 다음 값이 입력될 곳으로 움직입니다.Note:
화면의 어디로든 커서를 움직일 수 있습니다. 줄의 끝 뒤로도 물론 움직일 수 있습니다. 하지만, 현재 커서 위치까지 공백이 항상 바로바로 생기는 것은 아니고, 그 위치에 문자가 하나라도 입력되는 순간 공백이 삽입됩니다. 열 복사하기 ----------- 세 번째 열을 복사해서 "1번" 열 앞에 새로운 열로 추가하고 싶다고 합시다. 다음 일곱 단계를 따라하면 됩니다. 1. 복사할 열의 왼쪽 위로 커서를 옮깁니다. 예를 들어 "/3번" 하면 됩니다. 2.CTRL-V
로 블록 시각 모드로 들어갑니다. 3. "2j"로 두 줄 아래로 내려갑니다. 이제 "가상 영역"인 "입력 B"행의 "3번" 열에 위치해있게 됩니다 . 4. 커서를 오른쪽으로 움직여서, 열 전체 및 열 사이의 구분을 위한 공백을 선택합니다. "9l" 명령을 사용하면 됩니다. 5. 선택한 영역을 "y"로 복사해 놓습니다. 6. 커서를 새로운 열이 추가될 위치인 "1번"으로 옮깁니다. 7. "P" 명령을 입력합니다. 결과는 다음과 같습니다:좋은 표 3번 1번 2번 3번
입력 A 0.693 0.534 0.693
입력 B 0.913
"1번" 열 전체가 오른쪽으로 밀려났습니다. "3번" 열의 내용이 없는 행에서도 마찬가지로 밀려난 것을 볼 수 있습니다. 다음 명령으로 커서가 가상 영역으로 움직이지 않도록 되돌립니다:
:set virtualedit=
가상 바꾸기 모드 ---------------- 'virtualedit'(가상 편집)를 사용할 때의 단점은, 뭔가 "느낌"이 좀 다르다는 것입니다. 커서를 움직일 때 줄 끝을 넘어가면 탭이나 스페이스를 인식할 수 없습니다. 이럴 땐 "가상 바꾸기 모드"를 사용할 수도 있습니다. 탭과 다른 문자들이 섞여있는 표의 한 줄이 있다고 합시다. 첫 번째 탭에서 "rx"를 사용합시다:
inp 0.693 0.534 0.693
| rx | Vinpx0.693 0.534 0.693
표 모양이 깨져서 엉망이 됩니다. 이런 상황을 막으려면 "gr" 명령을 쓰면 됩니다:inp 0.693 0.534 0.693
| grx | Vinpx 0.693 0.534 0.693
"gr" 명령어를 사용하면, 새로운 문자가 똑같은 화면 영역을 차지하도록 적절히 조정됩니다. 공백을 메우기 위해 탭과 스페이스가 적절히 삽입되는 것입니다. 따라서 탭 문자를 "x"로 바꾸면 문서가 뒤틀리지 않도록 공백이 삽입됩니다. 위 예에서는 탭 문자가 삽입되었습니다. 하나 이상의 문자를 바꿀 때는 보통 "R" 명령을 사용하여 바꾸기 모드로 들어갑니다(|04.9|를 참고하십시오). 이 명령도 역시 표 모양을 엉망으로 만들고 엉뚱한 문자를 바꿔버립니다:inp 0 0.534 0.693
| R0.786 | Vinp 0.78634 0.693
"gR" 명령은 가상 바꾸기 모드를 사용합니다. 이 명령을 사용하면 다음과 같이 표 모양을 그대로 유지할 수 있습니다:inp 0 0.534 0.693
| gR0.786 | Vinp 0.786 0.534 0.693
다음 장: |usr_26| 반복하기 저작권: |manual-copyright| 참고 vim:tw=78:ts=8:ft=help:norl:
Generated by vim2html on 2013. 12. 14. (토) 20:47:01 KST