GNUEmacsManual:3: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(GNU Emacs 3장 내용 추가)
 
(bold 표기 변경)
 
Line 8: Line 8:
===Emacs 시작하기===
===Emacs 시작하기===


Emacs 를 호출하는 일반적인 방법은 셸 명령어 '''emacs''' 를 이용하는 방법이다. X Window System 에서 실행 중인 터미널 창으로부터 '''emacs &;''' 를 이런 방식으로 이용해 배경에 Emacs를 실행할 수 있는데, Emacs는 터미널 창을 연결시키지 않을 것이므로 이를 이용해 다른 셸 명령어를 실행할 수도 있다.
Emacs 를 호출하는 일반적인 방법은 셸 명령어 {{RoundTitleNavy|emacs}} 를 이용하는 방법이다. X Window System 에서 실행 중인 터미널 창으로부터 {{RoundTitleNavy|emacs &;}} 를 이런 방식으로 이용해 배경에 Emacs를 실행할 수 있는데, Emacs는 터미널 창을 연결시키지 않을 것이므로 이를 이용해 다른 셸 명령어를 실행할 수도 있다.




Emacs가 시작하면 초기 프레임은 ' '''*GNU Emacs*''' '라는 이름의 특수 버퍼를 표시한다. 이 시작 화면은 Emacs에 관한 정보와 초보 사용자에게 유용한 공통 과제의 링크를 포함할 것이다. 예를 들어, ' '''Emacs Tutorial''' ' 링크를 활성화하면 {{key press|C-h t}} (help-with-tutorial)명령어와 마찬가지로 Emacs 사용 지침 프로그램을 연다. 링크를 활성화하려면 포인트를 링크 위로 이동시키고 '''RET''' 라고 입력하거나 mouse-1 을 이용해 클릭한다(왼쪽 마우스 버튼).
Emacs가 시작하면 초기 프레임은 {{RoundTitleNavy|'*GNU Emacs*'}}라는 이름의 특수 버퍼를 표시한다. 이 시작 화면은 Emacs에 관한 정보와 초보 사용자에게 유용한 공통 과제의 링크를 포함할 것이다. 예를 들어, {{RoundTitleNavy|'Emacs Tutorial'}} 링크를 활성화하면 {{key press|C-h t}} (help-with-tutorial)명령어와 마찬가지로 Emacs 사용 지침 프로그램을 연다. 링크를 활성화하려면 포인트를 링크 위로 이동시키고 {{RoundTitleNavy|RET}} 라고 입력하거나 mouse-1 을 이용해 클릭한다(왼쪽 마우스 버튼).




명령행 인자를 이용하면 Emacs 가 시작하자마자 하나 이상의 파일을 방문하도록 Emacs 에게 알려줄 수 있다. 가령 '''emacs foo.txt''' ' '''foo.txt''' ' 파일의 내용을 표시하는 버퍼로 Emacs 를 시작한다. 이 기능은 주로 짧은 편집 세션용으로 셸로부터 실행되도록 고안된 다른 편집기와 호환성을 위해 존재한다. 이러한 방식으로 Emacs를 호출하면 초기 프레임은 두 개의 창으로 나뉘는데, 하나는 명시된 파일을 표시하고 나머지 하나는 시작 화면을 표시한다. 관련 내용은 156 페이지의 17장 [창]을 참고한다.
명령행 인자를 이용하면 Emacs 가 시작하자마자 하나 이상의 파일을 방문하도록 Emacs 에게 알려줄 수 있다. 가령 {{RoundTitleNavy|emacs foo.txt}} {{RoundTitleNavy|'foo.txt'}} 파일의 내용을 표시하는 버퍼로 Emacs 를 시작한다. 이 기능은 주로 짧은 편집 세션용으로 셸로부터 실행되도록 고안된 다른 편집기와 호환성을 위해 존재한다. 이러한 방식으로 Emacs를 호출하면 초기 프레임은 두 개의 창으로 나뉘는데, 하나는 명시된 파일을 표시하고 나머지 하나는 시작 화면을 표시한다. 관련 내용은 156 페이지의 17장 [창]을 참고한다.




Line 20: Line 20:




Emacs가 실행되는 동안 다른 프로그램에서 파일을 편집하기 위해서는 기존 Emacs 세션에서 파일을 열기 위해 '''emacsclient''' 헬퍼 프로그램을 사용할 수 있다. 393 페이지의 31.5절 [Emacs 서버]를 참고한다.
Emacs가 실행되는 동안 다른 프로그램에서 파일을 편집하기 위해서는 기존 Emacs 세션에서 파일을 열기 위해 {{RoundTitleNavy|emacsclient}} 헬퍼 프로그램을 사용할 수 있다. 393 페이지의 31.5절 [Emacs 서버]를 참고한다.




Line 26: Line 26:




'''inhibit-startup-screen''' 변수가 '''nil''' 이 아닌 경우 Emacs 는 시작 화면을 표시하지 않는다. 이 때 하나 이상의 파일이 명령행에 명시될 경우 Emacs는 단순히 그러한 파일을 표시하고, 그 외의 경우 Emacs Lisp 표현식을 상호작용적으로 평가하는 데에 사용할 수 있는 '''*scratch*''' 라는 버퍼를 표시한다. 279 페이지의 24.10절 [Lisp 상호작용]을 참고한다. 맞춤화 기능(412 페이지의 33.1절 [간편한 맞춤화] 참고)을 이용하거나 초기화 파일을 편집하여 (437 페이지의 33.4절 [Init 파일] 참고) '''inhibit-startup-screen''' 변수를 설정할 수 있다.1
{{RoundTitleNavy|inhibit-startup-screen}} 변수가 {{RoundTitleNavy|nil}} 이 아닌 경우 Emacs 는 시작 화면을 표시하지 않는다. 이 때 하나 이상의 파일이 명령행에 명시될 경우 Emacs는 단순히 그러한 파일을 표시하고, 그 외의 경우 Emacs Lisp 표현식을 상호작용적으로 평가하는 데에 사용할 수 있는 {{RoundTitleNavy|*scratch*}} 라는 버퍼를 표시한다. 279 페이지의 24.10절 [Lisp 상호작용]을 참고한다. 맞춤화 기능(412 페이지의 33.1절 [간편한 맞춤화] 참고)을 이용하거나 초기화 파일을 편집하여 (437 페이지의 33.4절 [Init 파일] 참고) {{RoundTitleNavy|inhibit-startup-screen}} 변수를 설정할 수 있다.1




'''initial-buffer-choice''' 변수를 파일 또는 디렉터리를 명명하는 문자열로 설정함으로써 Emacs가 시작 시 파일 또는 디렉터리를 강제로 표시하도록 만들 수도 있다. '''initial-buffer-choice''' 값은 이후 표시되는 버퍼를 리턴해야 하는 함수(인자가 없는)가 될 수도 있다. '''initial-buffer-choice''' '''nil''' 이 아닌데 사용자가 명령행에 어떤 파일이든 명시할 경우 Emacs는 그 파일들을 방문할 것이지만 처음에 표시하지는 않는다.
{{RoundTitleNavy|initial-buffer-choice}} 변수를 파일 또는 디렉터리를 명명하는 문자열로 설정함으로써 Emacs가 시작 시 파일 또는 디렉터리를 강제로 표시하도록 만들 수도 있다. {{RoundTitleNavy|initial-buffer-choice}} 값은 이후 표시되는 버퍼를 리턴해야 하는 함수(인자가 없는)가 될 수도 있다. {{RoundTitleNavy|initial-buffer-choice}} {{RoundTitleNavy|nil}} 이 아닌데 사용자가 명령행에 어떤 파일이든 명시할 경우 Emacs는 그 파일들을 방문할 것이지만 처음에 표시하지는 않는다.




Line 36: Line 36:


:{{key press|C-x C-c}}    Emacs를 종료시켜라 (save-buffers-kill-terminal).
:{{key press|C-x C-c}}    Emacs를 종료시켜라 (save-buffers-kill-terminal).
:{{key press|C-z}} 텍스트 터미널 상에서 Emacs를 연기시켜라; 그래픽 디스플레이에서는 선택된 프레임('''suspend-emacs''')을 "최소화"하라.
:{{key press|C-z}} 텍스트 터미널 상에서 Emacs를 연기시켜라; 그래픽 디스플레이에서는 선택된 프레임({{RoundTitleNavy|suspend-emacs}})을 "최소화"하라.


Emacs를 종료(kill)시킨다는 것은 Emacs 프로그램을 종료시킴을 의미한다. 이를 위해선 {{key press|C-x C-c}}('''save-buffers-kill-terminal''')를 입력한다. 두 문자 키 시퀀스 덕분에 실수로 입력할 가능성이 줄어든다. 모두 저장하지 않으면 저장되지 않은 변경내용은 모두 손실될 것이기 때문에 확인을 요청할 것이다. Emacs는 어떠한 하위프로세스든 실행 중일 경우 확인을 요청하는데, Emacs를 종료하면 하위프로세스도 모두 종료되기 때문이다(383 페이지의 31.4절 [셸] 참고).  
Emacs를 종료(kill)시킨다는 것은 Emacs 프로그램을 종료시킴을 의미한다. 이를 위해선 {{key press|C-x C-c}}({{RoundTitleNavy|save-buffers-kill-terminal}})를 입력한다. 두 문자 키 시퀀스 덕분에 실수로 입력할 가능성이 줄어든다. 모두 저장하지 않으면 저장되지 않은 변경내용은 모두 손실될 것이기 때문에 확인을 요청할 것이다. Emacs는 어떠한 하위프로세스든 실행 중일 경우 확인을 요청하는데, Emacs를 종료하면 하위프로세스도 모두 종료되기 때문이다(383 페이지의 31.4절 [셸] 참고).  




Line 47: Line 47:




'''confirm-kill-emacs''' 변수의 값이 '''nil''' 이 아닐 경우 {{key press|C-x C-c}} 는 그 값이 조건자(predicate) 함수라고 가정하여 그 함수를 호출한다. 함수 호출의 결과가 '''nil''' 이 아니면 세션은 종료되고, 그 외의 경우 Emacs는 계속 실행된다. '''confirm-kill-emacs''' 의 값을 편리하게 사용하는 한 가지 함수로 '''yes-or-no-p''' 함수를 들 수 있다. '''confirm-kill-emacs''' 의 기본값은 '''nil''' 이다.
{{RoundTitleNavy|confirm-kill-emacs}} 변수의 값이 {{RoundTitleNavy|nil}} 이 아닐 경우 {{key press|C-x C-c}} 는 그 값이 조건자(predicate) 함수라고 가정하여 그 함수를 호출한다. 함수 호출의 결과가 {{RoundTitleNavy|nil}} 이 아니면 세션은 종료되고, 그 외의 경우 Emacs는 계속 실행된다. {{RoundTitleNavy|confirm-kill-emacs}} 의 값을 편리하게 사용하는 한 가지 함수로 {{RoundTitleNavy|yes-or-no-p}} 함수를 들 수 있다. {{RoundTitleNavy|confirm-kill-emacs}} 의 기본값은 {{RoundTitleNavy|nil}} 이다.




Line 53: Line 53:




{{key press|C-z}} 는 '''suspend-frame''' 이라는 명령어를 실행한다. 그래픽 디스플레이에서 이 명령어는 선택된 Emacs 프레임을 최소화(또는 아이콘화)하여 이후에 다시 가져올 수 있도록 숨긴다(정확히 어떻게 숨기는지는 창 시스템에 따라 좌우된다). 텍스트 터미널에서 {{key press|C-z}} 명령어는 Emacs를 연기시켜 프로그램을 임시로 중단시키고 제어를 부모 프로세스(주로 셸)로 리턴하는데, 대부분의 셸에서는 셸 명령어 '''%emacs''' 로 연기한 후에 Emacs를 재개할 수 있다.  
{{key press|C-z}} 는 {{RoundTitleNavy|suspend-frame}} 이라는 명령어를 실행한다. 그래픽 디스플레이에서 이 명령어는 선택된 Emacs 프레임을 최소화(또는 아이콘화)하여 이후에 다시 가져올 수 있도록 숨긴다(정확히 어떻게 숨기는지는 창 시스템에 따라 좌우된다). 텍스트 터미널에서 {{key press|C-z}} 명령어는 Emacs를 연기시켜 프로그램을 임시로 중단시키고 제어를 부모 프로세스(주로 셸)로 리턴하는데, 대부분의 셸에서는 셸 명령어 {{RoundTitleNavy|%emacs}} 로 연기한 후에 Emacs를 재개할 수 있다.  





Latest revision as of 05:08, 25 March 2016

Emacs를 시작하고 끝내기

Emacs를 시작하고 끝내기

본 장에서는 Emacs를 어떻게 시작하고 끝내는지를 설명한다.


Emacs 시작하기

Emacs 를 호출하는 일반적인 방법은 셸 명령어

emacs

를 이용하는 방법이다. X Window System 에서 실행 중인 터미널 창으로부터

emacs &;

를 이런 방식으로 이용해 배경에 Emacs를 실행할 수 있는데, Emacs는 터미널 창을 연결시키지 않을 것이므로 이를 이용해 다른 셸 명령어를 실행할 수도 있다.


Emacs가 시작하면 초기 프레임은

'*GNU Emacs*'

라는 이름의 특수 버퍼를 표시한다. 이 시작 화면은 Emacs에 관한 정보와 초보 사용자에게 유용한 공통 과제의 링크를 포함할 것이다. 예를 들어,

'Emacs Tutorial'

링크를 활성화하면 C-h t (help-with-tutorial)명령어와 마찬가지로 Emacs 사용 지침 프로그램을 연다. 링크를 활성화하려면 포인트를 링크 위로 이동시키고

RET

라고 입력하거나 mouse-1 을 이용해 클릭한다(왼쪽 마우스 버튼).


명령행 인자를 이용하면 Emacs 가 시작하자마자 하나 이상의 파일을 방문하도록 Emacs 에게 알려줄 수 있다. 가령

emacs foo.txt

'foo.txt'

파일의 내용을 표시하는 버퍼로 Emacs 를 시작한다. 이 기능은 주로 짧은 편집 세션용으로 셸로부터 실행되도록 고안된 다른 편집기와 호환성을 위해 존재한다. 이러한 방식으로 Emacs를 호출하면 초기 프레임은 두 개의 창으로 나뉘는데, 하나는 명시된 파일을 표시하고 나머지 하나는 시작 화면을 표시한다. 관련 내용은 156 페이지의 17장 [창]을 참고한다.


일반적으로 파일을 편집하고 싶을 때마다 새로 Emacs 를 시작하는 것은 불필요하고 소모적이다. 이 때는 로그인 후 Emacs 를 한 번만 시작한 다음 동일한 Emacs 세션에서 모든 편집을 실행하는 것이 바람직하다. 하나 이상의 파일로 접근하는 것과 관련된 정보는 122 페이지의 15장 [파일]을 참고한다. 이러한 방식으로 Emacs를 사용할 경우 Emacs 세션은 킬 링(kill ring), 레지스터, 실행취소 히스토리, 링 데이터(ring data) 표시하기 등 더 수월한 편집을 위한 중요한 컨텍스를 축적한다. 이러한 기능은 매뉴얼 뒷부분에서 설명하겠다.


Emacs가 실행되는 동안 다른 프로그램에서 파일을 편집하기 위해서는 기존 Emacs 세션에서 파일을 열기 위해

emacsclient

헬퍼 프로그램을 사용할 수 있다. 393 페이지의 31.5절 [Emacs 서버]를 참고한다.


Emacs는 특정 Lisp 파일을 로딩하도록 혹은 어디에 초기 프레임을 놓아야 하는지 등을 알려주는 다른 명령행 인자를 수용한다. 478 페이지의 부록 C [Emacs 호출]을 참고한다.


inhibit-startup-screen

변수가

nil

이 아닌 경우 Emacs 는 시작 화면을 표시하지 않는다. 이 때 하나 이상의 파일이 명령행에 명시될 경우 Emacs는 단순히 그러한 파일을 표시하고, 그 외의 경우 Emacs Lisp 표현식을 상호작용적으로 평가하는 데에 사용할 수 있는

*scratch*

라는 버퍼를 표시한다. 279 페이지의 24.10절 [Lisp 상호작용]을 참고한다. 맞춤화 기능(412 페이지의 33.1절 [간편한 맞춤화] 참고)을 이용하거나 초기화 파일을 편집하여 (437 페이지의 33.4절 [Init 파일] 참고)

inhibit-startup-screen

변수를 설정할 수 있다.1


initial-buffer-choice

변수를 파일 또는 디렉터리를 명명하는 문자열로 설정함으로써 Emacs가 시작 시 파일 또는 디렉터리를 강제로 표시하도록 만들 수도 있다.

initial-buffer-choice

값은 이후 표시되는 버퍼를 리턴해야 하는 함수(인자가 없는)가 될 수도 있다.

initial-buffer-choice

nil

이 아닌데 사용자가 명령행에 어떤 파일이든 명시할 경우 Emacs는 그 파일들을 방문할 것이지만 처음에 표시하지는 않는다.


Emacs 끝내기

C-x C-c Emacs를 종료시켜라 (save-buffers-kill-terminal).
C-z 텍스트 터미널 상에서 Emacs를 연기시켜라; 그래픽 디스플레이에서는 선택된 프레임(
suspend-emacs
)을 "최소화"하라.

Emacs를 종료(kill)시킨다는 것은 Emacs 프로그램을 종료시킴을 의미한다. 이를 위해선 C-x C-c(

save-buffers-kill-terminal

)를 입력한다. 두 문자 키 시퀀스 덕분에 실수로 입력할 가능성이 줄어든다. 모두 저장하지 않으면 저장되지 않은 변경내용은 모두 손실될 것이기 때문에 확인을 요청할 것이다. Emacs는 어떠한 하위프로세스든 실행 중일 경우 확인을 요청하는데, Emacs를 종료하면 하위프로세스도 모두 종료되기 때문이다(383 페이지의 31.4절 [셸] 참고).


C-x C-c 는 특히 사용자가 Emacs를 서버로 사용 시 행동한다. "클라이언트 프레임"으로부터 타이핑할 경우 클라이언트 연결을 닫는다. 관련 내용은 393 페이지의 31.5절 [Emacs 서버]를 참고한다.


Emacs는 가령 사용자가 당시에 방문 중이던 파일처럼 사용자가 종료하면 특정 세션 정보를 마음대로 기록할 수 있다. 이러한 정보는 사용자가 Emacs를 다음에 시작하면 이용할 수 있다. 403 페이지의 31.9절 [Emacs 세션 저장하기]를 참고한다.


confirm-kill-emacs

변수의 값이

nil

이 아닐 경우 C-x C-c 는 그 값이 조건자(predicate) 함수라고 가정하여 그 함수를 호출한다. 함수 호출의 결과가

nil

이 아니면 세션은 종료되고, 그 외의 경우 Emacs는 계속 실행된다.

confirm-kill-emacs

의 값을 편리하게 사용하는 한 가지 함수로

yes-or-no-p

함수를 들 수 있다.

confirm-kill-emacs

의 기본값은

nil

이다.


저장과 관련해 사용자에게 입력값을 묻지 않고 Emacs를 종료하기 위해서는 M-x kill-emacs 라고 입력한다.


C-z

suspend-frame

이라는 명령어를 실행한다. 그래픽 디스플레이에서 이 명령어는 선택된 Emacs 프레임을 최소화(또는 아이콘화)하여 이후에 다시 가져올 수 있도록 숨긴다(정확히 어떻게 숨기는지는 창 시스템에 따라 좌우된다). 텍스트 터미널에서 C-z 명령어는 Emacs를 연기시켜 프로그램을 임시로 중단시키고 제어를 부모 프로세스(주로 셸)로 리턴하는데, 대부분의 셸에서는 셸 명령어

%emacs

로 연기한 후에 Emacs를 재개할 수 있다.


텍스트 터미널은 주로 사용자가 실행 중인 프로그램을 종료하거나 연기하라는 의미를 가진 특정한 특수 문자에 주의를 기울인다. Emacs에 있는 동안 이 터미널 기능은 꺼져 있다. Emacs 에서 키로서 C-zC-x C-c 의 의미는 여러 운영체제에서 프로그램을 중단 또는 종료할 때 사용하는 문자인 C-z 와 C-c 의 사용에서 영감을 받았지만, 운영체제와 가진 유일한 관계에 해당한다. 이 키는 사용자 마음대로 어떤 명령어든 실행하도록 맞춤화할 수 있다(429 페이지의 33.3.1절 [키맵] 참고).



Notes