GNUEmacsManual:C
Emacs 호출에 사용하는 명령행 인자(Appendix C Command Line Arguments for Emacs Invocation)
Emacs는 Emacs를 호출 시 다양한 동작을 요청하기 위한 명령행 인자를 지원한다. 이러한 인자들은 다른 에디터들과 호환 및 정교한 활동을 목적으로 한다. 단, 일반 편집에는 사용하지 않을 것을 권한다(명령행으로부터 기존 Emacs 작업으로 접근하는 방법은 393 페이지의 31.5절 [Emacs 서버(Emacs Server)]를 참고한다.
'-' 및 '+linenum' 으로 시작하는 인자는 옵션(options)이다. 그 외 모든 인자는 방문할 파일을 명시한다. Emacs는 시작 시 명시된 파일을 방문한다. 명령행에서 마지막으로 명시된 파일이 현재 버퍼가 되고, 나머지 파일은 다른 버퍼에서 방문한다. 대부분의 프로그램과 마찬가지로 특수 인자 '--' 는 잇따른 인자들이 모두 '-' 로 시작하다 하더라도 옵션이 아니라 파일명에 해당함을 의미한다.
Emacs 명령어 옵션은 Emacs 가 사용하는 X 창의 크기와 위치, 색상 등 많은 사항을 명시할 수 있다. 몇몇 옵션은 배치(batch) 모드에서 파일에 대해 Lisp 함수의 실행 등 고급 사용을 지원한다. 이번 장에서는 이용 가능한 옵션을 용도별로 정리하여 설명하고자 한다.
옵션을 작성하는 방법에는 두 가지가 있는데, 짧은 형태는 하나의 '-' 로 시작하고, 긴 형태는 '--' 로 시작한다. 예를 들어 '-d' 는 짧은 형태이고 '--display' 는 그에 상응하는 긴 형태이다.
'--' 로 된 긴 형태는 기억하기 쉽지만 더 많이 입력해야 한다. 하지만 전체 옵션 이름을 적을 필요는 없으며, 약어만 분명하게 입력하여도 충분하다. 긴 옵션이 인자를 취할 때는 공백이나 등부호를 이용해 옵션명과 인자를 구분할 수 있다. 따라서 '
' 이라고 적거나 '
' 라고 적을 수 있다. 등부호가 관계를 더 분명하게 만들어주기 때문에 등부호의 사용을 권하며, 아래 소개된 테이블은 항상 등부호를 표시한다.
대부분 옵션은 Emacs 를 어떻게 시작하는지 혹은 Emacs 세션에 대한 매개변수를 어떻게 설정하는지를 명시한다. 이것을 초기 옵션(initial options)이라고 부른다. 일부 옵션들은 해야 할 일, 즉 라이브러리를 로딩하거나 Lisp 함수를 호출하는 등의 일을 명시한다. 이것을 동작 옵션(action options)이라고 부른다. 이러한 옵션들과 파일명을 동작 인자(action arguments)라고 부른다. 동작 인자는
변수에 문자열로 된 목록으로 보관된다. (사실 Emacs가 시작되면
는 명령행으로부터 전달된 인자를 모두 포함하고, 초기화 중에 초기 인자들이 처리될 때 이 목록에서 제거되어 동작 인자만 남는다).
동작 인자(Action Arguments)
동작 인자의 테이블은 아래와 같다.
'
' '
' '
' '
'
을 이용해 file 을 방문한다. 123 페이지의 15.2절 [방문하기(Visiting)]를 참고한다.</ br>Emacs가 시작되면 하나의 창에는 시작 버퍼를 표시하고, 또 다른 창에는 파일(file)을 방문하는 버퍼를 표시한다(156 페이지의 17장 [창(Windows)] 참고). 하나 이상의 파일 인자를 제공하면 표시되는 파일은 명령행에 명시된 마지막 파일이고, 나머지 파일들의 경우 방문하더라도 그 버퍼들은 표시되지 않는다.</ br>시작(startup) 버퍼가 꺼지면 (14 페이지의 3.1절 [Emacs 들어가기(Entering Emacs)] 참고) 하나의 파일 인자가 제공될 경우 단일 창에서 파일을 방문하고, 두 개의 인자가 제공될 경우 Emacs는 두 개의 창에서 파일을 표시하며, 세 개 이상의 인자를 제공할 경우 Emacs는 명시된 마지막 파일을 하나의 창에 표시하고 또 다른 창에 Buffer Menu를 표시할 것이다(151 페이지의 16.5절 [다양한 버퍼(Several Buffers)] 참고). 여기에서 Buffer Menu 의 사용을 금하려면
변수를
로 변경하라.
'
'
을 이용해 file 을 방문하여 라인 번호 linenum 로 이동하라.
'
'
을 이용해 file 을 방문하여 라인 번호 linenum 로 이동한 후 포인트를 열 번호 columnnum 에 놓아라.
'
' '
'
함수를 이용해 file 이라는 Lisp 라이브러리를 로딩한다. file 이 절대 파일명이 아닐 경우 Emacs는 현재 디렉터리에서 먼저 검색한 후
에 열거된 디렉터리를 검색한다(276 페이지의 24.8절 [Lisp 라이브러리(Lisp Libraries)] 참고).</ br>경고: 이전 명령행 인자가 파일을 방문한 적이 있다면 현재 디렉터리는 마지막으로 방문한 파일의 디렉터리다.
'
' '
'
변수 앞에 디렉터리 dir를 추가한다(prepend). 여러 개의 '
' 옵션을 명시할 경우 Emacs는 상대 명령(relative order)을 유지하는데, 가령 '
'를 사용할 경우 ("
" "
" ...) 형태로 된
의 결과를 얻는다. dir가 ':'로 시작할 경우 Emacs는 ':'를 제거한 나머지를 load-path의 (앞이 아니라) 뒤에 추가한다. (MS Windows에서는 '
' 대신 '
'를 사용하므로
의 값을 사용하라.)
'
' '
'
Lisp 함수 function 을 호출한다. 대화형 함수(interactive function; 명령어)인 경우 사용자가 키 시퀀스로 함수를 호출한 것처럼 대화형으로 인자를 읽을 것이다. 그 외의 경우에는 인자 없이 함수만 호출한다.
'
' '
'
Lisp 표현식 expression 을 평가한다.
'
' 이 명령행 인자가 처리될 때 현재 버퍼로 file 의 내용을 삽입한다. 보통은
버퍼에 해당하지만 (279 페이지의 24.10절 [Lisp 상호작용(Lisp Interaction)] 참고) 명령행 인자에서 이전 인자들이 파일을 방문하거나 버퍼를 전환할 경우
외에 다른 버퍼가 될 수 있다. 명령행 인자의 효과는 M-x insert-file 의 효과와 동일하다(140 페이지의 15.10절 [다양한 파일 연산(Misc File Ops)] 참고).
'
' 확인을 요청하지 않고 Emacs를 끝낸다.
'
' 이용 가능한 옵션을 모두 열거하는 사용 메시지를 출력하고 성공적으로 끝낸다.
'
' Emacs 버전을 출력하고 성공적으로 종료한다.
초기 옵션(Initial Options)
초기 옵션은 Emacs 세션에 대한 매개변수를 명시한다. 이번 절에서는 일반적인 초기 옵션을 설명하고, X Windows System 과 구체적으로 관련된 다른 옵션 몇 가지를 여러 절에 걸쳐 소개하겠다.
일부 초기 옵션들은 초기화 파일의 로딩에 영향을 미친다. 주로 Emacs 는 먼저
을 로딩한 후 사용자의 초기화 파일을 로딩하고, 마지막으로 기본 초기화 파일인
의 로딩을 시도한다(437 페이지의 33.4절 [Init 파일(Init File)] 참고). 특정 옵션들은 이러한 파일 일부의 로딩을 금지하거나 그러한 파일 대신 다른 파일들로 대체한다.
'
' '
'
다른 일을 수행하기 전에 directory 로 변경한다. 이것은 X에서 세션 관리에 의해 사용되므로 Emacs는 이전에 중단된 디렉터리에서 시작할 수 있다. 이로 인해 데스크톱의 저장 및 복구가 수월해진다.
'
' '
' 터미널 입출력 장치로 device 를 사용한다. 이 옵션은 '
' 을 의미한다.
'
' '
'
X Window System 을 사용하고 display라는 디스플레이를 이용해 초기 Emacs 프레임을 연다. 상세한 내용은 C.5절 [디스플레이 X(Display X)]를 참고한다.
'
' '
'
환경 변수가 설정되었는데도 값을 무시하지 않도록 윈도우 시스템과 직접 통신을 하지 말라. 이는 모든 입출력에 Emacs가 시작된 터미널을 Emacs가 사용함을 의미한다.
'
' '
'
배치 모드(batch mode)에서 Emacs를 실행한다. 배치 모드는 셸 스크립트, makefile 등에서 Emacs Lisp로 작성된 프로그램을 실행할 때 사용된다. Lisp 프로그램을 호출하려면 '
' 옵션과 함께 '
', '
', '
' 중 하나를 사용한다(478 페이지의 C.1절 [동작 인자(Action Arguments)] 참고). 482 페이지의 C.3절 [명령어 예제(Command Example)]에서 예를 참고한다.</ br>배치 모드에서 Emacs 는 편집 중인 텍스트를 표시하지 않고, C-z 나 C-c 와 같은 표준 터미널 인터럽트 문자는 평소와 같은 효과를 발휘한다. 보통 에코 영역에 메시지를 출력하는 Emacs 함수들은 표준 출력 스트림(
) 또는 표준 오류 스트림(
)을 대신 출력할 것이다. (좀 더 정확히 말해
,
,
와 같은 함수들은
로 출력하는 반면
와
는
로 출력할 것이다.) 미니버퍼로부터 키보드 입력을 읽는 함수들은 터미널의 표준 입력 스트림(stdin)으로부터 대신 입력값을 취한다.</ br>'
' 는 '
'를 의미함에도 불구하고(초기화 파일을 로딩하지 말라)
이 로딩된다. 또한 모든 명령어 옵션을 처리한 후에 Emacs 를 끝내기도 한다. 뿐만 아니라 자동 저장을 직접 요청한 버퍼만 제외한 모든 버퍼에서 자동 저장을 끄고, 파일을 저장할 때는 따로 요청하지 않는 한
시스템 호출을 생략한다.
'
'
'
' 처럼 배치 모드에서 Emacs를 실행한 다음 Lisp 코드를 읽어 file 에서 실행한다. </ br>이 옵션은 보통 Emacs를 실행하는 실행 가능 스크립트 파일에서 사용된다. 첫 라인에서 다음과 같은 텍스트로 시작할 수 있다.
#!/usr/bin/emacs --script
이는 '
' 로 Emacs 를 호출하고, 스크립트 파일명을 file 로 제공한다. Emacs Lisp 는 이 첫 번째 라인의 '#!'를 주석 구분 문자로 취급한다.
'
' '
'
어떤 초기화 파일도 로딩하지 않는다(437 페이지의 33.4절 [Init 파일(Init File)] 참고). 이 옵션으로 Emacs를 호출하면 Customization 기능이 옵션의 저장을 허용하지 않을 것이다(412 페이지의 33.1절 [쉬운 맞춤화(Easy Customization)] 참고). 이 옵션은
의 로딩을 비활성화하지 않는다.
'
'
을 로딩하지 않는다(437 페이지의 33.4절 [Init 파일(Init File)] 참고). '
' 옵션도 이와 마찬가지로 작동하지만 '
' 를 비롯한 다른 옵션들은 그렇지 않다.
'
'
에
디렉터리를 포함시키지 않는다(437 페이지의 33.4절 [Init 파일(Init File)] 참고). '
' 옵션도 이와 마찬가지로 작동한다.
'
'
시작 화면을 표시하지 않는다. 초기화 파일에서
변수를
이 아닌 값으로 설정하여 이 효과를 얻을 수 있다(14 페이지의 3.1절 [Emacs 들어가기(Entering Emacs)] 참고).
'
' '
'
최소한의 맞춤화로 Emacs를 시작한다. 이는 '
', '
', '
', '
' 를 한 번에 사용하는 것과 동일하다.
를
로 설정하면 Emacs 가 X 자원을 처리를 중지시키기도 한다(493 페이지의 D.1절 [자원(Resources)] 참고).
'
' '
'
Emacs 를 데몬(daemon)으로서 시작한다. Emacs가 시작되면 Emacs 서버를 시작하고, 어떠한 프레임도 열지 않고 터미널의 연결을 해제할 것이다. 이제 사용자는
명령어를 이용해 Emacs로 연결하여 편집할 수 있다. 데몬으로 Emacs를 사용하는 것과 관련된 정보는 393 페이지의 31.5절 [Emacs 서버(Emacs Server)]를 참고한다.
'
'
emacs 를 데몬으로 background 에서 시작하고, SERVER-NAME 을 서버명으로 사용한다.
'
'
저장된 데스크톱을 재로딩하지 않는다. 403 페이지의 31.9절 [Emacs 세션 저장하기(Saving Emacs Sessions)] 참고).
'
' '
'
본인의 초기화 파일 대신 user 의 초기화 파일을 로딩한다[1].
'
'
Init 파일에서 오류에 대한 Emacs Lisp 디버거를 활성화한다. The GNU Emacs Lisp Reference Manual 의 "Entering the Debugger on an Error"절을 참고한다.
명령어 인자 예제(Command Argument Example)
지금부터는 인자 및 옵션과 함께 Emacs 를 사용하는 예를 소개하겠다. 우선 로딩을 하면 현재 버퍼에서 유용한 연산을 실행하고 C 프로그램으로 예상되는
라는 Lisp 프로그램 파일을 갖고 있다고 가정한다.
emacs --batch foo.c -l hack-c -f save-buffer >& log
이는
를 방문하고
을 로딩하여(방문한 파일에서 내용을 변경할 것이다)
를 저장한 후(
는
가 바인딩된 함수임을 명심한다) 셸로 다시 돌아올 것이라고 ('
'로 인해) 나타낸다. '
' 는 log 로 문제를 전향(redirect)하는 데에 문제가 발생하지 않도록 보장하는데, Emacs 는 그것이 작업할 디스플레이 터미널 시스템이 있을 것이라고 추측하지 않기 때문이다.
환경 변수(Environment Variables)
환경(environment)은 운영체제 기능으로, 이름과 값을 가진 변수의 집합체로 구성된다. 각 변수는 환경 변수라 부르고, 환경 변수명은 대, 소문자에 민감하며, 대문자만 사용하는 것이 일반적이다. 값은 모두 텍스트 문자열로 되어 있다.
환경을 유용하게 만드는 것은 부모 프로세스로부터 하위프로세스로 환경이 자동으로 상속된다는 사실 때문이다. 이는 사용자가 로긴 셸(login shell)에 환경 변수를 설정할 수 있고, 사용자가 실행하는 모든 프로그램은 (Emacs를 포함해) 자동으로 그것을 보게 될 것을 의미한다. Emacs의 하위프로세스(예: 셸, 컴파일러, 버전 관리 프로그램) 역시 Emacs로부터 환경을 상속받는다.
Emacs 내부에서 M-x getenv 명령어를 사용하면 환경 변수명을 읽고 그 값을 에코 영역에 출력한다. M-x setenv는 Emacs 환경에서 변수를 설정하고, C-u M-x setenv는 변수를 제거한다. (값에서 '$'로 환경 변수를 대체하는 작업은 파일명에서와 마찬가지로 실행되는데, 122 페이지의 [$가 포함된 파일명(File Names with $)]을 참고한다.)
변수는 Emacs에서 상속된 초기 환경을 보관한다.
Emacs 외부에서 환경 변수를 설정하는 방법은 운영체제에 따라, 특히 사용 중인 셸에 따라 좌우된다. 가령
환경 변수를 Bash 를 이용해 '
' 로 설정하는 방법은 다음과 같다.
export ORGANIZATION="not very much"
그리고 csh 또는 tcsh에서 실행하는 방법은 다음과 같다.
setenv ORGANIZATION "not very much"
Emacs 가 X Windows System 을 사용할 때는 X 를 관리하는 다양한 환경 변수들이 Emacs 에도 효과를 발휘한다. 상세한 정보는 X 문서를 참고하라.
일반 변수(General Variables)
Emacs 에서 특별한 의미를 지닌 환경 변수의 목록을 알파벳순으로 소개하겠다. 이러한 변수들 중 대부분은 일부 다른 프로그램들도 사용한다. Emacs 는 이러한 환경 변수의 설정을 필요로 하지는 않지만 설정되어 있을 경우 그 값을 사용한다.
사용자가 상대적 디렉터리명을 명시할 경우 해당 디렉터리를 검색하는
명령어에 의해 사용된다.
D-Bus 를 이용해 Emacs 를 컴파일할 때 D-Bus 에 의해 사용된다. 보통은 변경할 필요가 없다. '
'와 같은 더미 주소로 설정 시 D-Bus 세션 버스가 실행되고 있지 않을 때 자동 시작 기능과 D-Bus 세션으로 연결을 금한다.
Emacs에 딸려 오는 아키텍처 독립적인(architecture-independent) 파일에 대한 디렉터리.
변수를 초기화하는 데에 사용된다.
문서의 문자열 파일에 대한 환경 변수 Directory 인 #vindex EMACSDOC로, Lisp 변수
를 초기화하는 데에 사용된다.
Emacs Lisp 파일을 검색하기 위한 콜론으로 구분된 디렉터리[2] 목록인 환경 변수 #vindex EMACSLOADPATH. 설정 시
변수의 초기값을 수정한다(276 페이지의 24.8절 [Lisp 라이브러리(Lisp Libraries)] 참고). 빈 요소는
의 기본값을 의미하고, '
'를 사용하면 기본
의 앞에
를 추가한다. 목록 중간에 빈 요소를 명시하려면 한 행에 2개의 콜론을 사용한다(예: '
').
실행 파일을 검색하기 위한 콜론으로 구분된 디렉터리 목록. 설정 시 Emacs 는
변수를 초기화할 때 이 목록과
(아래 참고)를 사용한다(383 페이지의 31.4절 [셸(Shell)] 참고).
Emacs 메일 인터페이스를 발송 메시지의 '
' 헤더에 넣는
라는 Lisp 변수를 초기화하는 데에 사용되는 사용자의 이메일 주소(351 페이지의 29.2절 [메일 헤더(Mail Headers)] 참고).
환경 변수를 오버라이드하기 위한
에 사용된다(384 페이지의 31.4.2절 [대화형 셸(Interactive Shell)] 참고).
두 로긴 사이에 셸 명령어가 저장되는 파일명. Bash를 사용 시 변수의 기본값은
이고, ksh 를 사용 시에는
, 그 외의 경우
이다.
디렉터리 트리에서 사용자 파일의 위치로, 틸드 부호(
)로 시작하는 파일명의 확장에 사용된다. MS-DOS에서는 Emacs가 시작되는 디렉터리를 기본값으로 하는데 끝에서 '
' 을 제거하여 사용된다. Windows 에서
의 기본값은 사용자 프로파일 디렉터리의
하위디렉터리로(보통 username 이 사용자 본인의 이름인
에 해당한다),
파일이 발견되면 이전 버전과 호환을 위해
를 대신 사용한다.
Emacs 가 실행 중인 머신의 이름.
Info 파일의 검색을 시작할 콜론으로 구분된 디렉터리 목록.
사용자가 선호하는 로케일. 로케일에는 6개의 범주가 있는데, 정렬은
, 문자 부호화는
, 시스템 메시지는
, 화폐 포맷은
, 숫자는
, 날짜와 시간은
환경 변수에 의해 명시된다. 이 변수들 중 하나라도 설정되지 않으면
환경 변수의 값으로 범주 기본값이 설정되고,
이 설정되어 있지 않으면 '
' 로케일을 기본값으로 한다. 단,
이 명시되어 있다면 다른 모든 로케일 환경 변수의 설정을 오버라이드한다.</ br>MS-Windows 에서 Emacs 가 시작될 때
이 환경에 이미 설정되어 있지 않다면 Emacs는 시스템 전반적인 기본 언어를 기반으로 설정할 것인데, 이는 MS-Windows의 일부 버전에서는 제어판의 '
' 에서 설정할 수 있다.</ br>
범주의 값은
,
,
내의 엔트리를 상대로 매칭을 실행하여 기본 언어 환경과 코딩 시스템을 선택한다. 179 페이지의 19.2절 [언어 환경(Language Environments)]을 참고한다.
사용자의 로긴 이름.
를 참고한다.
사용자 시스템 메일 인박스의 이름.
사용자의 실제 이름.
변수의 초기화에 사용된다(351 페이지의 29.2절 [메일 헤더(Mail Headers)] 참고).
뉴스 서버 이름. mh 와 Gnus 패키지에 의해 사용된다.
사용자가 속한 조직 이름. Gnus 패키지의 포스트에서 'Organization:' 헤더의 설정에 사용된다.
실행 파일을 포함하는 콜론으로 구분된 디렉터리 목록.
변수의 초기화에 사용된다(383 페이지의 31.4절 [셸(Shell)] 참고).
설정 시 Emacs가 시작할 때 기본 디렉터리가 될 것이다.
설정 시
변수에 대한 초기값을 명시한다(351 페이지의 29.2절 [메일 헤더(Mail Headers)] 참고).
뉴스 기사가 기본적으로 저장되는 디렉터리명. Gnus 패키지에 의해 사용된다.
Emacs 내부에서 프로그램을 파싱하고 실행하는 데에 사용되는 인터프리터명.
발송 메일 서버명.
변수의 초기화에 사용된다(353 페이지의 29.4.1절 [메일 전송하기(Mail Sending)] 참고).
Emacs가 사용 중인 터미널 시스템 유형. Emacs가 배치 모드에서 실행되지 않는 이상 이 변수는 값을 설정해야 한다. MS-DOS에서 기본값은 'internal'로, 머신 고유의 디스플레이를 처리하는 내장된 터미널 에뮬레이션을 명시한다.
이 명시하는 터미널의 프로그래밍 방법을 설명하는 termcap 라이브러리 파일명.
을 기본값으로 한다.
이 환경 변수들은 임시 파일을 넣을 디렉터리를 명시하는
변수를 초기화하는 데에 사용된다(127 페이지의 15.3.2절 [백업(Backup)] 참고). Emacs 는
를 먼저 사용하려 한다. 그 값이 설정되어 있지 않으면 보통
로 돌아가는데, MS-Windows 와 MS-DOS 에서는 대신
,
,
순으로 시도한다.
현재 표준시간대, 어쩌면 서머타임 정보를 표시할지도 모른다. MS-DOS 에서 Emacs 가 시작할 때 환경에
가 설정되어 있지 않으면 Emacs 는 DOS 가 리턴하는 국가 코드에 적절한 기본값을 정의하고
를 전혀 사용하지 않는다.
사용자의 로긴 이름.
을 참고한다. MS-DOS 에서는 'root' 를 기본값으로 한다.
변수를 초기화하는 데에 사용된다(128 페이지의 15.3.2.1절 [백업 이름(Backup Names)] 참고).
다양한 변수(Miscellaneous Variables)
아래의 변수들은 특정 설정에서만 사용된다.
MS-DOS 와 MS-Windows 에서 셸에 내부적인 명령어와 배치 파일을 호출할 때 사용할 명령어 해석기 이름. MS-DOS 에서는
환경 변수에 대한 기본값을 만드는 데에 사용되기도 한다.
MS-DOS 에서 이 변수는
변수의 값을 기본값으로 한다.
MS-DOS 에서 이 변수는 내부 터미널 에뮬레이터의 동작을 로그하는 데에 사용할 파일을 명시한다. 이 기능은 버그 보고를 제출 시 유용하다.
MS-DOS 에서 이 변수는 화면 색상을 명시한다. 이 방식으로 설정하는 것이 유용한데, 그렇지 않으면 Emacs는 시작 시 일시적으로 기본 색상을 표시할 것이기 때문이다.</ br>이 변수의 값은 기본 겉모습의 전경색(첫 번째 문자)과 배경색(두 번째 문자)을 나타내는 2개 문자로 된 부호화여야 한다. 각 문자는 표준 PC 텍스트 모드(text-mode) 디스플레이에서 바람직한 색상에 해당하는 16진 코드여야 한다. 예를 들어 연한 회색 배경에서 파란색 텍스트를 얻기 위해서는 '
' 라고 명시해야 하는데, 1은 파란색 코드이고 7은 연한 회색 코드이기 때문이다.</ br>PC 에서는 주로 8 개의 배경색만 지원된다. 하지만 Emacs 는 DOS 디스플레이를 16가지 색상을 배경에 사용할 수 있는 모드로 전환하여 배경색 4비트를 모두 사용하도록 한다.
MS-Windows 에서 이 변수를 설정할 경우 Emacs 는 네트워크 라이브러리가 처음으로 필요할 때까지 기다리는 대신 시작 시 라이브러리를 로딩하여 초기화할 것이다.
MS-Windows 에서
은 Emacs 가 설치된 디렉터리의 전체 경로를 나타내는 특수 환경 변수다. Emacs 가 표준 디렉터리 구조에 설치될 경우 이 값을 자동으로 계산한다. 사용자의 설치가 비표준이지 않는 한 이 변수를 직접 설정할 필요는 없는 것이, 다른 환경 변수와 달리 이 변수는 시작 시 Emacs 에 의해 오버라이드될 것이기 때문이다.
와 같은 다른 환경 변수를 설정할 때는 절대 경로를 하드코딩하는 것보다
을 사용하는 것이 유용함을 발견할 것이다. 이는 여러 개의 Emacs 버전이 동일한 환경 변수 설정을 공유하는 것과, 환경 또는 레지스트리 설정을 변경하지 않고 Emacs 설치 디렉터리로 이동하는 것을 허용하기 때문이다.
MS-Windwos 시스템 레지스트리(The MS-Windows System Registry)
MS-Windows 에서 설치 프로그램
는
,
,
,
,
,
,
의 값을
에서 시스템 레지스트리의
섹션으로 추가한다. 이는 Windows 버전들에 걸쳐 환경 변수를 설정할 표준 위치가 존재하지 않기 때문이다. 최근 Emacs 버전에서는
를 꼭 실행할 필요가 없지만 오래된 버전에서 업그레이드 중일 경우
를 실행하면 최신 버전의 Emacs와 호환되지 않는 이전 설치의 레지스트리 엔트리를 포함하지 않도록 확보한다.
Emacs 가 시작하면 환경을 검사할뿐만 아니라 System Registry 에서 그러한 변수들, 그리고
,
,
을 확인한다.
그러한 변수들의 값을 결정하기 위해 Emacs 는 다음 절차를 거친다. 첫째, 환경을 확인한다. 변수가 발견되지 않으면 Emacs 는
에서 그 이름으로 레지스트리 키를 검색하는데, 가장 먼저 레지스트리의
섹션을 살펴보고, 발견되지 않으면
섹션을 검색한다. 그래도 값을 결정할 수 없다면 마지막으로 compiled-in 기본값이 사용된다.
위의 환경 변수 외에도 X 에서
파일에 속한 다수의 설정을
레지스트리 키로 추가할 수 있다(493 페이지의 부록 D [X 자원(X Resources)] 참고).
디스플레이명 명시하기(Specifying the Display Name)
환경 변수
는 Emacs 를 포함한 모든 X 클라이언트에게 그 창을 표시할 장소를 알려줄 수 있다. 그 값은 일반적인 상황, 즉 사용자가 X 서버를 실행하여 작업을 로컬로 실행하면 기본적으로 설정된다. 사용자가 직접 디스플레이를 명시할수도 있는데, 다른 시스템에 로긴하여 Emacs 를 실행하고자 하는데 자신의 로컬 터미널에 창이 표시되어 있을 때 이 방법이 유용할 것이다.
는 '
' 구문을 가지며, host는 X Window System 서버 머신의 호스트명이고 display 는 동일한 머신에서 사용자의 서버를 (X terminal) 다른 서버로부터 구별하기 위해 임의로 할당된 숫자이며, screen은 X 서버가 여러 개의 터미널 화면을 제어하도록 허용하는 필드를 나타낸다. 마침표와 screen 필드는 선택적이다. 이를 포함할 경우 screen은 주로 0에 해당한다.
가령 호스트가 '
' 로 명명되고 서버가 설정에 열거된 첫 번째 (또는 유일한) 서버일 경우 사용자의
는 '
' 이다.
Emacs 를 실행할 때
변수를 변경하거나 '
' 또는 '
' 옵션을 이용하여 디스플레이명을 직접 명시하는 것도 가능하다. 예를 들겠다.
emacs --display=glasperle:0 &
'{{RoundTitleNavy|-nw{{' 옵션을 이용해 X 윈도우 시스템의 사용을 금지할 수 있다. 이후 Emacs는 디스플레이에 대한 텍스트 터미널을 제어한다. 480 페이지의 C.2절 [초기 옵션(Initial Options)]을 참고한다.
때로는 보안 처리(security arrangements)로 인해 원격 시스템의 프로그램이 당신의 로컬 시스템에 표시되는 것을 금하기도 한다. 이런 경우 Emacs를 실행하면 아래와 같은 메시지가 생성된다.
Xlib: connection to "glasperle:0.0" refused by server
원격 머신으로부터 접근 권한을 부여하도록 로컬 시스템에서
명령어를 이용하면 이 문제를 해결할 수 있다.
폰트 명세 옵션(Font Specification Options)
'
'(또는 '
' 과 동의어인 '
' 옵션) 명령행 옵션을 이용하면 기본 폰트를 명시할 수 있다.
'
' '
'
font를 기본 폰트로 사용한다.
명령행에서 폰트명을 Emacs 로 전달할 때 셸이 특별하게 처리하는 문자(예: 공백)를 포함할 경우 인용 부호에 넣음으로써 문자를 "인용(quote)"할 필요가 있는데, 아래를 예로 들겠다.
emacs -fn "DejaVu Sans Mono-12"
기본 폰트를 명시하는 다른 방법과 폰트명에 관한 상세한 정보는 168 페이지의 18.8절 [폰트(Fonts)]를 참고한다.
창 색상 옵션(Window Color Options)
다음의 명령행 옵션을 이용해 Emacs 디스플레이의 다양한 부분에 사용할 색상을 명시할 수 있다. 색상은 색상명이나 RGB triplets 를 이용해 명시 가능하다(75 페이지의 11.9절 [색상(Colors)] 참고).
'
' '
'
default 겉모습이 명시한 색상을 오버라이드하는 전경색을 명시한다(74 페이지의 11.8절 [겉모습(Faces)] 참고).
'
' '
'
default 겉모습이 명시한 색상을 오버라이드하는 배경색을 명시한다(74 페이지의 11.8절 [겉모습(Faces)] 참고).
'
' '
'
X 창의 테두리 색상을 명시한다. Emacs를 GTK+ 지원으로 컴파일할 경우 어떠한 효과도 없다.
'
' '
'
포인트가 위치한 장소를 나타내는 Emacs 커서 색상을 명시한다.
'
' '
'
Emacs 창에 마우스가 있을 때 마우스 커서 색상을 명시한다.
'
' '
' '
'
영상의 전경색과 배경색을 반전(reverse)시킨다.
'
' Emacs 가 텍스트 터미널에서 실행될 때 색상 지원 모드(color support mode)를 설정한다. 이 옵션은 문자 터미널이 termcap 또는 termiinfo 데이터베이스에서 알리는(advertise) 지원 색상 개수를 오버라이드한다. mode 매개변수는 다음 중 하나가 될 수 있다.
- 'never'
- 'no'
- 터미널 기능이 색상 지원을 명시하더라도 색상을 사용하지 않는다.
- 'default'
- 'auto'
- --color 가 사용되지 않을 때와 동일하므로 Emacs는 시작 시 터미널이 색상을 지원하는지 감지하고, 지원할 경우 색상이 적용된 디스플레이를 켠다.
- 'always'
- 'yes'
- 'ansi8'
색상 지원을 무조건 켜고, 8개 표준 색상에 대해 ANSI escape 시퀀스가 명시한 색상 명령어를 사용한다.
- 'num' num 색상에 대한 색상 모드를 사용한다. num이 '-1'일 경우 색상 지원을 끄고('never'와 동일), 값이 0일 경우 이 터미널에 대해 기본 색상 지원을 사용하며('auto'와 동일), 그 외의 경우 num 색상에 대해 적절한 표준 모드를 사용한다. 터미널의 능력에 따라 Emacs는 num의 값으로 8, 16, 88, 256 중 하나에 해당하는 색상 모드를 켤 수 있다. num 색상을 지원하는 모드가 없을 경우 Emacs는 num이 0인 것처럼 동작하므로 가령 터미널의 기본 색상 지원 모드를 사용할 것이다.
- mode가 누락되어 있다면 ansi8을 기본값으로 한다.
예를 들어 coral 마우스 커서와 slate blue 텍스트 커서를 사용하려면 아래를 입력한다.
emacs -ms coral -cr 'slate blue' &
'
' 옵션 또는 X 자원 'reverseVideo' 를 통해 전경색과 배경색을 반전시킬 수도 있다.
'
', '
', '
' 옵션은 그래픽 디스플레이 시스템뿐만 아니라 텍스트 터미널 시스템에서도 기능한다.
창 크기와 위치에 대한 옵션(Options for Window Size and Position)
Emacs 초기 프레임의 크기와 위치를 명시하기 위한 명령행 옵션의 목록은 다음과 같다.
'
' '
'
width와 height 크기(문자 열과 라인으로 측정), xoffset과 yoffset 위치(픽셀로 측정)를 명시한다. width와 height 매개변수는 모든 프레임에 적용되고, xoffset과 yoffset은 초기 프레임에만 적용된다.
'
' '
'
너비와 높이는 화면의 너비와 높이여야 함을 명시한다. 보통은 어떠한 윈도우 관리자도 표시되지 않는다.(Emacs를 시작한 후에는 F11, toggle-frame-fullscreen 을 이용해 이 상태를 토글할 수 있다.)
'
' '
'
Emacs 프레임을 최대화해야 함을 명시한다. 주로 프레임이 윈도우 관리자 데코레이션을 갖고 있음을 의미한다. (Emacs를 시작한 후에는 M-F10, toggle-frame-maximized를 이용해 이 상태를 토글할 수 있다.)
'
' '
'
높이는 화면의 높이여야 함을 명시한다.
'
' '
'
너비는 화면의 너비여야 함을 명시한다.
'
' 옵션에서 +- 는 플러스 부호나 마이너스 부호이다. xoffset 앞의 플러스 부호는 화면 왼쪽면부터 거리를, 마이너스 부호는 오른쪽면부터 거리를 의미한다. yoffset 앞의 플러스 부포는 화면 윗면부터 거리를, 마이너스 부호는 화면 아랫면으로부터 거리를 나타낸다. xoffset과 yoffset 값 자체가 양수 또는 음수일 수 있지만 의미가 바뀌는 것은 아니며 단지 방향이 바뀔 뿐이다.
Emacs는 기하학을 해석하기 위해
과 동일한 단위를 사용한다. width 와 height 는 문자 단위로 측정되므로 큰 폰트는 작은 폰트에 비해 큰 프레임을 생성한다. (폰트 비율을 명시할 경우 Emacs 는 최대 경계(bounds) 너비를 너비 단위로 사용한다.) xoffset 과 yoffset 은 픽셀로 측정된다.
모든 필드를 기하학 명세로 명시할 필요는 없다. xoffset 과 yoffset 을 모두 누락하면 창 관리자는 아마도 사용자에게 마우스로 이동하도록 허용함으로써 Emacs 프레임을 어디에 둘 것인지 결정할 것이다. 가령 '
' 는 옆으로 두 개의 일반 너비 창에 충분한 164 개 열 너비와 55 개 라인 높이로 된 창을 명시한다.
기본 프레임 너비는 80 개 문자이고, 기본 높이는 40 개 라인이다. 너비나 높이, 또는 둘 다 생략할 수 있다. 정수로 기하학을 시작할 경우 Emacs 는 그것을 너비로 해석한다. '
' 뒤에 정수를 이용해 시작하면
는 그것을 높이로 해석한다. 따라서 '
' 은 너비를 명시하고 '
' 는 높이만 명시한다.
'
' 또는 '
'로 시작할 경우 오프셋을 소개하므로 두 크기 모두 생략됨을 의미한다. 따라서 '
' 은 xoffset 만을 명시한다. (하나의 오프셋만 제공하면 그것은 항상 xoffset 이다.) '
' 은 xoffset 과 yoffset 을 모두 명시하여 화면 하단 좌측 주위에 프레임을 위치시킨다.
X 자원 파일 내의 일부 또는 모든 필드에 대한 기본값을 명시하고 (493 페이지의 D.1절 [자원(Resources)] 참고), '
' 옵션을 이용해 선택된 필드를 오버라이드할 수 있다.
모드 라인과 에코 영역은 프레임의 마지막 2개 라인을 차지하므로 초기 텍스트 창의 높이는 기하학에 명시된 높이보다 적은 2가 된다. Emacs의 Non-X-toolkit 버전에서는 메뉴 바가 명시된 숫자의 라인 하나를 차지하기도 한다. 하지만 X toolkit 버전에서 메뉴 바는 추가적(additional)이며, 명시된 높이를 상대로 계수하지 않는다. 툴 바가 존재할 경우에도 역시 추가적이다.
메뉴 바 또는 툴 바를 켜거나 끄면 일반 텍스트에 이용할 수 있는 공간을 수정한다. 따라서 Emacs가 툴 바로 시작되고(기본값) 툴 바가 있다는 가정 하에 기하학 명세를 처리한 다음 초기화 파일이 툴 바를 비활성화하면 사용자는 자신이 요청한 것과 다른 프레임 기하학을 갖게 될 것이다. 툴 바 없이 의도한 크기를 얻고자 할 경우, X 자원을 이용해 "툴 바 없음(no tool bar)"을 명시하면 (494 페이지의 D.2절 [자원 테이블(Table of Resources)] 참고) Emacs는 명시된 기하학을 처리할 때 툴 바가 없음을 미리 인지할 것이다.
'
', '
', '
', '
' 중 하나를 사용할 때 일부 윈도우 관리자들은 프레임을 진정으로 "최대화(maximized)"하거나 "전체 화면(fullscreen)"이 되도록 사용자에게
변수를
이외의 값으로 설정하도록 요구한다.
일부 윈도우 관리자들은 프로그램이 명시한 위치와 사용자가 명시한 위치를 모두 무시하도록 만들 수 있는 옵션도 제공한다. 이러한 옵션을 설정하면 Emacs는 창을 올바로 위치시키지 못한다.
내부 및 외부 테두리(Internal and External Borders)
Emacs 프레임은 내부 테두리와 외부 테두리를 가진다. 내부 테두리는 프레임의 텍스트 부분 주위에 배경색으로 된 추가 줄무늬(strip)에 해당한다. Emacs는 스스로 내부 테두리를 그린다. 외부 테두리는 프레임 밖에서 윈도우 관리자에 의해 추가되는데, 사용하는 윈도우 관리자에 따라 창을 아이콘으로 만들거나 클릭하여 이동할 수 있는 다양한 박스를 포함하기도 한다.
'
' '
'
width를 픽셀로 표현한 내부 테두리(텍스트와 주 테두리 사이)의 너비로 명시한다.
'
' '
'
width를 픽셀로 표현한 주 테두리의 너비로 명시한다.
프레임 크기를 명시할 때 테두리는 포함하지 않는다. 프레임의 위치는 외부 테두리의 가장자리 밖에서부터 측정된다.
내부 테두리 n 픽셀 너비를 명시하기 위해서는 '
' 을 사용하라. 기본값은 1 이다. (윈도우 관리자는 사용자가 명시하는 값에 주의를 기울이지 않을지도 모르지만) 외부 테두리의 너비를 명시하려면 '
' 을 사용하라. 외부 테두리의 기본 너비는 2 다.
프레임 제목(Frame Titles)
Emacs 프레임에는 명시된 제목이 있기도 하고 그렇지 않기도 한다. 프레임 제목이 명시되면 프레임 이름으로서 창 데코레이션과 아이콘에 표시된다. Emacs 프레임에 명시된 제목이 없으면 기본 제목은 '
' 형태이거나 (하나의 프레임만 존재할 경우), 선택된 창의 버퍼명을 가진다(하나 이상의 프레임이 있을 경우).
명령행 옵션으로 초기 Emacs 프레임에 대한 제목을 명시할 수 있다.
'
' '
'
title을 초기 Emacs 프레임의 제목으로 명시한다.
'
' 옵션 역시 (493 페이지의 D.1절 [자원(Resources)] 참고) 초기 Emacs 프레임의 제목을 명시한다.
아이콘(Icons)
'
' '
'
아이콘 ("최소화") 상태로 Emacs를 시작한다.
'
' '
'
Emacs 아이콘의 사용을 비활성화한다.
대부분의 윈도우 관리자들은 Emacs 프레임을 보이지 않게 숨겨 "아이콘화(iconify)"(또는 "최소화(minimize)")를 허용한다. 일부 윈도우 관리자들은 아이콘으로 된 창을 작은 "아이콘(icons"으로 대체하는 반면 다른 관리자들은 그러한 창을 완전히 보이지 않게 제거한다. '
' 옵션은 Emacs 에게 프레임을 즉시 표시하는 대신 아이콘 상태로 실행할 것을 알린다. 텍스트 프레임은 사용자가 아이콘 상태를 취소(또는 "최소화 취소(un-minimize)")할 때까지 표시되지 않는다.
기본적으로 Emacs 는 Emacs 로고를 포함하는 아이콘을 사용한다. Gnome과 같은 데스크톱 환경에서 이러한 아이콘은 다른 컨텍스트, 가령 다른 프레임으로 전환될 때도 표시된다. '
' 또는 '
' 옵션은 어떤 유형의 아이콘을 사용할지 윈도우 관리자가 선택하도록 허용할 것을 Emacs에게 알리는 데에 사용되며, 주로 프레임 제목이 포함된 작은 직사각형이 사용된다.
기타 디스플레이 옵션(Other Display Options)
'
'
id를 부모 X 창 id로 하여 XEmed 프로토콜을 통해 Emacs를 클라이언트 X 윈도우로서 연다. 현재 이 옵션은 개발자들이 주로 사용한다.
'
' '
'
수직 스크롤 막대를 활성화한다.
'
' '
'
pixels를 라인 사이에 추가 공간의 픽셀로 명시한다.
'
' '
'
그래픽 디스플레이에 깜빡이는 커서를 비활성화한다.
'
' '
'
메뉴 바, 툴 바, 스크롤 바, 툴 팁을 비활성화하고, 깜빡이는 커서를 끈다. 디스플레이 문제의 디버깅을 단순화하는 시험 케이스를 만들 때 유용할 것이다.
'
' 옵션은 (493 페이지의 D.1절 [자원(Resources)] 참고) 추가 X 자원 값을 명시한다.