emacs
-
이맥스 멈춤 현상 해결로 알아보는 디버깅 기술Programmer/Emacs 2022. 9. 21. 00:49
이맥스에서 컴파일(M-x compile)이나 검색(M-x rgrep)을 하면 결과를 다른 버퍼(예를 들면, 컴파일 출력은 *compilation* 버퍼)에서 표시한다. 단순히 보여주기만 하는 것이 아니라 오류나 검색 위치로 바로 가기도 지원한다. 오류(또는 검색) 출력 위에 커서를 이동하고 엔터를 누르면 다른 윈도우에 커서가 가르키는 파일을 열고 해당 위치로 이동한다. 문제 없이 잘 동작하는 바로 가기 기능이 갑자기 수 분 동안 멈추는 현상이 발생했다. 이를 해결하지 못하면 개발 생산성에 급격한 저하가 발생할 수 밖에 없다. 따라서 무조껀 이것을 해결하고. 본연의 업무 중 하나인. 개발 업무를 진행해야 했다. 얼마간 멈추고 CPU를 과도하게 사용하는 상황이라면 CPU 프로파일링(profiling)으로 접..
-
이맥스 버퍼, 윈도우, 프레임 그리고 새로운 기능 탭Programmer/Emacs 2022. 5. 10. 21:04
이맥스 27.1의 다중 편집 UX에 새로운 기능인 탭이 포함되었다. 이 글에서는 이맥스의 기존 다중 편집 UX인 버퍼, 윈도우, 프레임에 대해서 간단하게 설명하고, 탭을 사용해 본 후기와 기존 방법과 비교, 개인적인 추천 방법까지 소개하겠다. 버퍼는 이맥스와 외부 I/O를 연결하는 인스턴스로 편집 중인 텍스트, 열려 있는 파일, 이맥스에서 구동한 프로세스 입출력 등과 연결되어 있다. 이 버퍼는 윈도우를 통해서 사용자에게 보여진다. 버퍼가 윈도우를 통해서 안보이더라도 후면에 여전히 존재하며 자신의 기능을 수행한다. 윈도우는 디스플레이 공간(프레임)을 전부 차지하여 하나만 보여질 수도 있고, 타일처럼 여러 개로 분할된 공간으로 표시될 수도 있다. 요즘 UI 개념으로 보자면 화면 분할과 같다. 프레임은 GUI..
-
깃털처럼 가벼운 Emacs인 mg의 키바인딩Programmer/Emacs 2021. 10. 25. 11:26
기본 키 바인딩 Category Key Binding Command Leaving Mg C-z suspend-emacs C-x C-c save-buffers-kill-emacs Files C-x C-f find-file C-x C-s save-buffer C-x s save-some-buffers C-x C-q toggle-read-only Getting Help C-h C-h help-help C-h a apropos C-h b describe-bindings C-h c describe-key-briefly Error Recovery C-g keyboard-quit C-x u undo C-_ undo C-l recenter Incremental Search C-s isearch-forward C-r i..
-
날아갈 듯 가벼운 mg 편집기Programmer/Emacs 2019. 2. 28. 11:02
시스템 운영을 하는데 있어서 이맥스는 좀 무겁다. 간단한 설정 파일 편집에는 적합하지 않다. 대안으로, `nano', `vi(m)'이 있다. 그런데, `nano'는 익숙하지 않은데다 배우기도 싫다. `vi(m)'은 이단으로 교리에 위배된다. 여기에 `mg'라는 가벼운 유사 이맥스가 있다. 명령이 떨어지기 무섭게 커서가 떨어진다. 주요 키바인딩(단축키)이 이맥스와 같다. 이맥스 사용자가 익숙하게 사용할 수 있다. 마이너한 오픈 소스의 문제 중에 유지 보수가 잘 이루어지지 않는 것이 있다. `mg'는 그런 점에서는 안심해도 된다. OpenBSD의 요소로 간주되어 유지보수를 잘 해주고 있다. 단순 편집기 기능 이외에 다중 윈도우, dired, ctags, cscope와 같은 유용한 기능도 지원한다. 우분투에서..
-
Emacs의 Python3 개발 환경Programmer/Emacs 2017. 12. 14. 15:10
emacs의 python 개발 환경은 크게 두 가지가 유명하다. 하나는 elpy 나머지 하나는 anaconda이다. 이 두가지 중에 하나를 선택해서 사용한다. elpy 한마디로, emacs에서 python 개발을 위한 all in one 패키지이다. 설치와 설정이 매우 쉬운면서 여느 IDE와 견주어도 꿀리지 않는 강력함이 있다. (use-package elpy :ensure t :config (elpy-enable) (setq elpy-rpc-python-command "python3") (setq elpy-rpc-backend "jedi") (elpy-use-cpython (or (executable-find "python3") (executable-find "/usr/bin/python3") (exe..
-
Emacs의 Programming 관련 공통 설정Programmer/Emacs 2017. 12. 14. 13:50
elpa (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) (add-to-list 'package-archives '("melpa-stable" . "http://melpa-stable.milkbox.net/packages/")) (setq package-enable-at-startup nil) (setq package-archive-priorities '(("melpa-stable" . 1))) (package-initialize) use-package (unless (package-installed-p 'use-package) (package-refresh-contents) (pack..
-
Emacs의 Scala 개발 환경Programmer/Emacs 2017. 12. 14. 11:25
sbt 설치 Ubuntu에서 sbt 0.13.15 설치하기 curl -L -o sbt.deb http://dl.bintray.com/sbt/debian/sbt-0.13.15.deb sudo dpkg -i sbt.deb sudo apt-get update sudo apt-get install sbt sbt 설정하기 ~/.sbt/0.13/plugins/plugins.sbt 파일을 편집한다. addSbtPlugin("org.ensime" % "sbt-ensime" % "1.12.14") 프로젝트 만들기 편의상, 프로젝트 디렉토리를 '~/my-project'로 가정한다. '~/my-project/project/build.properties' 파일에 프로젝트에 sbt 버젼을 명시한다. sbt.version=0.1..
-
Lisp 비교 : Emacs의 개발 환경Programmer/Emacs 2017. 7. 11. 03:36
Emacs의 Programming 관련 공통 설정 Lisp 공통 설정 (use-package paredit :ensure t :diminish paredit-mode :init (use-package paredit-everywhere :ensure t)) Common Lisp Common Lisp의 major-mode는 'lisp-mode'이다. 보통 확장자 '*.lisp'나 '*.l'와 연결되어 있다. SLIME이라는 강력한 REPL 도구가 있다. Common Lisp 설정 예: (add-hook 'lisp-mode-hook (lambda () (setq indent-tabs-mode nil) (paredit-mode t) (helm-gtags-mode 1))) (use-package slime :en..