Windows에서 Emacs를 설정하여 단일 인스턴스를 시작하고 기존 인스턴스에서 파일을 엽니 다.


18

특히 다음과 같은 전체 Windows 환경에 관심이 있습니다.

  • 서버가 아직 시작되지 않은 경우 자동으로 서버 시작
  • 서버를 활용하도록 emacs를 호출하는 방법 (예 : 명령 행 또는 타사 도구)
  • 상황에 맞는 메뉴 지원 (예 : 파일을 마우스 오른쪽 버튼으로 클릭하여보고 편집 할 수 있도록 emacs로 전송)

이러한 지원은 어디서나 사용할 수 있습니까?

답변:


21

서버가 아직 시작되지 않은 경우 자동으로 서버 시작

이것은 모든 Emacs 빌드에서 동일해야합니다. 이 스 니펫을 .emacs또는에 추가하십시오 .emacs.d/init.el.

(require 'server)
(unless (server-running-p)
  (server-start)) 

그런 다음 runemacs.exe빌드와 함께 제공 되는 실행 파일을 실행하여 emacs를 시작 하십시오.

서버를 활용하도록 emacs를 호출하는 방법 (예 : 명령 행 또는 타사 도구)

Emacs의 Windows 빌드는 디렉토리에 emacsclientw.exe실행 파일 과 함께 제공됩니다 bin/. 구성해야하는 타사 도구에서 선택한 실행 파일로 해당 실행 파일 의 전체 경로 를 사용하십시오 .

상황에 맞는 메뉴 지원 (예 : 파일을 마우스 오른쪽 버튼으로 클릭하여보고 편집 할 수 있도록 emacs로 전송)

  1. 파일을 마우스 오른쪽 버튼으로 클릭하고을 선택하십시오 Open With -> Select Default Program.
  2. 팝업 창에서 emacsclientw.exe위에서 언급 한 실행 파일로 이동하여 선택하십시오.
  3. Emacs를 기본값으로 사용하지 않으려면 다른 프로그램을 기본값으로 선택하여 1 단계와 2 단계를 다시 수행하십시오.

emacsclientw.exe 상황에 맞는 메뉴에서 항상 옵션이됩니다.


고마워-서버에 대한 좋은 지적, 나는 생각하지 않았다.
cristobalito

emacsclient.exe와 관련하여 emacsclientw.exe가되어서는 안됩니까? 또한 서버가 실행 중이 아닌 경우 대체 편집기를 지정하려면 -a 플래그로 이것을 실행해야한다고 생각했습니다.
cristobalito

서버가 구성에서 제대로 작동하게하려면 디렉토리 EMACS_SERVER_FILE를 가리키는 환경 변수도 추가해야했습니다 .emacs.d\server.
Ryan

@Ryan 환경 변수가 없어도이 작업을 수행 할 수있었습니다. 서버가 실행되고 있는지 확인하는 데 필요했습니다.
cristobalito

흠, 내가 평가 (server-running-p)수익률 :otherWindows에서을 (even 설정으로 설 정이 시도 after EMACS_SERVER_FILEENV var에 있습니다.
Kaushal 모디

5

서버가 아직 시작되지 않은 경우 자동으로 서버 시작

내가보기 엔에 대한 환경 변수를 설정하는 것이 좋습니다 ALTERNATE_EDITORrunemacs.exe. 이렇게하면 서버가 없어도 항상 emacsclient를 호출 할 수 있습니다. init 파일에 (서버 시작)을 추가하십시오. 서버가 존재하지 않으면 emacsclient는 ALTERNATE_EDITOR우리의 경우 emacs를 호출합니다 . emace는 init 파일에서 서버를 시작하므로 emacsclient에 대한 새로운 호출은 즉시 이루어집니다.

서버를 활용하도록 emacs를 호출하는 방법 (예 : 명령 행 또는 타사 도구)

emacsclientw.exe -c -n "your_file"your_file을 여는 데 사용하십시오 . 이 -c인수는 새로운 그래픽 프레임을 작성하고 -n서버 상태를 유지하면서 프레임을 닫을 수있게합니다. 파일 이름없이 호출하여 *Scratch*버퍼 를 열 수도 있습니다. 바탕 화면 바로 가기에서도 작동합니다. emacsclient.exe(누락 된 w 참고)를 사용 하면 호출 할 때마다 몇 초 동안 명령 프롬프트가 나타납니다.

상황에 맞는 메뉴에 추가

Emacswiki에는 컨텍스트 메뉴에 Emacs를 추가하는 방법에 대한 멋진 페이지가 있습니다 . HKEY_CLASSES_ROOT\*emacs로 열 조치를 추가하기 위해 레지스트리 노드 를 편집하는 작업이 포함됩니다 .


5

다른 사람들은 서버 부분에 대답했습니다. 여기에 내가 UNIX / GNU를 얻기 위해, 할 것입니다 / 리눅스와 같은 같은 유틸리티 grepdiff:

  1. Cygwin을 설치하십시오 (일회성 작동).
  2. 로드 cygwin-mount.el.
  3. 로드 setup-cygwin.el.

그러나 다른 버전의 Cygwin이 있습니다. 나는 이전 버전을 사용합니다 (어떤 버전인지 알 수 없습니다-AFAICT). 최신 버전에 문제가 있는지 여부

또한보십시오:


참고 : cygwin EMACS를 사용하지 마십시오. ftp.gnu.org/gnu/emacs/windows
M Smith

Cygwin을 설치하지 않는 것이 좋습니다. 일부 gnu 도구를 사용하는 경우 바람직하지 않은 부작용 (emacs, gcc 등의 다른 gnu windows 포트 끊기 등)이있을 수 있습니다. 대신 GnuWin32 포트를 설치하십시오 . 전체 패키지 또는 선택한 도구를 설치할 수 있습니다.
Seki

@ Seki-네, Eli Zaretskii는 당신과 같은 것을 말합니다. 내가 말할 수있는 것은 내가 문제가 없다는 것입니다 (그리고 Emacs를 깨뜨리는 것에 대한 귀하의 주장에 심각한 의구심이 있습니다 ). 그러나 (a) 이전 Cygwin 릴리스를 사용하고 있으며 (b) Cygwin에서 제공하는 대부분의 UNIX / GNU Linux 유틸리티를 사용하지 않습니다.
Drew

@drew : 아마도 "이상한 행동을 일으키는"이맥스에 대해 이야기하기에는 너무 과도 할 것입니다. 예를 들어 Cygwin 도구가 고려되지 않거나 기본적으로 다른 경로가없는 경우 Cygwin 도구의 경로를 신중하게 확인하지 않으면 Cygwin Make가 MinGW 도구 체인을 제동합니다. Make에만 국한되지 않으며 다른 많은 도구는 혼합 할 수 없으며 때로는 문제를 지적하는 것이 미묘합니다. 즉, 기본 포트 Emacs가 있고 기본 GNU 도구를 사용하는 것이 좋습니다. 또는 emacs를 포함한 전체 Cygwin 배포판을 사용할 수 있습니다.
Seki

@Seki : Cygwin과 MingGW가 잘 어울리지 않는 것이 핵심입니다. 저에게는 놀라운 일이 아닙니다. (FWIW, 나는 Cygwin 대신 MingGW를 사용하는 것에 반대하는 것이 없다. 나를 위해 Cygwin을 설치하는 것이 간단했고 문제가 발생할 정도로 그것을 충분히 사용하지 않았다.)
Drew
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.