Flycheck 에러를 Eldoc 패키지로 표시
Emacs 하단에 있는 Echo Area에 간단한 문서를 즉시 볼 수 있게 해주는 Emacs 패키지다. 겸손한 알림이 가장 큰 장점이다. 관련된 정보가 있다면 슬그머니 Echo Area에 보여준다. 문서 작성을 방해하지 않는다.
Emacs 하단에 있는 Echo Area에 간단한 문서를 즉시 볼 수 있게 해주는 Emacs 패키지다. 겸손한 알림이 가장 큰 장점이다. 관련된 정보가 있다면 슬그머니 Echo Area에 보여준다. 문서 작성을 방해하지 않는다.
Emacs-libvterm (vterm) is fully-fledged terminal emulator inside GNU Emacs based on libvterm, a C library. As a result of using compiled code (instead of ...
time-less-p, time-equal-p 같은 비교 함수 및 time-subtract, time-add 같은 계산 함수를 사용하려면 lisp timestamp로 변환해야 한다.
(parse-time-string "2020-12-03T06:58:28.649Z")
org-mode에서 웹 페이지 링크를 삽입할 때, C-c C-l 키를 눌러서 링크와 제목을 따서 추가했는데, 이걸 편하게 해주는 rexim/org-cliplink 패키지를 찾았다.
(setq initial-frame-alist '((fullscreen . maximized)))
evernote에 적은 코드를 emacs에 붙인다. 이상한 게 보인다. 배경색보다 좀 더 밝은 스페이스 같다. 마치 들여쓰기를 표시해주는 것처럼 보인다.
elixir 문서를 보고 싶은 모듈이 있다. https://hexdocs.pm/elixir/ 사이트를 방문한다. 검색 필드에 모듈이나 함수 이름으로 찾는다. 번거롭다고 말하려고 했는데, 과정을 써보니 간단하다. 하지만 이 간단한 작업도 반복되니 번거롭다. elixir 프로그래밍을 ...
휴가일 때, slack status를 휴가 로 바꾸고 있다. 멘션을 하려고 아이디를 타이핑하다 보면 휴가 상태가 바로 보여서 압박감을 준다. 진짜 급한 일이 아니면 휴가 중에 멘션을 받지 않는 좋은 효과가 있어서 휴가를 쓰면 꼭 설정한다.
마크다운(markdown) 같은 마크업(markup) 언어는 코드 블럭(code block) 문법을 지원한다. 구문 강조(Syntax highlighting)를 하거나 본문과 달리 고정 폭 글꼴을 사용해 렌더링할 수 있게 pre 태그로 감싸서 익스포트하기 위해서다.
org mode에서 < 문자를 입력하면 자동으로 > 문자를 추가해서 불편하다. < 문자 쌍을 org mode에서 딱히 사용하지도 않는다. electric-pair-mode를 활성화한 후로 이랬던 것 같다.
괄호 쌍을 만들어주는 패키지를 추가했다. 코드를 추가할 땐, 불편함이 없다. 아니 닫는 괄호를 신경 쓰지 않아도 되니 편하다. 하지만 코드를 수정할 때, 필요 없는 닫는 괄호가 추가돼서 불편하다. 괄호 쌍을 만들어주는 패키지를 추가했다면 선택한 코드를 괄호로 감싸는 기능을 추가해야...
(progn (show-paren-mode t) (setq ;; 괄호만 강조 show-paren-style 'parenthesis ;; 괄호 강조를 즉시 보여준다 show-paren-display 0 ;; 괄호 입력 후 내용 입력시 괄호를 강조 ...
ELISP> (delete 'c '(a b c d)) (a b d)
M-x org-columns 입력해 column view를 활성화하면 자동 줄 바꿈이 비활성화된다. 제목(heading)에 있는 속성(property)을 컬럼으로 보여줘 한눈에 잘 들어오는데, 자동 줄 바꿈이 비활성화 돼서 본문이 제대로 안 보인다.
gitlab todo 기능 마음에 든다. 날 멘션(@mention) 하거나 담당자(assignee)로 설정했을 때, gitlab 시스템이 todo 목록으로 추가한다. 한눈에 내가 읽거나 답변해야 할 목록을 볼 수 있다. gitlab 기본 페이지로 해놓고 쓰고 있다.
(add-hook 'before-save-hook 'delete-trailing-whitespace)
Unordered list items start with ‘-’, ‘+’, or ‘*’10 as bullets. Ordered list items start with a numeral followed by either a period or a right par...
Pure Emacs-Lisp Init Skeleton 글에서 몰랐던 use-package 패키지 설정을 배웠다. 특히 imenu 지원 변수가 반가웠다.
즉석 구문 검사(on-the-fly syntax checking) 패키지다. emacs 내장 flymake를 사용하다가 지원하는 언어가 많은 flycheck로 갈아탔다.
매주 반복하는 게 있다. 주간 계획을 세운다. 주간 계획에는 매일 반복하는 작업이 있는데, 이걸 적을 때마다 복사해서 날짜를 밀어주고 있다. org-clone-subtree-with-time-shift 함수를 모르고 무식하게 하고 있었다.
Unordered list items start with ‘-’, ‘+’, or ‘*’10 as bullets. - 2.7 Plain lists
modeline을 doom modeline으로 바꾸니 2013년부터 사용해 지겨워진 solarized light 테마도 바꾸고 싶다. 밝은 테마를 오래 써서 이번엔 어두운 테마를 쓰고 싶다. doom modeline을 찾을 때, 같이 본 doom themes로 결정했다.
아이콘이 눈에 띈다. 화려하고 정보가 풍부하다. smart modeline에서 doom modeline으로 갈아탔다.
org mode를 9.1.9 버전에서 9.2.1 버전으로 업그레이드했다. <#orgmode 최신 버전 사용하기> 글을 참고해 최신 버전으로 설치했다. emacs 26.1 버전에는 org mode 9.1.9 버전이 설치되어 있다.
vagrant@ubuntu-xenial:~$ sudo su root root@ubuntu-xenial:/home/vagrant# ls -la hello -rw-r--r-- 1 root root 6 Mar 23 23:29 hello root@ubuntu-xenial:/home/vag...
버퍼에서 클립보드를 사용하는 방법과 같다. evil-mode가 통하지 않는 미니버퍼에서 살아남으려면 익혀야 한다.
M-x shell
gnu emacs 다운로드 파일 이름 구성이 달라졌다. 의존 라이브러리 포함이 기본이 됐다. 64bit는 emacs-26.1-x86_64.zip 파일을 받으면 된다. emacs-26.1-x86_64-no-deps.zip 파일은 의존 라이브러리가 없는 파일이다.
emacs는 파일을 열어 수정하면 auto-save 파일을 만든다. # 문자로 귀마개(earmuffs)를 씌운다. foo 파일을 수정하고 있으면 #foo# 파일을 만든다.
<TRAMP로 원격 파일을 로컬 파일처럼 편집> 글은 쓰면서 macOS에서 테스트했다. windows에서 똑같이 테스트해봤다. windows에서 bash를 emacs shell로 사용하고 있어서 ssh 명령어를 실행할 수 있다. 잘 되겠지?
RET 키 누르면 호출하는 org-return 함수는 들여쓰기를 하지 않는다. 들여쓰기 안 하는 줄 바꿈을 쓸 일이 없다. RET 키 누르면 들여쓰기까지 해줬으면 좋겠다.
라이브러리 개인 설정은 어디에 둬야 할까? 라이브러리를 로드한 후에 두면 된다. 위치에 상관없이 정의하고 특정 라이브러리가 로드된 후에 실행할 수 있을까? 버전 컨트롤 안 하는 init.local.el 파일에 라이브러리 로드 후에 실행할 설정 파일을 추가하고 싶다.
merge request는 org todo로 만들어서 잘 쓰고 있다. merge request 단위로는 계속 읽고 있는데, 아쉽게도 이게 다가 아니다. master에 직접 push도 허용하고 있어서 연관된 merge request가 없는 커밋(commit)도 있다. 주로 아티스트 ...
<#orgmode org block 배경 색상> 바꾸면서 배웠다. emacs lisp에서 backquote를 처음 써봤다.
(custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should c...
<#gitlab issue 또는 merge request의 링크와 제목 삽입하기> 글에서 짠 함수를 사용하려면 personal access tokens가 필요하다. github에 올려놓은 init.el 파일에 적어놓는 건 아닌 것 같다. id와 password를 공개 장...
```elisp (defconst my/solarized-light-red “#FF6E64”) (defconst my/solarized-light-green “#B4C342”) (defconst my/solarized-light-orange “#F2804F”)
버퍼 인코딩(encoding) 확인
emacs가 느리다. 내부 프로세스를 가장 먼저 의심한다. 버그로 여러 개가 띄어졌는지. 필요 없는 프로세스가 살아있는지 확인한다.
elixir 언어에 소스코드 포매팅 기능(mix format)이 추가됐다. emacs 공식 elixir mode에서 지원하려나 싶어 찾아보니 반영되려면 좀 더 있어야겠다. Subscribe 버튼을 쾅 누르고 반영되기 전까지는 mix-format 패키지를 사용하려고 한다.
’When/why should I use progn?’ 질문한 사람처럼 나도 궁금했다. progn 특수 형식(special form)은 언제 쓰는 건가? 안 써도 똑같이 실행되던데.
REST(Representational State Transfer) 웹서비스를 테스트할 수 있는 프로그램이 필요했다. 뭘 외부에서 찾나? emacs 패키지 저장소인 MELPA에서 검색해보면 될 것을.
(use-package yasnippet-snippets :ensure t) (use-package yasnippet :ensure t :config (yas-global-mode 1))
picasaweb 이미지를 로컬에 다운로드하고 이미지 주소를 교체하는 스크립트를 짰다. 기존에 올린 이미지는 google photos로 자동으로 이관됐다. 엑박 안 뜨고 잘 나오지만 레거시 지원으로 유지되는 거라서 불안하다. 그래서 간단한 스크립트를 짰다.
(add-hook 'emacs-lisp-mode-hook #'(lambda () (modify-syntax-entry ?_ "w") (modify-syntax-entry ?- "w")))
macOS Sierra를 사용하고 싶어도 Karabiner 때문에 참고 있었다. Karabiner는 지원이 끊겼고 Karabiner-Elements만 사용할 수 있는데, stable 버전까지는 먼 것 같아서.
(defun unity-open-editor-log () (interactive) (let ((path (format "C:/Users/%s/AppData/Local/Unity/Editor/Editor.log" (getenv "USER...
| C-x o | other-window | | C-x 0 | delete-window | | C-x 1 | delete-other-windows | | C-x 2 | split-window-below | | C-x 3 | split-window-ri...
| C-c p s s | projectile-ag |
(setq org-clock-idle-time 15)
projectile은 project 단위로 뭔가 할 수 있게 해준다. project는 작업 단위. 파일을 찾을 때, 내용을 검색할 때, 항상 / 디렉터리를 타깃으로 하지 않는다. 대상 디렉터리가 존재하기 마련. 이 블로그는 로컬에서 글을 쓸 때, ~/project/emacsian ...
(org-clock-persistence-insinuate) (setq org-clock-persist t) (setq org-clock-in-resume t) (setq org-clock-persist-query-resume nil)
(setq-default c-default-style "bsd" c-basic-offset 4)
DejaVu Sans Mono 폰트 잘 썼는데, 1:2 비율인 한글 폰트를 못 찾겠다. 반듯한 org table을 보고 싶은데 말이야. 그래서 작별하려고. 오랫동안 잘 썼다.
```bat SET ecPath=C:\emacs\bin\emacsclientw.exe SET ecOption=-na C:\emacs\bin\runemacs.exe REG ADD “HKCR*\shell\Open with Emacs” /t REG_SZ /v “” /d “...
(use-package smart-mode-line :ensure t :config (add-to-list 'rm-blacklist " WS" t) (add-to-list 'rm-blacklist " Undo-Tree" t) (add-to-list 'rm-blac...
(use-package org :pin org :ensure org-plus-contrib :config (require 'ox-confluence))
MSYS2 pacman으로 ag를 설치해서 사용하는데, 한글 검색이 안 된다. 커맨드 라인에서도 이런가?
(when (eq system-type 'darwin) (setq mac-command-modifier 'meta) (setq mac-option-modifier 'super))
]0;:/Users/ohyecloudy/.dotfiles ohyecloudy@air5 ~/.dotfiles (master) $
;; This function is just an example. ;;; Here either two or three semicolons are appropriate. (defun foo (x) ;;; And now, the first part of the function: ...
(use-package company :ensure t :init (add-hook 'after-init-hook 'global-company-mode) :config (setq company-idle-delay 0) (setq company-show-numb...
```elisp (add-to-list ‘package-archives ‘(“org” . “http://orgmode.org/elpa/”) t)
* headline|
M-x lgrep
(use-package ranger :ensure t :config (ranger-override-dired-mode t))
package 설치 코드와 추가 설정 코드를 따로 관리했다. 그러다 보니 init.el 파일 크기가 커져서 분리하고 분리하다 보니 관리 안 되고. 설치와 설정을 같은 코드 블럭으로 관리할 수 있는 use-package 패키지를 설치했다.
path를 만들 때, 가장 귀찮은 건 디렉터리 구분자를 넣는 것이다. 귀찮은 사람이 어디 한둘이겠나? 그래서 대부분 Path.Combine 같은 helper 함수를 만들어 놓는다.
(when windows? (let ((git-dir "C:/Program Files/Git") (bash-dir "C:/Program Files/Git/bin")) ;;... ))
Update <2018-09-01 Sat> gnu emacs 26 이상에는 GnuTLS DLLs가 포함되어 있다. 따로 설치 안 해도 된다.
(defalias 'list-buffers 'ibuffer) (setq ibuffer-expert t) (setq ibuffer-default-sorting-mode 'major-mode) (add-hook 'ibuffer-mode-hook '(lambda () ...
Win-r calc
일감에 table을 붙여넣을 일이 있으면 항상 org-mode를 사용한다.
vim 키바인딩을 사용할 수 있는 evil-mode를 사용하고 있다.
$ git config --global core.editor emacs
;;; prettify-symbols-mode (add-hook 'prog-mode-hook 'prettify-symbols-mode)
trailing whitespace 제거 스크립트를 emacs로 열면 python-mode 활성화가 안 된다.
잘 만든 패키지에 올라타자. 최근까지 업데이트가 잘 되는 elpy를 선택. MELPA에도 등록돼있다.
딱히 기본 모드 라인(mode line)에 불만을 가진 건 아니었다. 어쩌다 보니 변경하게 됐는데, 더 깔끔해진 것 같다.
```elisp ;; whitespace mode (custom-set-faces ‘(whitespace-line ((nil (:bold t :background “yellow”)))) ‘(whitespace-trailing ((nil (:bold t :backgro...
같은 디렉토리에 ~ 꼬리를 달아서 백업 파일을 남기는 게 기본 설정이다. 안전빵이니 백업을 남기는 건 좋은데, 지저분하다. 조금만 쪼물락 거리면 원하는 곳에 원하는 만큼 남길 수 있다.
OS X 기준으로 설명. 요즘 Windows에서 clojure 만질 일이 없다.
(defalias 'yes-or-no-p 'y-or-n-p)
(require 'server) (server-start)
10 Specific Ways to Improve Your Productivity With Emacs를 봤다. 난 이렇게 고수가 툭툭 던져주는 팁이 좋다. 유용한 항목이 많기 때문이다. 간단히 3개만 정리.
(setq windows? (eq system-type 'windows-nt)) (when windows? (let ((bash-dir "C:/Program Files (x86)/Git/bin")) (setq explicit-shell-file-name ...
M-x package-install <RET> color-theme-solarized
’입력기(input method), Windows IME와 충돌 해결’처럼 OS X도 처리해서 깔끔하게 사용하자.
키보드에 없는 문자인 한글을 어떻게 쓸 수 있는 걸까? 입력기(input method)가 그 역할을 해준다.
버전 24부터는 패키지 매니저인 package.el 이 디폴트 패키지다. ELPA(Emacs Lisp Package Archive)로 부터 원하는 패키지를 가져오자. 아직 패키지 업그레이드는 좀 불편하다.
init file을 쓰담쓰담 하다 보면 변경 사항을 반영해야 한다. 이왕이면 바로 반영됐으면 좋겠다. 수정하고 emacs 다시 실행해서 반영했는지 확인하고 다시 수정하고. 이렇게 수정하기는 싫다. 괴로워.
초기화 명령들을 담고 있는 파일을 vim에선 vimrc 라고 부르고 emacs는 init file 이라고 부른다. dotemacs 가 좀 더 간지나지만 메뉴얼에서 init file 이라고 부르니 이 용어를 사용한다.
| effort | Headline | Time | | |--------+---------------------------------+-----------+------| | | *Total time* ...
interactive 함수에서 리스트 요소(element) 중에 하나를 고르게 하고 싶다. ’emacs - Adding Completion to (interactive) - stackoverflow.com’ 글에서 좋은 예제를 발견했다.