윈도우즈에서 emacs server mode 설정
windows 10 64 기준으로 작성하였습니다
main.c
#include <Windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { STARTUPINFO si = { 0 }; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(STARTUPINFO); // 아랫줄 자신의 컴퓨터에 맞게 변경해주세요 BOOL bResult = CreateProcessW(L"C:\\이멕스설치경로\\emacs\\bin\\emacs.exe", L" --daemon", NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, NULL, &si, &pi); if (bResult) { WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hThread); CloseHandle(pi.hProcess); return EXIT_SUCCESS; } else { MessageBox(NULL, L"emacs 데몬을 실행시킬 수 없습니다.", L"", MB_OK); return EXIT_FAILURE; } }
vs2017에서 64bit build 잘됩니다
다른 컴파일러는 윈도우즈 옵션이랑 릴리즈옵션, 64옵션, 최적화옵션, c99옵션 알아서 주시면 됩니다
혹시 EXIT_SUCCESS 에러뜨면 include stdlib 해주시거나 EXIT_SUCCESS 를 0으로 바꿔주세요
실행파일 결과를 탐색기 주소창에 'shell:startup' 치시고 복사하시면 일단 부팅될때 시작합니다
ctrl + alt + del 등으로 작업관리자 불러오셔서 emacs process가 떠있는지 확인하시고
emacs를 새로 하나 실행시킨 다음 설정파일을 엽니다
ctrl + x, ctrl + f, ctrl + a, ctrl + k, Find file: ~/.emacs.d/init.el
맨 아랫줄에 다음 내용 추가
;; emacs daemon (add-to-list 'command-switch-alist '("(raise-frame)" (lambda(s)))) (require 'server) (if (not (server-running-p)) (server-start))
ctrl + x, ctrl + s 로 저장하고 나온뒤 emacs 설치폴더로 가셔서
emacsclientw.exe 의 바로가기를 바탕화면에 하나 만듭니다
바로가기 아이콘을 마우스 우클릭한다음 속성 바로가기탭에 대상 항목이
c:/어쩌구저쩌구/emacsclientw.exe 라고 되어잇을텐데 여기 뒤에
c:/어쩌구저쩌구/emacsclientw.exe -n -a "" -e "(raise-frame)"
위처럼 추가해줍니다
저게 뭐하는건지, init.el에 있는게 뭐하는건지 사실 전 몰라요
emacs wiki 에서 보고 따라했습니다
좌우지간 여까지 하시면 다하는것이고, 컴퓨터를 재부팅하면
emacs daemon 이 자동 실행됩니다
그다음부턴 아까만든 바탕화면 아이콘으로 emacs 실행가능합니다
이리하면 장점이 emacs 실행시킬때 빠르다랑
기존에 emacs에서 하던거 buffer kill 안하면 emacs 다시 켜도 남아있다
정도인것 같습니다
댓글 달기