koodev

'전체 글'에 해당되는 글 75건

  1. Emacs Wdired 모드
  2. macOS 에서 Emacs 데몬이 종료되지 않는 문제
  3. 미분 관련 수학 기호 1

Emacs Wdired 모드

Emacs

Wdire 모드에서 (query-replace) 를 실행한 모습

이번주에 폴더 안의 파일들의 이름에 접두어를 붙여서 바꿀일이 있었다. Python 스크립트를 만들어서 실행시켰는데, 잠시 후 이를 취소해야겠다는 생각이 들었다. 그래서 다시 취소하는 Python 스크립트를 만들어야 하나 했었는데, Emacs의 Wdired 모드를 사용하여 간단하게 파일 이름들을 되돌려 놓을 수 있었다.

Wdired 모드는 Dired 버퍼에서 동작하는 모드이다. 원래 Dired 버퍼는 읽기 전용인데, Wdired 모드는 이를 "부분" 쓰기허용으로 만든다. 즉, 여기서 W는 "writable"을 의미한다.

Wdired 모드를 활성화 시키려면 우선 Dired 모드로 진입하고 나서, C-x C-q (dired-goggle-read-only) 를 누르면 된다.

Wdired 모드에 진입하면 파일 이름을 수정할 수 있다. 커서로 수정하는 것 뿐만 아니라 (replace-regexp) 같은 것으로도 편집이 가능하다. 파일 이름을 몽땅 지우면 해당 파일이 삭제되니 주의하자. 파일 이름만 수정 가능하고 다른 부분(권한 등)은 기본적으로 편집할 수 없다. 그런데 wdired-allow-to-change-permissions 변수를 t 로 바꾸면 권한 수정을 할 수 있게 된다.

수정된 내용은 바로 반영되는 것은 아니고 C-c C-c 이나 파일 저장할 때 쓰는 C-x C-s 를 눌러야 반영된다. Wdired 모드에서는 둘 다 (wdired-finish-edit) 로 매핑되어 있다. 취소하기 위해서는 C-c C-k (wdired-abort-finish) 를 하면 된다.

참고

'Emacs' 카테고리의 다른 글

Emacs Major/Minor 모드  (0) 2019.10.23
Emacs - Python 문서 열람시 멈춤현상  (0) 2019.09.18
macOS 에서 Emacs 데몬이 종료되지 않는 문제  (0) 2019.06.07
Create a new file in ido mode  (0) 2019.06.07
Emacs Server setting  (0) 2019.05.15

macOS 에서 Emacs 데몬이 종료되지 않는 문제

Emacs

macOS 에서 Emacs Server/Client 환경을 만들던 중 데몬이 종료가 되지 않는 문제에 대해서 정리했다.

문제점

Emacs Server/Client 설정은 EmacsWikiEmacs As Daemon 에서 잘 설명해주고 있다. Ubuntu 에서의 설정은 Emacs As Daemon 을 따라서 성공했다. 그런데 macOS에서는 Emacs 서버 데몬을 실행한 후 시스템종료가 안 되는 현상이 발생했다.

Ubuntu 에서는 Emacs 데몬의 systemd 설정파일에서 시스템 종료 시점에 emacsclient --eval "(kill-emacs)" 을 날려주도록 설정해 놨는데, macOS의 시작프로그램 관리자인 launchd 에서는 종료시점에 대해 뭔가를 할 수가 없게 되어있다. 따라서 Emacs 데몬이 종료를 못하고 강제종료를 해 주어야지만 시스템을 종료할 수가 있는 것이다. 내가 직접 테스트해보지는 않았지만 이 문제는 Emacs 를 데몬이 아닌 모드로 실행 후에 (server-start) 를 직접 또는 init.el 등에서 실행해 주면 괜찮다고 한다.

아래 글을 쓴 redinger 라는 분도 macOS에서의 Emacs 데몬 시작 스크립트를 공유해 두시고 나와 같은 문제로 인해서 사용을 하고 있지 않다고 한다.

https://gist.github.com/redinger/1394910/c0dc6877c158a13760212dbe10b4abb32ae3c4f8

그런데 (server-start) 를 불러주는 방식은 최초에 Emacs 실행 시 데몬 모드가 아닌 일반 모드로 실행을 해야 하는 번거로움이 있어서 개인적으로 마음에 들지 않는 방식이다.

데몬 종료가 되지 않는 원인

데몬 종료가 안 되어서 시스템 종료를 방해하는 원인은 바로 Emacs 개인 설정에서 Emacs 종료시에 편집 중이던 수정된 파일을 저장할지 안할지 확인하는 과정이 들어가 있기 때문이었다. Emacs를 데몬으로 실행해 버리면 이를 확인할 수가 없기 때문이다. 즉, 아래와 같은 설정이 문제였다.

(setq confirm-kill-emacs 'yes-or-no-p)

해결책

그런데 Emacs를 일반 모드로 실행하는 경우도 있기 때문에 위의 설정을 포기하는 것도 많이 아쉬웠다. 방법은 Emacs가 데몬 모드로 실행될 경우에는 confirm 설정을 포기하고, 그렇지 않은 일반 모드일 경우에만 confirm 설정을 사용하도록 init 파일에서 설정하면 되는 것이다. Emacs에는 daemonp 라는 함수가 데몬모드로 실행 중인 경우 t 를 리턴하게 되어 있다. 즉, 아래와 같은 내용을 init 파일에 넣어주면 된다.

(if (daemonp)
    nil
  (setq confirm-kill-emacs 'yes-or-no-p))

References

'Emacs' 카테고리의 다른 글

Emacs - Python 문서 열람시 멈춤현상  (0) 2019.09.18
Emacs Wdired 모드  (0) 2019.06.29
Create a new file in ido mode  (0) 2019.06.07
Emacs Server setting  (0) 2019.05.15
EIN and virtualenvwrapper  (0) 2018.07.22

미분 관련 수학 기호

Math

편미분 기호 -  ∂

편미분 기호. 읽을 때는 [del] 이라고 읽는다(그동안 a 나 6이라고 읽었다...). 편미분을 영어로는 'partial derivative' 라고 하며, HTML 코드는 ∂, LaTex 코드는 \partial 이다.

위의 수식을 영어로 읽을 때는 "the partial derivative of z with respect to x" 와 같이 읽으면 된다.

그라디언트 - ∇

다차원 공간에서 편미분한 것들을 모아 놓은 것을 그라디언트 라고 한다. 읽을 때는 [nabla] 라고 읽고(이제 세모 또는 역삼각형 이라고 읽지 말자...), HTML 코드는 ∇, LaTex 코드는 \nabla 이다.

참고로 'nabla'는 고대 그리스 페키니아의 현악기의 이름에서 가져왔다고 한다.

한글로는 정확하지 않지만, 그냥 '기울기' 라고 하는 것 같다.

'Math' 카테고리의 다른 글

미분 Chain Rule  (0) 2019.07.31
미분 곱의 법칙 (Product rule)  (0) 2019.07.22
Right Coset  (0) 2017.06.27
Lagrange's Theorem과 Counting Formular  (0) 2017.06.22
Subgroup으로 생성되는 Left Coset  (0) 2017.06.16