본문 바로가기

컴퓨터활용

한글 Emacs 사용 설명서

요즘 Emacs 열심히 하고 있습니다. 아래 지침서는 여기에서 가지고 왔습니다. 아무래도 한글로 된 설명이 눈에 잘 들어오는 것 같아서 열심히 따라해 볼려고 가지고 왔습니다. 

이맥스(Emacs) 지침서입니다.
끝에는 복사 조건이
있습니다. 지금 읽고 있는 이 글은 이맥스(Emacs) 지침서입니다.
 
이맥스 명령들은 대개 제어쇠 (CTRL이나 CTL이라고도 표시) 혹은
META쇠 (EDIT이나 ALT라고도 표시)를 사용합니다. 이런 글쇠를 매번 다
쓰기 보다는 우리는 다음과 같은 약식 표현을 쓰기로 합시다:
 
C-<문자> 제어쇠를 누른 채 <문자> 글쇠를 칩니다. 즉, C-f는 제어쇠를
누른 상태에서 f 글쇠를 치는 것을 말합니다.
M-<문자> META쇠나 EDIT쇠 혹은 교체쇠(ALT)를 누른 채 <문자> 글쇠를
칩니다. META쇠, EDIT쇠 혹은 교체쇠가 없으면 나옴쇠(ESC)를
눌렀다 놓은 후 <문자> 글쇠를 칩니다. 나옴쇠는 <ESC>이라고
쓰기로 합니다.
 
유의: C-x C-c를 치면 이맥스를 종료할 수 있습니다. (두 문자.)
왼쪽 가장자리에 있는 문자 ">>"는 독자가 명령을 실행해 보도록
하고자 함을 지시합니다. 예를 들어:
<<help-with-tutorial이 시작하면서 여기에 빈 줄이 끼워졌음>>
>> 다음 화면으로 움직이기 위해서는 C-v (다음 화면 보기)를 칩니다.
(해 보십시오. 제어쇠를 누른 채 v 글쇠를 치면 됩니다.)
지금부터는 한 화면을 다 읽었을 때마다 이렇게 해야 합니다.
 
한 화면에서 다른 화면으로 움직일 때 두 줄이 겹친다는 것을
유의하십시오; 이는 한 문장을 계속해서 읽을 수 있도록 하기
위함입니다.
 
첫번째로 익혀야 하는 것은 문장의 한 곳에서 다른 곳으로 움직이는
것입니다. C-v로 한 화면을 앞쪽으로 움직이는 것은 이미 알고 있습니다.
뒷쪽으로 한 화면을 움직이기 위해서는 M-v를 (META쇠를 누른채 v 글쇠를
치거나, META쇠나 EDIT쇠, 혹은 교체쇠가 없을 경우 <ESC>v를 칩니다).
 
>> 몇 번 M-v와 C-v를 번갈아 쳐 보십시오.
 
 
* 요약
------
 
다음은 전체화면을 보는데 유용한 명령들입니다:
 
C-v 한 전체 화면을 앞쪽으로 움직인다
ESC v 한 전체 화면을 뒷쪽으로 움직인다
C-l 화면을 지우고 모든 글월을 다시 화면 표시하면서
깜빡이가 있는 글월을 화면의 중앙에 오게 한다.
(제어쇠-1이 아니라 제어쇠-L입니다.)
 
>> 깜박이를 찾아서 그 곳의 글월을 기억하십시오.
그리고는 C-l을 치십시오.
깜박이를 다시 찾아서 같은 글월이 깜박이의 근처에 있는가를
확인하십시오.
 
 
* 기본적인 깜박이의 제어
------------------------
 
한 화면을 움직이는 것은 유용합니다만 화면의 한 글월내에서 어떻게
정해진 장소로 움직일 수 있겠습니까?
 
이에는 몇가지 방법이 있습니다. 가장 근본적인 방법은 C-p, C-b, C-f
그리고 C-n 명령을 사용하는 것입니다. 각각은 화면에서 정해진 방향으로
하나의 가로칸이나 하나의 세로칸씩 깜박이를 움직입니다.
여기에 이 네가지 명령들과 그 움직이는 방향을 보여주는 표가 있습니다.
 
뒷 줄, C-p
:
:
뒷쪽으로, C-b .... 현재의 깜박이 위치 .... 앞쪽으로, C-f
:
:
앞 줄, C-n
 
>> C-n이나 C-p를 써서 깜박이를 위 도표의 가운데 줄로 움직이십시오.
그리고는 C-l을 쳐서 이 도표가 화면의 중앙에 위치하는지를
확인하십시오.
 
이 명령들은 글자로 기억하는 것이 쉬울 것입니다: P는 previous, N은
next, B는 backward, F는 forward. 이들은 기본적인 깜박이 이동
명령으로서, 항상 사용하게 될 것이므로 지금 당장 머리 속에 익혀 두는
것이 좋습니다.
 
>> C-n을 여러번 쳐서 깜박이를 이 줄로 가져 오십시오.
 
>> C-f를 쳐서 줄 안에서 이동해 보고 C-p로 뒷 줄로 가십시오.
깜박이가 줄의 중간에 있을 때 C-p가 어떤 작용을 하는가 보십시오.
 
각각의 줄은 다음에 이어지는 줄과 분리하는 새줄 문자로 끝납니다.
파일의 마지막 줄은 끝에 새줄 문자가 있어야 합니다 (그러나 이맥스는 이를
요구하지 않습니다).
 
>> 줄이 시작하는 곳에서 C-b를 쳐 보십시오. 깜박이가 뒷 줄의 끝으로
움직여야 합니다. 그 이유는 깜박이가 새줄 문자를 넘어서 뒷쪽으로
움직이기 때문입니다.
 
C-f도 C-b처럼 새줄 문자를 넘어서 이동할 수 있습니다.
 
>> C-b를 몇 번 더 쳐서 깜박이가 어디 있는가를 보고 C-f로 다시 줄의
끝까지 이동하십시오.
그 다음에 C-f로 다음 줄로 이동하십시오.
 
화면의 꼭대기나 밑바닥을 지나쳐서 이동하면 가장자리를 벗어난 글월은
화면 안으로 밀려 들어 옵니다. 이것을 "두루말기(scrolling)"라고
합니다. 이는 이맥스가 깜박이를 화면 밖으로 내보내지 않고 글월의 정해진
장소로 움직일 수 있도록 합니다.
 
>> C-n으로 깜박이를 화면의 밑바닥 아래로 움직여서, 어떤 일이
발생하는가를 보십시오.
 
한 문자씩 이동하는 것이 느리면, 한 낱말씩 움직일 수 있습니다. M-f
(Meta-f)는 한 낱말씩 앞쪽으로, M-b는 한 낱말씩 뒷쪽으로 움직입니다.
 
>> M-f나 M-b를 몇 번 쳐 보십시오.
 
낱말의 중간에서는 낱말의 끝으로 움직입니다. 낱말 사이의 공간
문자에서는 M-f가 다음 낱말의 끝으로 움직입니다. M-b는 반대 방향으로
같은 작용을 합니다.
 
>> 중간 중간에 C-f와 C-b를 치면서 M-f와 M-b를 몇 번
연습하십시오. 그러면 낱말의 내부나 중간에서 M-f와 M-b가 어떤
작용을 하는가를 볼 수 있습니다.
 
C-f와 C-b, M-f와 M-b의 유사성에 유의하십시오. 대부분 Meta 문자는
언어가 정의하는 단위(낱말, 문장, 단락)의 작동에 사용되고 제어
문자는 편집하는 것과는 관계없는 기본 단위(문자, 줄 등등)에
사용됩니다.
 
다음은 줄과 문장 사이에 적용되는 유사성입니다: C-a와 C-e는 줄의
시작이나 끝으로 움직이고, M-a와 M-e는 문장의 시작이나 끝으로
움직입니다.
 
>> C-a를 두세번 친 후 C-e를 두세번 쳐 보십시오.
M-a를 두세번 친 후 M-e를 두세번 쳐 보십시오.
 
C-a는 두 번 이상 반복해도 아무런 작용을 하지 않지만 M-a는 한 문장을
더 뒤로 움직이는 것에 유의하십시오. 이는 비록 유사성은 아니지만
당연한 사실로 여겨집니다.
 
문서에 있는 깜박이의 위치는 "점(point)"이라고 부릅니다. 부연하자면,
깜박이는 화면상에서, 문서 내에 점이 어디에 위치하고 있는가를
보여줍니다.
 
다음은 낱말과 문장 단위의 이동을 포함한 단순한 깜박이 이동 작동을
요약하였습니다.
 
C-f 한 문자 앞쪽으로 움직인다
C-b 한 문자 뒷쪽으로 움직인다
 
M-f 한 단어 앞쪽으로 움직인다
M-b 한 단어 뒷쪽으로 움직인다
 
C-n 앞 줄로 움직인다
C-p 뒷 줄로 움직인다
 
C-a 줄의 시작으로 움직인다
C-e 줄의 끝으로 움직인다
 
M-a 문장의 시작으로 움직인다
M-e 문장의 끝으로 움직인다
 
>> 이 모든 명령을 몇 번 연습해 보십시오. 이 명령들은 가장 자주
사용되는 명령들입니다.
 
깜박이를 움직이는 다른 두가지 중요한 명령은 전 문서의 시작으로
움직이는 M-< (Meta쇠 더작음 글쇠)와 전 문서의 끝으로 움직이는 M->
(Meta쇠 더큼 글쇠)입니다.
 
>> M-<를 지금 쳐서 지침서의 시작으로 움직여 보십시오. 그리고는 C-v를
반복해서 다시 여기로 돌아 오십시오.
 
>> M->를 쳐서 지침서의 끝으로 가십시오. 그리고는 M-v를 반복해서 다시
여기로 돌아 오십시오.
 
단말기에 화살표 글쇠가 있으면 화살표 글쇠를 써서 깜박이를 움직일 수도
있습니다. 다음과 같은 세가지 이유로 C-b, C-f, C-n 그리고 C-p를 쓰는
것을 권장합니다. 첫째로, 이들은 모든 종류의 단말기에서 사용할 수
있습니다. 둘째로, 일단 이맥스를 쓰는 것에 익숙해 지면, 이런 제어
문자을 치는 것이 화살표 글쇠를 치는 것보다 훨씬 빠르다는 것을 알게 될
것입니다 (타자 위치에서 손을 멀리 움직일 필요가 없기 때문에). 셋째로,
일단 이런 제어 문자 명령을 쓰는 습관이 들면 깜박이를 움직이는 다른
고급 명령들도 쉽게 배울 수 있습니다.
 
대부분의 이맥스 명령에는 숫자 인수를 정해줄 수 있습니다; 이는 대부분,
명령의 반복 횟수를 정해 줍니다. 이렇게 명령에 반복 횟수를 정해주는
방법은 명령을 치기 전에 C-u와 숫자를 치는 것으로 이루어집니다. META쇠
(혹은 EDIT쇠나 교체쇠)가 있으면 다른 방법으로 숫자 인수를 입력할 수
있습니다: MEAT쇠를 누른 채 숫자를 치십시오. C-u 방법은 어떤
단말기에서도 사용할 수 있기 때문에 이를 사용하기 바랍니다.
 
예를 들어, C-u 8 C-f는 문자 여덟개의 앞쪽으로 움직입니다.
 
>> 한 번의 명령으로 깜박이가 이 줄 근처에 오도록, 숫자 인수가 주어진
C-n 혹은 C-p를 시도해 보십시오.
 
대부분의 명령들은 숫자 인수를 반복 횟수로 사용하지만 경우에 따라서는
예외적인 명령들이 다른 용도로 쓸 수 있습니다. C-v와 M-v는 이런 예외에
속합니다. 인수를 주면 그 만큼의 화면 수를 두루말기 하지 않고 그
만큼의 줄을 화면의 위나 아래로 두루말기 합니다. 즉, C-u 4 C-v는
화면을 4 줄 만큼 두루말기 합니다.
 
>> 이제 C-u 8 C-v를 쳐 보십시오.
 
이로서 화면은 8 줄이 위로 두루말기 됐을 것입니다. 다시 밑으로
두루말기 하기 위해서는 인수를 M-v에 줍니다.
 
X11나 MS-Windows와 같은 창 기능 화면 표시를 쓸 경우에는 이맥스 창의
왼편에 두루말기 막대라고 불리우는 기다란 사각형 모양의 터가 있을
것입니다. 이 두루말기 막대에 다람쥐를 딸깍함으로써 글월을 두루말기 할
수 있습니다.
 
>> 두루말기 막대 내에서 눈에 띄는 부분의 꼭대기를 중간 단추로 눌러
보십시오. 그러면 글월은 다람쥐로 누른 위치에 따른 양 만큼의 위치를
위나 아래로 두루말기 될 것입니다.
 
>> 다람쥐를 중간 단추가 눌러진 상태에서 위나 아래로 움직여 보십시오.
그러면 글월이 다람쥐가 움직이는대로 위나 아래로 두루말기 될
것입니다.
 
 
* 이맥스의 작동이 단절될 때
---------------------------
 
명령을 주어도 이맥스가 반응을 하지 않을 때는 C-g를 쳐서 이맥스의 작동을
안전하게 정지시킬 수 있습니다. C-g는 실행하는데 너무 오랜 시간이
걸리는 명령을 중지시킬 때에 사용될 수 있습니다.
 
C-g는 숫자 인수를 무시해 버릴 때나 어떤 명령을 시작하였지만 실행시키고
싶지 않을 때에도 사용될 수 있습니다.
 
>> C-u 100을 쳐서 숫자 인수를 100으로 하고 난 후 C-g를 쳐
보십시오. 그리고 나서 C-f를 칩니다. 인수는 C-g로써 없앴음으로 한
문자만 앞으로 움직여야 합니다.
 
 
* 무능 명령
-----------
 
어떤 이맥스 명령은 "허용되지 않아서"(disabled) 초보자가 잘못 사용하지
않도록 되어 있습니다.
 
이런 무능 명령을 쓰면, 이맥스는 이 명령이 무엇이었으며, 이 명령을 그냥
그대로 실행할 것인지를 물어 보는 알림말을 화면 표시합니다.
 
원래가 이 명령을 쓰고자 하였다면, 물음에 대해 사이 문자(Space)를 쳐서
답하십시오. 보통은 무능 명령을 실행시키지 않기 위해 물음에 "n"으로
답합니다.
 
>> C-x C-l (무능 명령의 하나)을 친 후 n으로 물음에 답하십시오.
 
 
* 창
----
 
이맥스는 여러 창을 가질 수 있으며 각각은 따로 문서를 화면 표시합니다.
다중 창을 쓰는 방법에 대해서는 나중에 설명하기로 합니다. 지금은
다른 창을 없애고 원래에 있던 창 하나로 돌아가 편집을 계속하는 방법만을
설명합니다. 간단합니다:
 
C-x 1 창을 하나로 만들기 (즉, 다른 창들을 없앱니다).
 
이것은 제어쇠-x 다음에 숫자 글쇠 1입니다. C-x 1은 깜박이가 있는
창을 확장해서 전체 화면을 쓰도록 합니다. 다른 창들은 지워집니다.
 
>> 깜박이를 이 줄로 움직인 후 C-u 0 C-l을 치십시오.
>> 제어쇠-h k 제어쇠-f를 치십시오.
제어쇠-f 명령에 대한 문서화를 화면 표시하기 위해 새 창이
나타나면서 이 창이 어떻게 줄어 드는가를 관찰하십시오.
 
>> C-x 1을 쳐서 문서화 목록 작성 창이 어떻게 사라지는가를 보십시오.
 
이 명령은 두 문자로 구성되어 있다는 점에서 지금까지 배운 다른 명령들과
다릅니다. 시작은 제어쇠-x로 합니다. 제어쇠-x로 시작하는 명령들은
무척 많습니다; 그런 많은 명령들은 창이나 파일, 사이칸(buffer) 내지는
그런 것과 연관성이 있는 명령들입니다. 이런 명령들은 둘, 셋 혹은
네개의 문자를 씁니다.
 
 
* 끼우기와 지우기
-----------------
 
글월을 끼우기 위해서는 그 글월을 타자치면 됩니다. A, 7, *, 등등과
같이, 볼 수 있는 문자들은 이맥스가 글월로 인식하여 즉각 끼웁니다.
<Return>(복귀쇠)를 치면 새줄 문자가 끼워집니다.
 
<Delete>를 치면 마지막으로 입력된 문자가 지워집니다. <Delete>는
글쇠판에 "Del"이라고도 이름표가 달려 있습니다. 어떤 경우에는
"Backspace" 글쇠가 <Delete>의 역할을 하기도 하지만 항상 그렇지는
않습니다!
 
좀 더 일반적으로, <Delete>는 깜박이 현위치의 바로 전에 있는 문자를
지웁니다.
 
>> 그 것을 해 보십시오--몇몇 문자를 친 후 <Delete>를 쳐서
지워보십시오. 이 파일이 변경되는 것에 대한 걱정은 하지 않아도
됩니다; 으뜸 지침서는 변경되지 않습니다. 이 파일은 으뜸 지침서의
개인용 복사본입니다.
 
글월이 화면의 한 줄에 다 들어가지 못할 정도로 커지면 글월의 줄은
화면의 두번째 줄에서 "계속"됩니다. 오른쪽 한계에 있는 역사선 문자
(“\”)는 줄이 다음 줄로 이어지는 것을 가리킵니다.
 
>> 글월을 계속 끼워서 오른쪽 한계를 넘어서도록 하십시오. 그러면 줄
계속 표시가 나타날 것입니다.
 
>> <Delete>를 써서 글월의 줄이 한 화면 줄에 꽉 차도록 다시
지우십시오. 줄 계속 표시는 없어집니다.
 
새줄 문자도 다른 문자처럼 지울 수 있습니다. 줄을 둘로 나누는 새줄
문자를 지우면 두 줄이 하나로 합치게 됩니다. 이 합친 줄이 너무 길어서
화면의 너비를 넘어서면 그 줄은 줄 계속 문자가 표시되면서 다음 줄에
계속 화면 표시될 것입니다.
 
>> 깜박이를 줄의 시작으로 움직여서 <Delete>를 치십시오. 그러면 그
줄이 이전 줄과 합쳐질 것입니다.
 
>> 다시 <Return>을 쳐서 지워진 새줄 문자를 끼우십시오.
 
대부분의 이맥스 명령에는 반복 횟수를 줄 수 있다는 것을 기억하십시오;
글월 문자도 해당됩니다. 글월 문자를 반복하는 것은 그 것을 여러번
끼우는 것입니다.
 
>> 그 것을 지금 해 봅니다 -- C-u 8 *을 쳐서 ********을 끼우십시오.
 
이제 이맥스에서 무언가를 치고 착오를 교정하는 가장 기본적인 방법을
배웠습니다. 낱말이나 줄도 한번에 지울 수 있습니다. 여기에 지우는
작동을 요약합니다.
 
<Delete> 깜박이 직전의 문자 지우기
C-d 깜박이 다음의 문자 지우기
 
M-<Delete> 깜박이 직전의 낱말 죽이기
M-d 깜박이 다음의 낱말 죽이기
 
C-k 깜박이 위치로부터 줄 끝까지 죽이기
M-k 현재 문장의 끝까지 죽이기
 
C-f와 M-f에서 시작한 유사성이 <Delete>와 C-d 그리고 M-<Delete>와 M-d로
이어지는 것을 유의하십시오 (<Delete>는 진정한 제어 문자는 아니지만
그런데에 상념하지 않도록 합시다). 줄과 문장이 다르듯이 C-k와 M-k는
C-e와 M-e와 다릅니다.
 
일률적인 방법 하나로 사이칸의 어떤 부분도 죽일 수 있습니다.
먼저 그 부분의 한쪽 끝으로 이동해서 C-@이나 C-SPC (둘 중 하나)를 칩니다.
그 부분의 다른쪽 끝으로 이동해서 C-w를 칩니다. 그러면 그 두
위치사이의 모든 글월은 죽여집니다.
 
>> 깜빡이를 전 문단의 시작인 “일”자로 움직이십시오.
>> C-SPC를 치시오. 이맥스는 화면의 바닥에 "Mark set"이라는 알림말을
보여줄 것입니다.
>> 깜빡이를 위 문단의 두번째 줄에 있는 “끝”자로 움직이시오.
>> C-w를 치시오. 그러면 “일”자로 시작해서 “끝”자까지의 글월이 죽여질
것입니다.
 
"죽이기"와 "지우기"의 다른 점은 "죽여진" 글월은 재차 끼워넣을 수 있는
반면 "지워진" 것들은 다시 끼워넣을 수 없다는 것입니다. 죽여진 글월을
다시 사용하는 것을 "잡아당기기(yanking)"라고 합니다. 일반적으로 많은
글월을 제거하는 명령은 글월을 죽이나 (그런 명령들은 그 글월들을 다시
잡아당길 수 있도록 그렇게 설정되어져 있습니다), 한 문자를 제거하거나
빈 줄 혹은 공간문자를 제거하는 명령들은 지움작용을 합니다 (그래서 그
글월들은 다시 잡아 당길 수 없습니다).
 
>> 깜박이를 비어져 있지 않은 줄의 시작으로 움직이십시오. 그리고는
C-k를 쳐서 그 줄의 글월을 죽이십시오.
>> C-k를 다시 치십시오. 그러면 그 줄 다음에 있는 새줄 문자가 죽여지는
것을 볼 수 있습니다.
 
C-k를 한 번 치면 그 줄의 내용을 죽이고 두번째에는 그 줄 자체를
죽임으로서 이어지는 모든 줄을 위로 올립니다. C-k는 숫자 인수를 특별히
취급합니다: 그 숫자만큼의 줄과 그 줄의 내용을 함께 죽입니다. 이것은
단순한 반복이 아닙니다. C-u 2 C-k는 두 줄과 그 줄의 새줄 문자를
죽입니다; C-k를 두 번 치면 그렇지 않습니다.
 
죽여진 글월을 다시 회수하는 것을 "잡아당기기"라고 부릅니다. (누군가가
뺏아간 것을 다시 잡아 당기는 것처럼 생각하십시오.) 죽여진 글월은
죽여진 그 곳에 다시 잡아 당겨질 수도 있지만 사이칸의 다른 장소에서도
혹은 다른 파일에서조차도 잡아당겨질 수 있습니다. 그 글월은 여러번에
걸쳐 잡아당겨짐으로써 여러 복사본을 만들게 될 수도 있습니다.
 
잡아당기기 명령은 C-y입니다. 그러면 가장 마지막으로 죽여진 글월을
현재의 깜빡이 위치에 회수시킵니다.
 
>> 해 보십시오; C-y를 쳐서 글월을 다시 잡아당기십시오.
 
한 가로칸에서 C-k를 여러번 쓰면 죽여진 글월들이 함께 갈무리되어 그 줄
모두를 C-y 한 번으로 잡아당길 수 있다는 것에 유의하십시오.
 
>> C-k를 여러번 쳐서 그 것을 해 보십시오.
 
죽여진 글월을 회수하기 위해서는:
 
>> C-y를 치십시오. 그리고는 깜박이를 몇 줄 아래로 움직여서 C-y를 다시
치십시오. 글월이 어떻게 복사되는가를 알 수 있습니다.
 
다시 잡아당길 글월이 있는데 다른 것을 또 죽이면 어떻게 되겠습니까?
C-y는 더 최근에 죽여진 것을 잡아당길 것입니다. 그러나 그 전의 글월은
잃어버린 것이 아닙니다. 그 것은 M-y 명령을 써서 회수할 수 있습니다.
가장 최신에 죽여진 글월을 C-y로 회수한 후 M-y를 치면 그 잡아당겨졌던
글월이 그 전에 죽여진 것으로 새로바뀌어집니다(replace). M-y를 채차
연거푸 치면 이전에 죽여진 것들이 차례로 나옵니다. 찾고자 하는 글월이
나오면 다른 일을 할 필요가 없습니다. 단순히 편집을 계속하면
잡아당겨진 글월이 그곳에 남아 있게 됩니다.
 
M-y를 계속 치면 출발점 (가장 최근에 죽여진 것)으로 되돌아 옵니다.
 
>> 한 줄을 죽이고 주위로 움직인 후 다른 줄을 죽이십시오.
그리고는 C-y로 두번째 죽여진 줄을 회수하십시오.
그런 다음에 M-y를 치면 첫번째에 죽여진 줄로 새로바뀌게 됩니다.
M-y를 더 쳐서 무엇이 나오는가를 보십시오. 두번째 죽여진 줄이 나올
때까니 그렇게 계속 한 후 몇 번 더 하십시오.
원하면, M-y에 양수나 음수의 인수를 줄 수 있습니다.
 
 
* 무르기
--------
 
글월을 변경하고서 그 것이 실수였음을 알게 되면 무르기(undo) 명령, C-x
u로 변경사항을 무를 수 있습니다.
 
보통, C-x u는 하나의 명령에 의해 변경된 사항을 무릅니다; 한 가로칸에서
C-x u를 여러번 반복하면 각각의 반복은 추가적으로 명령을 무릅니다.
 
그러나 두가지 예외가 있습니다: 글월을 변경하지 않는 명령은 고려
대상에서 제외됩니다 (여기에는 깜박이를 움직이는 명령과 화면 두루말기
명령이 있습니다). 그리고 자체끼우기(self-inserting) 문자들은
평상적으로 20개까지의 집단으로 처리됩니다. (이는 글월 끼우기를 무르기
위해서 타자해야 하는 C-x u의 수를 줄이기 위함입니다.)
 
>> 이 줄을 C-k로 죽인 후 C-x u를 치면 줄이 다시 나타날 것입니다.
 
C-_는 무르기 명령의 다른 형태입니다; C-x u와 같은 작용을 하지만 한
가로칸에서 여러번 타자하기에 편합니다. C-_의 단점은, 어떤
글쇠판에서는 이 것을 어떻게 타자해야 되는가가 불명료하다는 것입니다.
그래서 C-x u도 사용할 수 있도록 되어 있는 것입니다. 어떤
단말기에서는, CONTROL쇠를 누른 상태에서 /를 침으로써 C-_를 칠 수
있습니다.
 
C-_나 C-x u의 숫자 인수는 반복 횟수로 사용됩니다.
 
글월의 지우기를 무르는 것은 글월 죽이기를 무르는 것과 같은 식으로
합니다. 어떤 것을 죽이는 것과 지우는 것의 차이점은 C-y로 잡아당길 수
있느냐는 사실에 있습니다; 무르기에는 차이점이 없습니다.
 
* 파일
------
 
편집한 글월을 영구적으로 하기 위해서는 파일에 넣어 두어야 합니다.
그렇게 하지 않으면, 이맥스가 없어짐과 함께 글월도 사라집니다. 글월을
파일에 넣기 위해서는 그러기 전에 그 파일을 "찾아야" 합니다. (이는
파일을 "방문하는 것"이라고도 합니다.)
 
파일을 찾는다는 것은 이맥스 안에서 그 파일의 내용을 본다는 것을
의미합니다. 여러가지 면에서, 그것은 그 파일 자체를 편집하려는 것과
다름없습니다. 그러나, 이맥스로 변경한 사항은 그 파일을 "갈무리"하기
전까지는 영구적이지 못합니다. 이는 절반쯤 변경된 파일을 원치 않게
운영 체계에 남겨 두는 것을 피하기 위해서 그렇습니다. 갈무리를 해도
이맥스는 변경 사항이 나중에 실수였다고 결정되는 경우를 감안해 근원
파일을 변경된 이름으로 남겨둡니다.
 
화면의 바닥 가까이를 보면 "--:-- TUTORIAL.ko"와 같은 식으로 시작하는,
대시 문자로 시작해서 대시 문자로 끝나는 줄이 있을 것입니다. 화면의 이
부분은 보통, 방문하고 있는 파일의 이름을 보여 줍니다. 지금은 이맥스
지침서의 복사본인 "TUTORIAL.ko"라는 파일을 방문하고 있는 중입니다.
이맥스로 파일 찾기를 하면 정확히 그 곳에 파일의 이름이 나타납니다.
 
파일 찾기 명령의 특별한 점은 원하는 파일의 이름을 말해야 하는
것입니다. 명령이 "단말기로부터 인수를 읽는다"라고 합니다 (이 경우,
인수는 파일의 이름입니다). 아래의 명령을 치고 나면
 
C-x C-f 파일 찾기
 
이맥스는 파일의 이름을 치라고 요구합니다. 파일 이름을 치면 화면의 바닥
줄에 이름이 나타납니다. 이런 종류의 입력에 쓰일 때에는 바닥 줄을 작은
사이칸(minibuffer)이라고 부릅니다. 평상시에 쓰는 이맥스의 편집
명령으로 파일 이름을 편집할 수 있습니다.
 
파일 이름을 (혹은 모든 종류의 작은 사이칸 입력을) 넣을 때, 명령의
취소는 C-g로 합니다.
 
>> C-x C-f를 치고 C-g를 치십시오. 이는 작은 사이칸을 취소하고 또,
작은 사이칸을 쓰고 있는 C-x C-f 명령도 취소합니다. 그러므로 아무
파일도 찾지 않는 것입니다.
 
파일 이름을 다 기입했으면 <Return>을 쳐서 종료하십시오. 그러면 C-x
C-f 명령이 작동되어 선택된 파일을 찾기 시작합니다. C-x C-f 명령이
끝나면 작은 사이칸은 사라집니다.
 
잠시 후에는 파일의 내용이 화면에 나타나고 그 내용을 편집할 수 있게
됩니다. 변경 사항을 영구적으로 하고 싶으면 다음의 명령을 칩니다.
 
C-x C-s 파일 갈무리
 
이 명령은 이맥스 내의 글월을 파일에 복사합니다. 이 명령이 첫번째로
수행될 때는 이맥스가 근원 파일을 새 이름으로 바꾸어 놓음으로써 잃어버릴
우려를 방지합니다. 새 이름은 근원 파일 이름의 끝에 "~"을 더함으로써
만들어집니다.
 
갈무리가 끝나면 이맥스는 쓰여진 파일의 이름을 인쇄합니다. 파일은 아주
자주 갈무리함으로써 운영 체계가 와르르 무너져도 많은 작업이 손실되지
않도록 합니다.
 
>> C-x C-s를 쳐서 지침서의 복사본을 갈무리 하십시오.
그러면 "Wrote ...TUTORIAL.ko"라고 화면의 바닥에 인쇄될 것입니다.
 
보거나 편집하기 위해, 존재하는 파일을 찾을 수 있습니다. 또한 존재하지
않는 파일도 찾을 수 있습니다. 이렇게 하면 이맥스로 파일을 만들게
됩니다: 빈 내용으로 시작되는 파일을 찾아서 글월을 끼우기 시작합니다.
파일을 "갈무리"하도록 요청하면 이맥스는 끼워진 글월을 내용으로 하는
파일을 실제로 만들어 냅니다. 그런 후에는 이 파일은 이미 존재하는
파일이 됩니다.
 
 
* 사이칸
--------
 
두번째 파일을 C-x C-f로 찾으면, 첫번째 파일은 이맥스의 내부에 남아
있습니다. 그 파일은 C-x C-f로 재차 찾음으로서 다시 엇바꿀 수
있습니다. 이런 식으로 매우 많은 수의 파일들을 이맥스 내부에 불러 들일
수 있습니다.
 
>> C-x C-f foo <Return>을 쳐서 "foo"라는 이름의 파일을 만드십시오.
그리고는 글월을 끼우고 편집하여 C-x C-s로 "foo"를 갈무리하십시오.
마지막으로, C-x C-f TUTORIAL.ko <Return>을 쳐서 지침서로 다시 돌아
오십시오.
 
이맥스는 각 파일의 글월을 "사이칸"이라고 불리우는 것 안에 저장합니다.
파일을 찾는 것은 이맥스의 내부에 새 사이칸을 만드는 것과 같습니다.
이맥스의 일로 현존하고 있는 사이칸의 목록을 보기 위해서는 다음과 같이
치십시오.
 
C-x C-b 사이칸 목록
 
>> C-x C-b를 지금 쳐 보십시오.
 
각 사이칸이 어떤 이름을 갖고 있는가 보십시오. 사이칸은 간직하고 있는
글월의 모체가 되는 파일의 이름을 갖고 있을 수도 있습니다. 어떤
사이칸들은 파일과 무관합니다. 예를 들어, "*Buffer List*"라는 사이칸은
아무 파일도 갖고 있지 않습니다. 이 사이칸은 C-x C-b로 만들어진 사이칸
목록을 담고 있을 뿐입니다. 이맥스 창 안에서 볼 수 있는 모든 글월은
어떤 사이칸의 일부분 입니다.
 
>> C-x 1을 쳐서 사이칸 목록을 없애십시오.
 
한 파일의 글월을 변경한 후 다른 파일을 찾으면 첫번째 파일은 갈무리되지
않은 것입니다. 그 변경 사항은 이맥스 내부의 파일 사이칸에만 남아
있습니다. 두번째 파일의 사이칸을 만들거나 편집하는 것은 첫번째 파일의
사이칸에 전혀 영향을 주지 않습니다. 이는 매우 유용하기는 하나 다른
면에서는 첫번째 파일의 사이칸을 갈무리할 수 있는 간편한 다른 방법이
필요하다는 것을 의미합니다. C-x C-f를 쳐서 그 사이칸으로 엇바꾼 후
C-x C-s로 갈무리하는 것은 귀찮은 일입니다. 그래서 다음과 같은 명령이
있습니다
 
C-x s 몇몇 사이칸 갈무리
 
C-x s는, 변경되었지만 갈무리되지 않은 사이칸이 있나 조사해 봅니다.
그리고는 그런 사이칸들에 대해서 그 것을 갈무리할 것인가를 물어
봅니다.
 
>> 한 줄의 글월을 끼운 후 C-x s를 치십시오.
그러면 TUTORIAL.ko라는 이름의 사이칸을 갈무리할 것인지 물어 볼
것입니다. "y"를 쳐서 물음에 예라고 답하십시오.
 
* 명령어의 확장
---------------
 
이맥스의 명령어는 너무 많아서 이 모든 명령을 제어쇠나 meta쇠에 할당할
수 없습니다. 이맥스는 이런 문제를 X (eXtend) 명령으로 해결합니다.
이에는 두가지 종류가 있습니다:
 
C-x 문자 확장. 문자 하나가 뒤따름.
M-x 이름 명령의 확장. 긴 이름이 뒤따름.
 
이 명령들은 대개 유용하지만, 지금까지 배워 온 명령들보다는 덜 빈번하게
사용됩니다. 이런 종류의 명령을 이미 두 개 알고 있습니다: 파일
명령 중에 C-x C-f로 찾기와 C-x C-s로 갈무리하기. 다른 예는 이맥스 작업
시간을 마치는 명령입니다--이는 C-x C-c 명령. (변경 사항을
잃어버리지나 않을까 하는 걱정은 않 해도 됩니다; C-x C-c는 이맥스를
죽이기 전에 각각의 변경된 파일을 갈무리할 기회를 줍니다.)
 
C-z는 이맥스를 *임시로* 나오기 위한 명령입니다--그래서 다음에, 하던
중의 이맥스 작업 시간으로 다시 되돌아 갈 수 있습니다.
 
운영 체계가 허용하면 C-z는 이맥스를 "중지"시킵니다(suspend); 즉, 이
명령은 조가비(shell)로 돌아 가도록 하지만 이맥스를 파괴하는 것은
아닙니다. 대부분의 조가비에서는 “fg”나 “%emacs”명령으로 이맥스를 계속할
수 있습니다.
 
중지하는 것을 제공하지 않는 운영 체계에서는 C-z에 의해, 이맥스 밑에서
실행되는 아랫조가비가 만들어 지게 되는데 여기서 다른 프로그램들을
실행한 후 이맥스로 돌아 올 수 있는 기회가 있습니다; 사실상 이맥스로부터
"나가는" 것은 아닙니다. 이 경우 보통, 조가비 명령인 “exit”으로
아랫조가비에서 이맥스에 되돌아 옵니다.
 
C-x C-c는 전산기에서 벗어나기 할 때나 사용합니다. 편지를 취급하는
프로그램이나 다른 잡다한 도움모(utilities)들이 야기한 이맥스는
중지시킨다는 것을 모르기 때문에 나가기를 해야 합니다. 하지만, 보통의
경우, 벗어나기를 하지 않는 한, 이맥스를 나가기보다는 중지하는 것이
좋습니다.
 
C-x 명령어는 많이 있습니다. 이미 배운 것을 아래에 죽보입니다.
 
C-x C-f 파일 찾기.
C-x C-s 파일 갈무리.
C-x C-b 사이칸 목록.
C-x C-c 이맥스 끝내기.
C-x u 무르기.
 
이름 확장 명령은 자주 사용되지 않거나 특별한 방식에서나 쓰이는
명령입니다. 한가지 예는 replace-string 명령인데 이는 전역적으로 한
문자열을 다른 문자열로 새로바꿉니다. M-x를 치면 이맥스는 화면의
바닥에서 M-x라고 길잡이하여 명령의 이름을 치도록 합니다; 이 경우는
"replace-string". "repl s<TAB>"만 쳐도 이맥스는 이름을 완성시킬
것입니다. 명령 이름은 <Return>으로 끝납니다.
 
replace-string 명령은 두개의 인수를 요구합니다--바뀌어져야 할 문자열과
새로바뀌어질 문자열. 각각의 인수는 <Return>으로 끝내야 합니다.
 
>> 깜박이를 이 줄에서 두 줄 아래의 빈 줄로 움직이십시오.
그 후 M-x repl s<Return>변화되<Return>바뀌<Return>을 치십시오.
 
이 줄이 어떻게 변화되었는가를 유의하십시오: 깜박이가 있는 초기 위치
다음에 변-화-되 라는 낱말이 나올 때마다 "바뀌"라고
새로바뀌었습니다.
 
 
* 자동 갈무리
-------------
 
파일을 변경한 후에 아직 갈무리를 하지 않았으면 전산기가 와르르
무너짐으로써 변경 사항을 잃어 버릴 수 있습니다. 이런 재앙을 방지하기
위해, 이맥스는 편집하고 있는 각각의 파일을 주기적으로 "자동 갈무리"
파일에 씁니다. 자동 갈무리된 파일의 이름은 앞뒤로 # 문자가 있습니다;
예를 들어, "hello.c"라는 이름의 파일은 "#hello.c#"라는 이름의 자동
갈무리 파일을 갖게 됩니다. 정상적으로 파일을 갈무리하면 이맥스는 자동
갈무리 파일을 지웁니다.
 
전산기가 와르르 무너지면 그 파일을 (자동 갈무리된 파일이 아니라
편집하던 파일) 평상시처럼 찾은 후 M-x recover-file<Return>을 침으로써
자동 갈무리된 편집물을 회복시킬 수 있습니다. 확인할 것을 요구하면
yes<Return>을 쳐서 계속 진행하여 자동 갈무리된 자료를 회복시키십시오.
 
 
* 메아리 터
-----------
 
이맥스가, 명령을 치는 속도가 느리다고 인식하면 화면 바닥의 "메아리
터"라고 불리는 빈 터에 친 명령을 보여줍니다. 메아리 터는 화면의 바닥
줄입니다.
 
 
* 방식 줄
---------
 
메아리 터의 바로 윗 줄은 "방식 줄"이라고 부릅니다. 방식 줄은 다음과
같은 식으로 표시되어 있습니다.
 
--:** TUTORIAL.ko (Fundamental)--L670--58%----------------
 
이 줄에는 이맥스나 편집하고 있는 글월의 상황에 대한 유용한 정보가
간직되어 있습니다.
 
파일 이름이 무엇을 의미하는지는 이미 알고 있습니다--그 것은 찾았던
파일입니다. -NN%--는 글월에서의 현재 위치를 가리킵니다; 이는 화면
꼭대기 위로 NN 퍼센트의 글월이 있음을 의미합니다. 파일의 꼭대기가
화면에 있으면 --00%-- 대신에 --Top--이라고 표시됩니다. 글월의
밑바닥이 화면에 있으면 --Bot--이라고 표시됩니다. 글월이 아주 작아서
모든 내용이 화면에 다 나타나면 방식 줄에는 --All--이라고 표시됩니다.
 
거의 앞부분에 있는 별 문자들은 글월이 변경되었음을 의미합니다. 파일
방문 직후나 갈무리 직후에는 그 곳에 별 문자가 없고 대시 문자만
있습니다.
 
방식 줄의 괄호 문자안은 어떤 편집 방식을 사용하고 있는가를
알려줍니다. 애초 방식은 Fundamental로서 지금 사용되고 있는
방식입니다. 이는 "주 방식"의 한 예입니다.
 
이맥스에는 주 방식이 많이 있습니다. 그 중 몇가지는 다른 언어 또/또는
다른 종류의 글월을 편집하도록 하는데 쓰이며, Lisp 방식, Text 방식
등등이 있습니다. 항상 한 가지 주 방식만이 적용되며 지금
"Fundamental"이라고 적혀 있는 곳에 표시됩니다.
 
각각의 주 방식은 몇몇 명령들이 작동을 달리하도록 되어 있습니다. 예를
들어, 프로그램에는 설명문을 만드는 명령이 있는데, 프로그램 언어들은
설명문의 형태을 각각 달리 하기 때문에 각각의 주 방식은 설명문을 서로
다르게 끼워 넣도록 되어 있습니다. 모든 주 방식은 확장 명령의 이름을
사용하므로서 그 방식으로 엇바꾸는 것이 쉽게 인식될 수 있습니다. 한
예로 M-x fundamental-mode는 Fundamental 방식으로 엇바꾸는 명령입니다.
 
이 파일과 같은 한글 글월을 편집하려고 한다면 Text 방식을 쓰는 것이
좋을 것입니다.
>> M-x text mode<Return>을 쳐 보십시오.
 
지금까지 배운 이맥스 명령들은 많이 달라지지 않으니 걱정하지 않아도
됩니다. 그러나 M-f와 M-b가 앞작은따옴표를 낱말의 일부로 처리함을
관찰할 수 있을 것입니다. 전에 Fundamental 방식에서는 M-f와 M-b가
앞작은따옴표를 낱말 분리 문자로 취급하였습니다.
 
주 방식은 보통 다음과 같은 미묘한 변화를 초래합니다: 대부분의 명령들은
각각의 주 방식에서 "같은 일"을 하지만 약간 다르게 작동한다.
 
현재의 주 방식에 대한 문서화를 보고자 하면 C-h m을 치십시오.
 
>> C-u C-v를 몇 번 쳐서 이 줄을 화면의 꼭대기쯤으로 움직이십시오.
>> C-h m을 쳐서 Text 방식과 Fundamental 방식의 차이점을 보십시오.
>> C-x 1을 쳐서 문서화를 화면에서 없애십시오.
 
주 방식은 부 방식이 있기 때문에 주 방식이라고 부릅니다. 부 방식은 주
방식을 교체할 수 있는 것이 아니라 주 방식을 부차적으로 수정한
방식입니다. 각각의 부 방식은 다른 부 방식과 독립적으로, 그리고 주
방식과도 독립적으로, 그 자체로서 끄고 켤 수 있습니다. 그러므로 부
방식은 쓰지 않을 수도 있고 하나만 쓸 수도 있으면 여러 부 방식을
짜맞춰서 쓸 수도 있습니다.
 
아주 유용한 부 방식중, 한글 글월을 편집할 때 자주 사용되는 Auto Fill
방식이 있습니다. 이 방식이 켜져 있을 때 이맥스는, 줄이 너무 넓어지면
글월이 끼워짐에 따라 낱말사이에서 자동으로 줄바꿈을 합니다.
 
Auto Fill 방식을 켜기 위해서는 M-x auto-fill-mode<Return>을 칩니다.
이 방식이 켜져 있으면 M-x auto-fill-mode<Return>을 쳐서 끌 수
있습니다. 이 방식이 꺼져 있으면 이 명령은 그 방식을 켜고, 반대로 켜져
있을 때는 이 방식을 끕니다. 우리는 이 명령이 "방식을 똑딱"한다고
(toggle) 합니다.
 
>> M-x auto fill mode<Return>을 지금 쳐 보십시오. 그리고 "asdf "라는
줄을 계속 끼워 넣어서 그 줄이 둘로 나뉘도록 하십시오. Auto Fill
방식은 공간 문자에서만 줄바꿈을 하기 때문에 꼭 공간 문자가 들어
있어야 합니다.
 
한계는 보통 70개의 문자로 정해져 있지만 C-x f 명령으로 그 것을 변경할
수 있습니다. 원하는 한계 설정은 숫자 인수로 하여야 합니다.
 
>> 20이라는 인수로 C-x f를 쳐 보십시오. (C-u 2 0 C-x f).
그리고 글월을 뭔가 쳐서 이맥스가 20개의 문자로 한 줄을 채우는지를
보십시오. 그런 다음에 C-x f를 다시 써서 한계를 70으로 재
설정하십시오.
 
단락의 중간에서 변경하면 Auto Fill 방식은 채움을 다시 하지
않습니다. 그 단락을 다시 채우기 위해서는 깜박이가 단락 안에 있는
상태에서 M-q (Meta쇠-q)를 칩니다.
 
>> 깜박이를 이전 단락으로 움직인 후 M-q를 치십시오.
 
* 찾기
------
 
이맥스는 글월의 앞쪽이나 뒷쪽으로 문자열을 (문자열은 연속된 문자나
연속된 낱말입니다) 찾을 수 있습니다. 문자열을 찾는 것은 깜박이를
움직이는 명령입니다; 깜박이가 그 문자열이 나타나는 곳으로 움직입니다.
 
이맥스의 찾기 명령은 "증가적"이라는 점에서 일반 편집기의 찾기 명령과
다릅니다. 이는 찾고자 하는 문자열을 타자하고 있는 동안에 찾기가
이루어지고 있다는 것을 의미합니다.
 
찾기를 시작시키는 명령은 앞쪽으로 찾기가 C-s이고 뒷쪽으로 찾기가
C-r입니다. 그러나 잠깐 기다리십시오! 지금 이것을 시도해 보지
마십시오.
 
C-s를 치면 메아리 터에, 길잡이로 "I-search"라는 문자열이 나타나는 것을
볼 수 있습니다. 이는 찾고자 하는 문자열이 타자되기를 기다라면서
이맥스가 증가적 찾기 중에 있다는 것을 말해 줍니다. <Return>은 찾기를
마칩니다.
 
>> 이제 C-s를 쳐서 찾기를 시작하십시오. 천천히, 한 번에 한 글자씩
“cursor”라고 치면서 각각의 문자를 친 후 깜박이에 어떤 일이 일어
나는가를 유의하십시오.
이제 “cursor”를 한 번 찾은 것입니다.
>> C-s를 다시 쳐서 다음에 나타나는 “cursor”를 찾으십시오.
>> 자, 이제는 <Delete>를 네 번 쳐서 깜박이가 어떻게 움직이는가를
보십시오.
>> <Return>을 쳐서 찾기를 끝내십시오.
 
어떤 현상이 일어나는지를 보았습니까? 증가적 찾기에서 이맥스는 그때까지
타자한 문자열을 찾으려고 합니다. '깜박이'가 있는 다음 장소로 가려면
C-s를 다시 칩니다. 그런 곳이 없으면 이맥스는 삑소리를 내고 찾기가 현재
"실패"했음을 알려 주며 C-g로도 찾기를 끝낼 수 있게 합니다.
 
유의: 어떤 운영 체계에서는 C-s를 치면 화면을 동결시켜서, 이맥스가 아무
출력도 하지 않는 것을 볼 경우가 있습니다. 이것은 "흐름 제어"라고
불리우는 운영 체계의 "특징"이 C-s를 가로채서 이맥스를 통해 전달되지
않도록 하기 때문입니다. C-q를 누르면 화면이 해제됩니다. 그리고 나서
이맥스 설명서의 "Spontaneous Entry to Incremental Search"라는 단원을
보면 이런 "특징"을 어떻게 취급할 수 있는가에 대한 조언을 읽을 수
있습니다.
 
증가적 찾기 도중에 <Delete>를 치면 찾기 문자열의 마지막 문자가
지워지고 찾기는 마지막으로 찾았던 곳에 되돌아 가는 것을 볼 수
있습니다. 예를 들어, "c"가 어디에 처음으로 나오는지를 보기 위해서
"c"를 쳤다고 합시다. 이제 "u"를 치면 깜박이는 "cu"가 처음으로 나오는
곳으로 움직일 것입니다. 이제 <Delete>를 치십시오. 그러면 찾기
문자열에서 "u"가 지워지고 깜박이는 "c"가 처음 나온 곳으로 되돌아
갑니다.
 
찾기중에 제어 문자나 meta 문자를 치면 (예외가 있지만--찾기에서 특별한
의미를 갖는 C-s나 C-r과 같은 문자들) 찾기는 끝나버립니다.
 
C-s는 깜박이의 현재 위치 다음에 발견되는 찾기 문자열을 찾도록
시작시킵니다. 이전에 나온 글월에서 무언가를 찾으려면 C-r를 칩니다.
C-s에 적용되는 모든 사항은 방향만 바뀌었을 뿐 모두 C-r에 적용됩니다.
 
* 다중 창
---------
 
이맥스의 괜찮은 특징 중의 하나로 한 개 이상의 창을 동시에 화면에 표시할
수 있다는 것을 들 수 있습니다.
 
>> 깜박이를 이 줄로 움직여서 C-u 0 C-l을 쳐 보십시오.
 
>> C-x 2를 쳐서 화면을 두 창으로 나누십시오.
두 창은 이 지침서를 화면 표시합니다. 깜박이는 윗 창에 있습니다.
 
>> C-M-v를 쳐서 바닥 창을 두루말기 하십시오.
(Meta쇠가 없으면 ESC C-v를 치십시오.)
 
>> C-x o ("o"는 "other"의 첫 글자)를 쳐서 깜박이를 바닥 창으로
움직이십시오.
>> 바닥 창에서 C-v와 M-v를 써서 두루말기 하십시오.
이 지시를 읽는 것은 꼭대기 창에서 합니다.
 
>> C-x o를 다시 쳐서 깜박이를 다시 꼭대기 창으로 움직이십시오.
꼭대기 창에서, 깜박이는 전에 있던 곳으로 갈 것입니다.
 
C-x o를 계속 사용하여 창들 사이에서 엇바꾸기를 할 수 있습니다. 각각의
창은 자체의 깜박이 위치를 갖고 있지만 한 창만이 깜박이를 보여 줍니다.
모든 정상적인 편집 명령은 깜박이가 있는 창에 적용됩니다. 이것을
"선택된 창"이라고 부릅니다.
 
C-M-v 명령은 다른 창을 참조하면서 글월을 편집할 때 유용합니다.
깜박이를 편집하고 있는 창에 두고 다른 창을 C-M-v로 전진시킬 수
있습니다.
 
C-M-v는 CONTROL-META 문자의 한 예입니다. META쇠가 있으면 CONTROL쇠와
META쇠를 누른 채 v 글쇠를 치므로써 C-M-v를 칠 수 있습니다. CONTROL쇠나
META쇠는 타자하는 문자를 변경하는 역할을 하기 때문에 그 둘 중 무엇이
처음에 오는가가 문제되지 않습니다.
 
META쇠가 없어서 ESC쇠로 대용할 때는 순서가 문제됩니다: ESC쇠를 먼저
치고 제어쇠-v를 쳐야 하며 제어쇠-ESC v는 작동하지 않습니다. 그
이유는 ESC이 변경쇠가 아니라 자체로서 기능을 가진 문자이기 때문입니다.
 
>> C-x 1을 (이 꼭대기 창에서) 쳐서 바닥 창을 없애십시오.
 
(바닥 창에서 C-x 1을 치면 꼭대기 창이 없어질 것입니다. 이 명령을 "한
창만 보존하시오--지금 작업중인 창만"이라고 생각하십시오.)
 
양쪽 창에 같은 사이칸을 화면 표시할 필요는 없습니다. 한 창에서 C-x
C-f로 파일을 찾으면 다른 창은 변화가 없습니다. 각각의 창에서 파일을
독립적으로 찾을 수 있습니다.
 
두 창을 사용하여 다른 내용을 화면 표시하는 또 다른 방법이 있습니다:
 
>> C-x 4 C-f를 치고 파일 이름 하나를 쳐 보십시오.
<Return>으로 끝내십시오. 그 파일이 바닥 창에 나타나는 것을
보십시오. 깜박이도 그 곳으로 움직입니다.
 
>> C-x o를 쳐서 다시 꼭대기 창으로 돌아 가서 C-x 1로 바닥 창을
지우십시오.
 
 
* 회귀적 편집 수준
------------------
 
간혹 "회귀적 편집 수준"이라고 (recursive editing level) 불리우는 것에
봉착하게 됩니다. 방식 줄에서 주 방식 이름의 앞뒤에 있는 소괄호 문자를
대괄호 문자가 둘러 싸고 있으면 이를 알 수 있습니다. 예를 들어,
(Fundamental) 대신에 [(Fundamental)]이라고 표시될 때 입니다.
 
이 회귀적 편집 수준에서 벗어 나기 위해서는 ESC ESC ESC을 칩니다.
이 것은 다목적 "벗어나기" 명령입니다. 추가된 창을 없애거나 작은
사이칸에서 나오기 위해서도 사용될 수 있습니다.
 
>> M-x를 쳐서 작은 사이칸으로 들어 가십시오; 그리고는 ESC ESC ESC을
쳐서 빠져 나오십시오.
 
C-g를 써서는 회귀적 편집 수준에서 벗어날 수 없습니다. 그 이유는 C-g가
회귀적 편집 수준 이내에서 명령이나 인수를 취소하기 위해 사용되기
때문입니다.
 
 
* 더 많은 도움말 얻기
---------------------
 
이 지침서에서는 이맥스 사용을 시작하기에 충분한 정보를 제공하려고
노력하였습니다. 이맥스에는 너무나 많은 기능이 있어서 여기서는 모두 다
설명할 수 없습니다. 그러나, 이맥스에는 다른 많은 유용한 특징들이
있어서 이맥스에 대해서 더 많이 배우고 싶을 것 입니다. 이맥스는 이맥스
명령에 대한 문서화를 읽을 수 있는 명령을 제공합니다. 이 "도움말"
명령들은 모두 제어쇠-h로 시작하며 이 문자를 "도움말 문자"라고
부릅니다.
 
도움말 특징을 사용하려면 C-h 문자를 치고 원하는 종류의 도움말을
가르키는 문자를 칩니다. 전혀 생각이 않나면 C-h ?를 쳐서, 이맥스가
어떤 종류의 도움말을 제공할 수 있는가를 보여 주도록 하십시오. C-h를
친 후 아무런 도움말이 필요없다고 판단되면 C-g를 쳐서 취소하십시오.
 
(어떤 곳에서는 C-h의 의미를 변경시켜 놓습니다. 그들이 모든 사용자에게
이렇듯 일괄적인 조처를 취해서는 않되는 것이므로 이것은 운영 체계
관리자에게 불평할 수 있는 충분한 근거가 됩니다. C-h가 화면의 바닥에
도움 알림말을 화면 표시하지 않으면 불평이 해결될 때까지는 F1 글쇠나
M-x help <Return>을 대신 사용하도록 하십시오.)
 
가장 기본적인 도움말 특징은 C-h c 입니다. C-h를 치고 문자 c를 친 후
명령 문자나 명령 순차(sequence)를 치십시오; 그러면 이맥스는 그 명령에
대한 아주 간단한 설명을 화면 표시합니다.
 
>> C-h c 제어쇠-p를 치십시오.
알림말은 다음과 같은 식이어야 합니다.
 
C-p runs the command previous-line
 
이는 "기능의 이름"을 말해 줍니다. 기능 이름은 이맥스를 자기 취향에
맞게 쓰거나 확장할 때 주로 사용됩니다. 그러나 기능 이름들은 그 명령이
어떤 일을 하는지를 알 수 있도록 정해지기 때문에 그들은 아주 간단한
문서화로도 -- 여태까지 배운 명령들을 기억하는데 충분할 정도로 --
사용될 수 있습니다.
 
C-x C-s와 (META쇠나 EDIT쇠 혹은 교체쇠가 있으면) <ESC>v와 같은 다중
문자 명령들도 C-h c의 다음에 올 수 있습니다.
 
한 명령에 대해 더 자세한 정보를 얻기 위해서는 C-h c 대신에 C-h k를
사용하십시오.
 
>> C-h k 제어쇠-p를 쳐 보십시오.
 
이는 그 기능의 이름과 함께 그 문서화를 이맥스 창에 화면 표시합니다.
출력된 것을 다 읽었으면 C-x 1로 도움말 글월을 없앱니다. 당장에 없앨
필요는 없습니다. 도움말 글월을 참조하면서 편집을 하다가 C-x 1을 쳐도
됩니다.
 
여기에 또다른 유용한 C-h의 추가 선택이 있습니다:
 
C-h f 기능 기술하기. 기능 이름을 칩니다.
 
>> C-h f previous-line<Return>을 쳐 보십시오.
그러면 이맥스가 C-p 명령이 제공하는 기능에 대한 모든 정보를 인쇄할
것입니다.
 
유사한 명령으로 C-h v 가 있으며 이는 이맥스의 행동을 적절하게 하는데
사용되는 변수값에 대한 문서화를 보여준다.
 
C-h a 명령 핵심어(apropos). 핵심어를 치면 이맥스가 이
핵심어가 들어 있는 모든 명령들의 목록을 작성할
것입니다. 이 명령들은 모두 Meta쇠-x로 부를 수
있습니다. 어떤 명령들에 대해서는 같은 명령을 실행하는,
한두개의 문자로 된 순차에 대한 목록도 명령 핵심어가
작성합니다.
 
>> C-h a file<Return>을 쳐 보십시오.
 
그러면 이름에 "file"이 들어 있는 모든 M-x 명령들의 목록이 작성되여
다른 창에 화면 표시됩니다. find-file과 같은 명령들에는 C-x C-f와 같은
문자 명령의 목록이 해당하는 명령의 옆에 작성되어 있는 것을 볼 수 있을
것입니다.
 
>> C-M-v를 쳐서 도움말 창을 두루말기 하십시오. 이를 몇 번 하십시오.
 
>> C-x 1을 쳐서 도움말 창을 지우십시오.
 
C-h i 온라인 설명서를 읽기 (즉 Info). 이 명령은
“*info*”라는 특별한 사이칸에서 시스템에 설치된
꾸러미의 온라인 설명서를 보여줍니다. m emacs
<복귀쇠>를 치면 이맥스 설명서를 읽을 수 있습니다.
전에 Info를 읽어 본 적이 없으면 ?를 치십시오. 그러면
이맥스가 Info 방식이 어떤 기능이 있는 지를 안내하는
여행이 시작됩니다. 이 지침서를 전부 마치면 이맥스의
Info 설명서를 주된 문서화로 생각해서 읽어야 합니다.
 
* 결론
------
 
이맥스를 완전히 나가기 위해서는 C-x C-c를 쓴다는 사실을 기억하십시오.
일시적으로 조가비로 나가서 후에 다시 이맥스에 되돌아 올 수 있기
위해서는 C-z를 사용하십시오.
 
이 지침서는 새로운 사용자들 모두가 이해할 수 있도록 만들어졌으므로
불분명한 사항이 발견되면 앉아서 자기 자신을 탓하지 말고 불평하십시오!
 
 
복사 조건
---------
 
이 지침서는 Stuart Cracraft씨가 이맥스 근원 자료를 위해 쓴, 긴 이맥스
지침서를 모체로 하여 작성된 것이다.
 
GNU 이맥스와 같이 이 지침서 판은 저작권이 있으며 특정한 조건을 만족할
때에 복사본을 배포할 수 있는 허가를 갖고 나온 것이다:
 
Copyright (C) 1985, 1996, 2001-2020 Free Software Foundation, Inc.
 
이 문서는 이 저작권 공고와 허용 공고가 그대로 유지되고, 배포자가
수취자에게 이 공고에 따라 허용되는 것처럼 또 재분배하는 것을
허용하는 조건으로, 어떤 매체로든지 받은 그대로를 복사하거나
복사본이 다른 이에게 배포되는 것이 허용된다.
 
이 문서의 수정판이나 수정판의 일부분은 위의 조건과 함께, 또한 누가
마지막으로 변경했는지를 눈에 띄게 나타낸다는 조건으로 배포되는 것이
허용된다.
 
이맥스 자체를 복사하는 것은 좀 더 복잡하지만 같은 내용입니다.
COPYING이라는 파일을 읽고 난 후에 GNU 이맥스의 복사본을 친구에게
주십시오. 자유 소프트웨어를 쓰고 만들고 공유함으로써 소프트웨어
방해를 ("소유권") 근절하는데 도웁시다.
 
;;; Local Variables:
;;; coding: utf-8
;;; End: