Emacs (win32)에서 cygwin shell 이용하기

Windows Emacs에서 M-x shell 을 이용하면, Default로 MS-command 를 이용하게 됩니다. 만일 Cygwin을 설치했다면, cygwin shell을 이용하게 할 수 있습니다.1

1. Cygwin

먼저 할 일은 Cygwin을 설치하는 일입니다. 이것은 cygwin home page에 접속하여 Download 하여 설치합니다.

2. 다음을 .emacs 에 삽입합니다.

(setenv "PATH" (concat "c:/cygwin/bin;" (getenv "PATH")))
(setq exec-path (cons "c:/cygwin/bin/" exec-path))
(require 'cygwin-mount)
(cygwin-mount-activate)

(add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m nil t)
(add-hook 'comint-output-filter-functions 'comint-watch-for-password-prompt nil t)
(setq explicit-shell-file-name "bash.exe")
;; For subprocesses invoked via the shell
;; (e.g., "shell -c command")
(setq shell-file-name explicit-shell-file-name)

cygwin-mount가 따로 필요합니다. 링크를 참조하여 설치합니다.

emacs에서 indent등에서 쓰인 Tab을 Space로 바꾸기.

indent에서 Tab 이냐 Space냐의 문제의 토론은 여전히 핫이슈에 속하는 듯 싶습니다. 개인적인 취향이겠지만, 보통은 모든 Editor에서 동일하게 보이게 할 수 있는 Space를 Indent로 하는 것이 권유되고 있습니다. Tab의 경우에는 Editor 마다 다르게 표현이 되는 단점이 있지요. 대신에 개인적인 이유로 Tab의 크기를 일정하게 했다면, 그 크기만큼 자동으로 정렬되어서 보여주니, 그런 장점도 있습니다. 그러나 역시 Space는 Ascii로 명확하게 보이는 코드지만, Tab은 물론 Ascii에 있는 코드이긴 하지만, 보이지 않는 코드라는 단점도 있습니다.

아무튼 저는 여기서 indent로 Tab으로 되어 있는 문서를 Space로 바꾸는 방법을 소개합니다. 방법은 무척 간단합니다.

원하는 영역을 잡으시고,

M-x untabify

하시면 됩니다.

nxhtml 에서 M-Tab을 Windows 시스템에서 사용하기

nxhtml-mode을 Windows XP나 Ubuntu라 할지라도 Alt-Tab과 nxhtml에서 쓰는 Completion 모드에서 쓰는 M-Tab(Alt-Tab)과 충돌하는 일이 발생합니다. WIndows XP는 ALT+TAB이 먼저 Intercept 하기때문에 Emacs에서 M-TAB이 동작하지 않는 경우가 발생합니다.

이때를 대비하여, nxhtml-mode에서는 tabkey2-mode 라는 것을 제공합니다. Tab을 한번 타이핑하면, Indent 모드로, 다시 기다렸다가 Tab을 하면 Completion모드로 들어오는 역할을 합니다.

때로 F8 키로 선택하여 들어올 수도 있습니다.

tabkey2-mode는 다음과 같이 Enable/Disable 할 수 있습니다.

M-x tabkey2-mode

emacs의 dired모드의 listing을 customize 하기

emacs의 dired 모드에 들어가는 listing의 기본 모습은 ls -al 했을 경우와 같습니다. 이것을 customize 할 수 있는 방법은 여러가지가 있지만, 제가 쓰는 팁을 여기에 소개합니다.

1. 가장 간단한 것으로는

C-u s

를 이용하여 ls 옵션을 dynamic하게 수정하는 것입니다.

2. default로 보이는 모습을 바꾸고 싶다면,

(setq dired-listing-switches "-alh")

와 같이 옵션을 .emacs에 정해주면 됩니다. dired를 제대로 이용하기 위해서는 -l 옵션은 반드시 들어가야 하는 것으로 document에 나와 있습니다.

3 Example

3.1 예를 들면,

ls -alrt

하면 날짜의 역순으로 소팅을 합니다. (dired 모드에서 ‘s’ 키로도 비슷한 역할을 합니다.)

3.2

ls -alS

로 하면 size로 sorting을 하고,

ls -alSr

로 하면 역순으로 sorting 합니다.