태그 보관물: emacs

macOS terminal로 Emacs 사용 할 때 meta key 변경

서버에 있는 원격 파일을 편집 할 때 대부분은 Mac용 Emacs에서 Tramp mode로 할 수 있지만, 가끔씩 서버에 접속한 터미널에서 직접 Emacs를 띄우는 경우가 있는데 이 때는 ESC key가 meta로 할당 되어서 도무지 적응 하기가 힘들다. 이 때는 terminal의 Profiles -> Keyboard에서 아랫 쪽에 있는 “Use Option as Meta key”를 설정하면 ESC 대신 Option key를 Meta key로 사용할 수 있다.

[Tip] Emacs에서 pdb 사용할 때 UnicodeEncodeError

*** UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 168-169: ordinal not in range(128)

Emacs에서 shell을 열고 pdb를 실행 할 때 표시하고자 하는 문자열이 ASCII가 아니라면 발생 할 수 있는 문제인데 emacs의 초기화 파일에 unicode locale 설정을 해주는 것으로 해결할 수 있다. 인터넷 문서들 중에는 LANG, LC_LANG, LC_CTYPE 모두를 설정해 주어야 한다는 내용도 있었으나, 내 terminal에서 LC_CTYPE만 설정해서도 잘 동작되고 있으므로 이를 따라 LC_CTYPE만 UTF-8으로 다음과 같이 설정해 주었다.

;;; **************************************************************
;;; Unicode Encoding
;;; **************************************************************
(setenv "LC_CTYPE" "UTF-8")

Init file을 reload하거나 emac를 재 실행해서 ASCII외의 문자들이 잘 표시 되는지 확인해 본다.

그리고 환경 설정은 GitHub repository에 업뎃. 🙂

Emacs로 AWS EC2 원격지 파일 편집

Emacs의 TRAMP mode를 사용하면 원격서버에 있는 불러와서 바로 편집할 수 있다. 다음은 ssh가 돌고있는 AWS EC2 서버의 파일을 TRAMP mode로 편집하기 위한 설정을 설명한다.

Emacs: version 25.1 (macOS)

init.el에 TRAMP mode 설정을 추가.

;TRAMP
(require 'tramp)
(setq tramp-default-method "ssh")

편집할 원격지 파일을 불러 올 때는 계정@호스트:파일경로 형식으로 하면되는데, EC2의 pem 키를 지정할 수 있는 ‘-i’ option을 지원하지 않는다. 매번 비밀번호를 입력하는게 귀찮다면 ssh-add로 키를 추가한다.

$ ssh-add ~/.ssh/ec2_key.pem 
Identity added: /Users/USER/.ssh/ec2_key.pem (/Users/USER/.ssh/ec2_key.pem)

이제 Emacs에서 다음의 명령어로 원격 파일에 접속하거나 파일 목록을 불러 올 수 있다.

Find file: /USERID@REMOTE_SERVER:~/