GNUEmacsManual:F

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Emacs와 Mac OS / GNUstep(Emacs and Mac OS / GNUstep)

이번 절에서는 GNU/Linux 또는 다른 운영 체제나 native window system 이 지원되는 Mac OS X 에서 GNUstep 라이브러리와 함께 빌드된 Emacs를 사용하는 특이한 사례를 설명한다. Mac OS X 에서 Emacs는 window system 지원 없이, 또는 X11 을 지원하여, 또는 Cocoa 인터페이스를 지원하여 빌드할 수 있으며, 이번 절은 Cocoa build 에만 적용된다. 이는 10.4 이하 버전의 Mac OS X 는 지원하지 않는다.


역사적, 기술적인 이유로 Emacs는 "Cocoa" 또는 "Mac OS X" 대신 내부적으로 '

Nextstep

' 이란 용어를 사용하는데, 가령 이번 절에 설명된 명령어와 변수 대부분은 '

Nextstep

' 의 약어인 '

ns-

' 로 시작된다. NeXTstep은 1980년대에 NeXT 가 발매한 애플리케이션 인터페이스로, Cocoa는 직계 자손(direct descendant)에 해당한다. Cocoa 외에 다른 NeXTstep-style 시스템이자 무료 소프트웨어인 GNUstep도 있다. 이 시점부터 Emacs GNUstep 지원은 알파 상태지만 (504 페이지의 F.4절 [GNUstep 지원(GNUstep Support)] 참고) 향후에 개선할 수 있길 희망한다.



Mac OS와 GNUstep에서 기본적인 Emacs 사용(Basic Emacs usage under Mac OS and GNUstep)

기본적으로 alt Option 키는 Meta 와 동일하다. Mac 의 Cmd 키는 Super 와 동일하고, Emacs는 다른 Mac / GNUstep 애플리케이션을 흉내내는 수식키를 이용해 키 바인딩 집합을 제공한다(503 페이지의 F.3절 [Mac / GNUstep Events] 참고). 이러한 바인딩은 평소대로 변경하면 된다(428 페이지의 33.3절 [키 바인딩(Key Bindings)] 참고).


ns-right-alternate-modifier

변수는 오른쪽 alt Option 키의 동작을 제어한다. 이 키들은 값이 left(기본값)일 경우 왼쪽 키처럼 동작한다.

control

,

meta

,

alt

,

super

, 또는

hyper

의 값이 그러한 키들을 수식키처럼 작동하게 만드는데, 가령

left

로 주어지는 값은

ns-alternate-modifier

와 동일한 키를 의미하고,

none

값은 Emacs 에게 그들을 무시하라고 말한다.


S-Mouse-1Mouse-3 (

mouse-save-then-kill

)과 마찬가지로 영역을 클릭 위치로 조정하고, S-Mouse-1 의 일반적 동작과 달리 기본 겉모습을 변경하기 위한 메뉴를 팝업하지 않는다(78 페이지의 11.11절 [텍스트 크기조정(Text Scale)] 참고). 이러한 변경으로 인해 Emacs 는 다른 Mac / GNUstep 애플리케이션에서 실행되는 것과 비슷하게 작동하게 된다.


메뉴를 이용하거나 Cmd-oCmd-S 바인딩을 이용해 파일 열기 또는 저장하기를 실행하면 Emacs는 파일명을 읽기 위해 그래픽 파일 대화창을 사용한다. 하지만 C-x C-f 와 같이 일반 Emacs 키 시퀀스를 사용할 경우 Emacs는 미니버퍼를 이용해 파일명을 읽는다.


GNUstep 의 X-windows 환경에서 X 일차 선택 영역으로 텍스트를 전달하기 위해선 C-w 또는 M-w 를 사용하는 대신 Cmd-c 를 사용해야 하는데, 그렇지 않으면 Emacs 는 "클립보드(clipboard)" 선택을 사용할 것이다. 마찬가지로 Cmd-y(C-y 대신)는 킬 링(

kill-ring

) 또는 클립보드가 아니라 X 일차 선택 영역으로부터 붙여넣기(yank)를 실행한다.


환경 변수의 Grabbing(Grabbing environment variables)

LaTeX 또는 man을 포함해 Emacs 에서 실행되는 많은 프로그램들은 환경 변수의 설정에 의존한다. 셸로부터 Emacs 를 시작하였다면 이러한 환경 변수들을 자동으로 상속할 것이고, 그 하위프로세스들은 그로부터 상속받을 것이다. 하지만 Emacs 가 Finder 로부터 시작되었다면 어떠한 셸의 자손(descendant)도 아니기 때문에 환경 변수가 설정되지 않으므로 Emacs 가 시작하는 하위프로세스는 Emacs 가 셸에서 시작할 때와 다르게 행동할 것이다.


PATH 와 MANPATH 변수들의 경우 Mac OS X 10.5 이상 버전에서는

/etc/paths

파일과

/etc/paths.d

디렉터리를 이용해 PATH 를 시스템 전반에 걸쳐 설정하는 방법이 권장된다.


Mac / GNUstep 맞춤화(Mac / GNUstep Customization)

Nextstep 포트에 특정적인 맞춤화 옵션이 몇 가지 있다. 예를 들어 이러한 옵션들은 수식키와 전체 화면 동작 등에 영향을 미친다. 그러한 옵션을 모두 확인하려면 M-x customize-group RET ns RET 를 사용한다.

폰트 및 색상 패널(Font and Color Panels)

표준 Mac / GNUstep 폰트 및 색상 패널은 Lisp 명령어를 통해 접근할 수 있다. Font Panel 은 M-x ns-popup-font-panel 을 이용해 접근할 수 있다. 이는 가장 최근에 사용하거나 클릭한 프레임에서 기본 폰트를 설정할 것이다.


M-x ns-popup-color-panel 을 이용해 색상 패널을 가져와 변경하고자 하는 Emacs 겉모습 위로 원하는 색상을 드래그할 수 있다. 일반 드래그는 전경색을 수정할 것이다. 시프트를 누른 상태에서 드래그를 실행하면 배경색이 수정될 것이다. 설정을 파기(discard)하려면 새 프레임을 생성하고 수정된 프레임을 닫아라.


이 컨텍스트에서 M-x list-faces-display 를 이용하면 모든 겉모습의 목록이 표시되므로 유용하다.


Mac OS X 10.5 이상 버전에서 Emacs는 기본적으로 Core Text 기반의 폰트 백엔드를 사용한다. 그보다 오래된 폰트 스타일을 선호한다면 Emacs가 시작되기 전에 명령행에서 아래의 내용을 입력한다.

% defaults write org.gnu.Emacs FontBackend ns


Mac OS / GNUstep에서 윈도잉 시스템 이벤트(Windowing System Events under Mac OS / GNUstep)

Nextstep 애플리케이션은 X에서 상응하는 것을 찾을 수 없는 특수 이벤트를 많이 수신한다. 이러한 이벤트들은 특별히 "키(keys)"로서 전송되고, 어떠한 키누름(keystrokes) 시퀀스에도 일치하지 않는다. 이러한 이벤트의 목록은 다음과 같다.


ns-open-file

이 이벤트는 다른 Nextstep 애플리케이션이 Emacs에게 파일을 열도록 요청 시 발생한다. 일반적으로는 Finder 애플리케이션에서 사용자가 파일을 더블 클릭하여 발생한다. 기본적으로 Emacs는 새 프레임을 열어 그 안에서 파일을 방문함으로써 (

ns-find-file

) 이 이벤트에 응답한다. 한 가지 예외로, 선택된 버퍼가

*scratch*

버퍼일 경우 Emacs 는 선택된 프레임에서 파일을 방문한다.<\ br>Emacs 가

ns-open-file

이벤트에 응답하는 방법을 변경하려면

ns-pop-up-frames

변수를 변경하면 된다. 기본값 '

fresh

' 가 방금 설명한 동작이다. 값이

t

일 경우, 항상 새 프레임에서 파일을 방문함을 의미한다.

nil

값은 항상 기존 프레임에서 파일을 방문하는 것을 뜻한다.


ns-open-temp-file

이 이벤트는 다른 애플리케이션이 Emacs 에게 임시 파일을 열도록 요청할 때 발생한다. 기본적으로

ns-open-file

이벤트를 발생시켜 처리되는데, 그 결과는 위에 설명한 것과 동일하다.


ns-open-file-line

ProjectBuilder 와 gdb 를 포함한 일부 애플리케이션은 특정 파일뿐만 아니라 파일 내 특정 라인이나 라인의 시퀀스를 요청하기도 한다. Emacs는 파일을 열어 요청한 라인을 강조하여 이러한 요청을 처리한다(

ns-open-file-select-line

).


ns-drag-file

이 이벤트는 사용자가 다른 애플리케이션의 파일을 Emacs 프레임으로 드래그할 때 발생한다. 드래그된 모든 파일의 내용을 현재 버퍼로 삽입하는 것을 기본 동작으로 한다(

ns-insert-file

). 드래그된 파일 목록은

ns-input-file

변수에 보관된다.


ns-drag-color

이 이벤트는 사용자가 색상 웰(color well) (또는 다른 소스로부터)의 색상을 Emacs 버퍼로 드래그할 때 발생한다. 색상을 드래그한 목적지 영역의 전경색을 수정하는 것을 기본 동작으로 한다(

ns-set-foreground-at-mouse

). Shift 수식키를 이용해 해당 이벤트를 발행한 경우 Emacs 는 배경색을 대신 변경한다(

ns-set-background-at-mouse

). 드래그된 색상명은

ns-input-color

변수에 보관된다.


ns-change-font

이 이벤트는 사용자가 Nextstep 폰트 패널에서 색상을 선택할 때 발생한다(Cmd-t 를 이용해 열 수도 있다). 선택된 프레임의 폰트를 조정하는 것을 기본 동작으로 한다(

ns-respond-to-changefont

). 선택된 폰트의 이름과 크기는 각각

ns-input-font

ns-input-fontsize

변수에 보관된다.


ns-power-off

이 이벤트는 사용자가 로그아웃을 하였는데 Emacs가 여전히 실행 중이거나 애플리케이션 메뉴에서 'Quit Emacs'를 선택할 때 발생한다. 파일을 방문하는 모든 버퍼를 저장하는 것을 기본 동작으로 한다.


Emacs 는 이름이 '

ns-service-

' 로 시작하고 서비스명으로 끝나는 명령어 집합을 통해 Nextstep 서비스를 사용하도록 허용하기도 한다. M-x ns-service-TAB 를 입력하면 이러한 명령어 목록을 확인할 수 있다. 이러한 함수들은 마크된 텍스트를 대상으로 작동(텍스트를 결과물로 대체하여)하거나 문자열 인자를 취하여 결과를 문자열로서 리턴한다. 임의의 문자열을 임의의 서비스로 전달하여 결과를 다시 수신하기 위해 Lisp 함수인

ns-perform-service

를 이용하는 방법도 있다. 새로 이용 가능한 서비스로 접근하려면 Emacs를 재시작할 필요가 있음을 명심한다.


GNUstep 지원(GNUstep Support)

GNUstep에서 Emacs를 빌드하고 실행할 수는 있지만 아직도 강조해야 할 문제들이 남아 있다. 관심이 있는 개발자들은 emacs-devel@gnu.org 로 연락을 취하길 바란다.


Notes