Saturday, December 14, 2013

Note in plain text

Note in plain text

Note in plain text


;; =================================================
;; εμαcs is ⎋[esc]⌘[meta]⌥[alt]⌃[ctrl]⇧[shift].
;; =================================================

이 문서는 emacs org-mode로 작성된 글입니다.


Operating System Environments

  • Main- : OS X Mavericks (10.9)
  • Sub- : Debian GNU/Linux Wheezy (7.2)
  • Server: Debian GNU/Linux Squeeze || Lenny
  • Mobile: iOS 7.0.4

시중에는 Note 관련 Apps이나 Applications이 즐비하다. OS X나 iOS 사용자라면, Apple에서 제공하는 Notes.app을 대부분 쓸 것이다. iCloud로 자동으로 sync되는 이 Notes.app은 그냥저냥 쓸 만은 하다. IT 환경에 조금 밝은 사람은 Evernote를 많이 쓴다. 이 역시 나쁜 선택은 아닐 것이다. 그럼 뭐가 불만인가? 내가 Note 관련 Apps이나 Applications에 요구하는 기능은, 한 마디로 하자면, Plain text이다.

  • Plain text는 어떤 OS에서도 완벽히 호환된다.
  • Plain text는 읽거나 수정하는데 있어 특별한 프로그램이 필요치 않다.
  • Plain text는 검색이 용이하다.

다시 되짚어 보자. iCloud는 Apple 제품에서만 쓸 수 있다. Evernote 역시 Linux 버전이 없으며 따로 iOS 버전이던 OS X 버전을 설치해야 사용이 용이하다. 물론 나도 이 글에서 어떤 프로그램을 추천하겠지만, Plain text로 작성된 문서는 기본적으로 따로 특별한 프로그램이 요구되지는 않는다는 점을 다시 한 번 강조하고 싶다.

여기서는 두 개만 예로 들었지만, Note를 표방하는 시중의 대부분의 제품의 가장 큰 문제는 검색이 엉망이라는 데 있다. 아름다운 GUI로 Note 프로그램을 잘 만들어도, 그 안에서만 검색이 가능하거나 그마저도 잘 않되는 것들이 태반이다. Note를 쓰면 쓸 수록, 쓴 글들이 database가 되어, 이를 언제라도 빠르고 쉽게 검색할 수 있어야 진정한 Note라고 부를 수 있지 않을까? 강력한 호환성을 자랑하는 문서 format은 첫째가 단연 plain text고 두 번째로는 pdf라 할 수 있겠다. 한글을 사용할 것이므로 unicode의 한 종류인 utf8으로 note를 작성하고, .txt 확장자로 저장하면 어느 OS에서도 문제 없이 사용할 수 있는 강력한 호환성을 갖게 된다.

Sync는 Dropbox로 해결할 것이다. Dropbox를 쓰는(혹은 추천하는) 가장 큰 이유는 다양한 OS를 지원하기 때문이다. OS X, Linux, Windows의 3대 OS는 물론이고 iOS, Android, BlackBerry에 Kindle Fire까지 지원한다. 또한 API가 공개되어 있어서 다양한 apps에서 접근성 또한 높다. 무료 사용자에게는 2GB 만을 제공하지만, Note 사용에는 한도 끝도 없는 용량이며, 간단한 pdf 파일들로는 일반인들은 다 쓰기도 어려운 용량이다. 어떤 editor든지 .txt 파일로 만들어서 Dropbox directory 아래에 저장만 하면 그냥 sync 된다. 인터넷만 된다면 어디서든 볼 수 있다.

Dropbox 사용의 또 하나의 강력한 장점은, 지난 번에 저장했던 같은 이름의 파일들이 Dropbox server에 고스란히 저장되어 있다는 점이다. 즉, 글을 계속 수정하고 저장해 가며 쓰다가 문득 지난 번에 쓴 표현을 되살리고 싶을 때, Dropbox homepage에 가서 그 이름의 파일에서 secondary click (aka 우클릭) 후, 'Previous versions'을 클릭하면 지난번에 저장했던 파일들이 고스란히 존재하는 것을 볼 수 있다. 시간 순서로 정렬되어 있으므로 적당한 시간대의 파일들을 몽땅 다운로드해서 확인해 보면 된다. 한 가지 주의할 점도 있다. 아직껏 Dropbox hacking 소식없지만, 그래도 기본적으로는 서버에 올리게 되는 것이므로, 개인정보에 관한 파일을 Dropbox와 함께 사용하는 것은 항상 신중해야 하고 가능하면 그런 파일은 encrypt해서 그냥 컴에만 가지고 있자.

11259796523_5099ab2db9.jpg

여기까지 정리하면, Note 관련 Apps이나 Applications에게 요구되는 기능은 다음과 같다.

  1. Plain text에 Unicode를 지원해야 한다.
  2. 가볍게 돌아가야 하고 사용이 간단해야 한다.
  3. 강력한 검색을 지원해야 한다.
  4. Dropbox sync가 용이해야 한다.
  5. Markdown 같은 markup language를 지원하면 금상첨화다.

OS X

Notational Velocity and nvALT

Notational Velocity라는 환상의 프로그램이 있다. GNU GPLv3 license의 OS X 전용의 plain text note 프로그램이다. 이 프로그램 안에서 note를 작성하는 것은 물론 검색도 해준다. 한글도 잘 동작하며, dropbox sync도 문제없다. 무엇보다도 정말 가볍고 빠르다.

Notational_velocity_screenshot.png

Notational Velocity, image from Wikipeida: Notational Velocity

기본적인 동작은 검색 필드(로 보이는)에서 모두 이루어진다.(단축키 ⌘L)

  • 여기에 단어를 쓰면 바로 검색을 해 주고, 그 단어가 포함된 notes를 모두 filtering 해서 바로 아래 panel에서 즉각 보여주며, 방향키로 검색한 단어가 포함된 notes 사이를 이동할 수 있다. 이 때 세 번째 panel에서 그 note 안에서 검색한 단어가 강조되어 표현됨은 물론이다. 다른 applications과 마찬가지로, Forward finding (단축키 ⌘G)으로는 그 note 안에서 계속적으로 그 검색 단어를 찾아준다.
  • 여기에 단어를 쓰고 엔터()를 누르면, 그 단어를 이름으로 한 다른 note를 바로 만든다.

개인적으로는 Notational Velocity의 모든 기능에 MultiMarkdown preview까지 지원하는 nvALT를 더 추천한다. Open source는 아니지만 free이다. 사용 방법 및 설정은 Notational Velocity와 완전히 동일하다. dropbox sync와 notes 관리 설정은 아래와 같다.

  1. nvAlt에서 Preferences(⌘,)를 열어 아래 그림에서 (1.)의 'Notes'를 클릭한다.
  2. (2.)를 클릭해서 Dropbox에서 sync 시킬 폴더를 선택한다. 아래 예에는 ~/Dropbox/nv 로 설정되어있다.
  3. 기본으로는 모든 notes를 단 하나의 이름의 파일로 관리하는 것으로 되이있는데, 그 아래 'Storage' panel에서 (아래 그림 (3.)) (4.)을 클릭해서 'Plain Text Files*'로 바꾸면 각기 다른 파일 이름으로 note 작성 가능하다.
  4. Markdown(.md) 파일을 nvALT에서 작성 및 검색 가능하게 하려면, (5.1)의 '+'를 클릭하여 (5.2)에 md를 추가시킨다. FYI) (5.2)의 빨간 박스를 잘 보면 txt 가 굵게 표시되어 있는데, 이건 새로 작성할 note가 .txt 로 작성됨을 뜻한다. .md 를 기본으로 하려면 그 이름을 클릭해서 굵게 표시되게 만들면 된다.

11242442566_34e7884a80.jpg

말로는 잘 설명이 안된다. free software(Notational Velocity는 free-/open-)이므로 한 번 써보는 것을 권한다. 써보면 무슨 말인지 알게 된다.

특히, Markdown 및 MultiMarkdown 사용자라면 nvALT를 한 번 써볼 것을 추천한다. Mou라는 꽤 괜찮은 OS X 전용 무료 editor가 존재하지만 nvALT도 그 못지 않다. Navtive nvALT의 Live-preview 기능을 켜고 편집을 하면 Live-preview 화면이 다시 맨 위로 올라가서 다소 부족한데, 이 또한 해결이 가능하다. 이를 위해서는 아래 사이트에 가서 Download Lopash for nvALT v1.0 를 클릭하여 다운로드 받은 후 (혹은 여기를 눌러 직접 받은 후)

압축을 풀어서, 아래 여섯개의 파일을 ~/Library/Application Support/nvALT/ 에 붙여 넣는다.

custom.css
highlight.pack.js
jquery.min.js
solarized_dark.css
solarized_light.css
template.html

그러면 아래 그림과 같은 Live-preview을 볼 수 있게 된다. 이 설정을 완료한 후, Live-preview 기능을 켜고 편집을 하면 Live-preview 화면이 다시 맨 위로 따라 올라가지 않는다.

11313128466_4c01428dca_z.jpg

FYI-#1) 같은 MultiMarkdown source로 확인해 본 결과 Mou와 nvALT가 같은 결과(html 혹은 pdf)를 보여주지는 않았다. 즉, 둘의 MultiMarkdown engine이 다른 것으로 보인다.

FYI-#2) DEVONthink 사용자라면, 위의 예에서 dropbox sync 시킨 ~/Dropbox/nv 폴더를 indexing 하면 DEVONthink 안에서도 검색할 수 있음은 물론이다.

FYI-#3) Simplenote 사용자라면, sync는 Simplenote로 해결하면 된다. Notational VelocitynvALT 모두 Simplenote를 기본으로 지원한다.

Aquamacs (or emacs) deft-mode

완전하지는 않지만 markdown-mode.el 를 만들어 배포하고 있는 Jason Blevins1Notational Velocity의 영감을 얻어 유사하게 만든 deft.el 도 만들어서 배포하고 있다.

설정하는 방법은 jblevins.org/projects/deft/에 자세한 설명이 나와있지만 간단하게 설명하면,

  1. deft.el을 다운 받아 (혹은 링크를 따라가서 전체 복사 후, Aquamacs에서 새 문서를 열어 붙여 넣고 deft.el 로 저장)
  2. deft.el 파일을 ~/.emacs.d/ 아래로 이동. 예를 들어, ~/Desktop/deft.el 으로 만든 경우에 bash sell(Terminal.app)을 열어 아래를 실행
    $mv ~/Desktop/deft.el ~/.emacs.d/deft.el
    
  3. 내 경우는 markdown도 가끔 쓰지만, 주로 org-mode를 .txt 확장자로 사용한다.

    위의 nvALT에서와 같은 폴더(~/Dropbox/nv)를 사용하고 .txt 확장자를 새 note에 기본으로, note 편집은 org-mode 에서 할 경우에는, 아래를 ~/.emacs 파일에 붙여 넣고 저장한다.

    (add-to-list 'load-path "~/.emacs.d/")
    ;; ###################
    ;; for deft.el
    ;; ###################
    (require 'deft)
    (setq deft-directory "~/Dropbox/nv")
    (setq deft-extension "txt")
    (setq deft-text-mode 'org-mode)
    (setq deft-use-filename-as-title t)
    (global-set-key (kbd "C-c d") 'deft)
    

    Markdown을 주로 쓰는 사용자라면, .md 확장자를 선호할 것이고 note 편집은 물론 markdown-mode 를 쓸 것이므로 아래를 ~/.emacs 파일에 붙여 넣고 저장한다.

    (add-to-list 'load-path "~/.emacs.d/")
    ;; ###################
    ;; for deft.el
    ;; ###################
    (require 'deft)
    (setq deft-directory "~/Dropbox/nv")
    (setq deft-extension "md")
    (setq deft-text-mode 'markdown-mode)
    (setq deft-use-filename-as-title t)
    (global-set-key (kbd "C-c d") 'deft)
    

    물론 markdown-mode 가 깔려있어야 한다. 그리고 두 경우 모두 deft-mode 를 부른 단축키는 ⌃c d 로 지정되어 있다. 수동으로는 ⌥x 누른 후, deft ↩ 하면 부르는 것과 동일하다.

FYI) deft-mode를 쓰더라도 nvALT (혹은 Notational Velocity)는 필요하다. 왜냐하면, plain text를 쓰는 이유 중의 하나인 검색이 deft-mode에서 용이하지 않다. 특히 한글 검색은 deft-mode를 부른 후, ⌥x deft-filter 과정을 거쳐야 가능하다. 그럼에도 불구하고 deft-mode를 쓰는 이유는, Finder나 Quicksilver로 찾는 것보다 Aquamacs 안에서 보고, 찾아서, 바로 편집하는 편리함 때문이다.

Any test editor + searching

물론, 원론적으로는 어떤 editor를 쓰던 상관없다. Plain text로 작성하므로 OS X에 기본으로 들어있는 TexdEdit.app을 써도 된다. DEVONthink 사용자라면 그 안에서 검색은 물론 편집도 가능하므로 아무것도 필요 없다. Markdown을 주로 쓰면 Mou를 써도 되고, Emacs user라면 Aquamacs를 쓰면 되고 뭐든 상관없다. 문제는 검색인데, 그것도 Notational VelocitynvALT (혹은 DEVONthink) 처럼 시각적으로 바로 검색 결과를 보여주는 것도 필요 없다고 생각하면, 역시 문제 되지 않는다. 처음에 얘기했듯이 plain text로 작성한 문서는 검색도 용이하기 때문이다. 즉, 다른 프로그램 없이 그냥 Finder.app에서 ⌘F 로 검색해도 되고, DEVONtechnology에서 무료로 배포하는 EasyFind를 써서 검색해도 된다. (-> EasyFind: direct link for download) Plain text로 작성했으므로 파일명 뿐만 아니라 그 안의 내용까지 잘 검색해 준다.

11259740685_3f3f4b7df6_z.jpg

in Finder.app

11259824573_2ed49be81d_z.jpg

in EasyFind

Debian GNU/Linux and Kubuntu

다시 말하지만 plain text로 note를 만드는 것은 어디에서 해도 된다. 그냥 깔려있는 Kate 같은 프로그램으로 작성해도 된다. 저장만 Dropbox directory 아래에 적당한 이름으로 하면 그냥 sync도 된다. 역시 Notes 검색이 문제인데, 단순하게는 OS X의 Finder.app처럼 KDE environment에서는 Dolphin안에서 검색을 해도 잘 되긴 한다. 하지만 조금 더 나은 검색 환경을 위해 OS X 경우처럼 다른 가능성을 살펴보겠다.

nvpy

Notational VelocitynvALT는 OS X 전용 프로그램이다. Linux에서는 여기에 영감을 얻은 Charl P. Botha가 만들고 BSD License로 배포되고 있는 nvpy가 있다. 작동하는 방식은 Notational Velocity과 거의 같다. Markdown도 지원하고 Dropbox sync도 가능하다. 한글도 모양이 좀 이상하긴 하지만 무난하게 지원된다.

  • Debian GNU/Linux와 Kubuntu에서 설치는 다음 순서로 bash sell(Konsole/Terminal)에서 실행하면 된다.2
    $sudo apt-get install python python-tk python-pip python-markdown
    $sudo pip install nvpy
    
  • Dropbox sync3 위해서는
    1. home directory 아래 .nvpy.cfg 를 만들고
      $touch ~/.nvpy.cfg
      
    2. 적당한 editor로 .nvpy.cfg 파일을 열어, 아래를 적어 넣자.
      [nvpy]
      simplenote_sync = 0
      notes_as_txt = 1
      txt_path = /home/user_id/Dropbox/nv
      

      위에서 user_id 에는 실제 사용자 ID를 적어 넣어야 한다. Dropbox 아래 nv 라는 이름의 directory와 sync 시키는 경우로 설정되어 있음에 유의하자.

  • 실행은 K-runner나 bash sell(Konsole/Terminal)에서 nvpy↩ 하면 된다.
  • 간단한 단축키로는, ⌃?: 단축키 정보 표시, ⌃N: 새 노트, ⌃M: html로 rendering. (주의 html rendering 후 저장은 따로 브라우저 안에서 해야한다.) 자세한 단축키는 여기를 가서 살펴보자.

11243974703_76d77194de_z.jpg

nvpy in Debian GNU/Linux wheezy

Markdown은 지원하는데 MultiMarkdown은 지원하지 않는다 는 점도 염두해 두자.

Emacs user

Aquamacs와 다를 것이 하나도 없다. Deft-mode를 쓰면 된다. 'Aquamacs (or emacs) deft-mode' section 에서 자세히 기술하였다.

iOS

plain text를 편집할 수 있는 어떤 app도 가능하다. Dropbox app을 쓰면 수동으로 올리고 다운받는 것도 가능하긴 하다. 하지만 이렇게 쓰면 너무 불편하다. app 안에서 dropbox sync 기능이 지원되어 그 안에서 sync를 눌러 수행하거나 인터넷에 연결되면 자동으로 수행하는 방식이 가능한 apps 위주로 간단하게 살펴보기로 하자. 아래 링크를 따라가면 정말 많은 apps의 특징들을 비교하여 표로 만들어 놓았으니, 더 많은 정보를 원하면 참고하자.

Free apps

꽤 많은 수의 무료 apps가 있는데, 그 중에 쓸만한 두 개는 WriteroomNocs이다. Writeroom은 OS X 용의 유료 application도 있는데, iOS 용은 현재(<2013-12-08 Sun>) 무료로 배포되고 있다. 자화사의 무료 app인 PlainText의 iOS 7 용의 미발매로 지금 한시적으로 무료로 배포하고 있다. 괜찮은 GUI를 가지고 있으나 Markdown preview 기능은 지원하지 않는다. Nocs는 항상 free로 배포되고 있는데, GUI가 조금 촌스럽긴 하지만 광고도 없고 Markdown도 지원하고 그럭저럭 쓸만하다. 내가 추천하는 free app이다. 그것도 아니면 Notational Velocity나 nvALT, nvpy가 default로 지원하는 Simplenote를 쓰는 것도 한 방법이다. iOS, Android, Kindle을 지원하고 OS X 용도 있다. ID를 만들고 가입하는 절차가 필요하다는 점과 Markdown은 지원하지 않는다는 점을 유의하자.

Non-free apps

아직 $4.99 가격의 평이 좋은 apps도 있다. MultiMarkdown을 지원하는 Element나 그냥 Markdown만 지원하지만 OS X 용도 있는 ByWord이 쓸만해 보인다. 어디를 가도 추천 리스트에 꼽히는 apps다. 나는 둘 다 써보지 못 해서 추천할 수는 없고, 그냥 정보 정도라고 생각했으면 한다.

Nubulous Notes

neb·u·lous
미[nébjuləs] 영[nébjuləs]
【형용사】
(격식)
1. 흐린; 구름 같은; 성운(상)의(nebular).
2. 뚜렷하지 않은(formless), 막연한(vague), 불분명한(in-distinct); 혼란한

출처: Daum 영한사전: nebulous

마지막으로 내가 쓰는 app인 Nubulous Notes이다. 살 때만 해도 $3.99 였는데, 지금은 $7.99 이어서 추천하기에는 조금 부담스러운 가격이 되었다. 그래도 기능은 정말 막강하다. Dropbox sync도 잘 되고, 전체 화면 모드도 최상단의 정보창 부분도 사라지고 꽉차는 진짜 전체 화면 모드로 지원되며, Markdown 뿐만 아니라 html rendering도 지원되서 내 경우는 org-mode에서 html로 export 한 파일을 올려서 보기도 한다. 또한 자주 쓰는 단축키(or macros)를 설정(아래 세 번째)해서 자판 위에 올릴 수 있어서(아래 두 번째) 편집이 매우 용이하다. 내 설정(macros)에서는 (두 번째 그림에서), 1. 을 누르면 '** {오늘 날짜}' 가 찍히고, 2. 를 누르면 '*** ' 가 찍히게 설정되어 있다. 또한 Fonts도 몇 깔려 있어서 원하는 것으로 선택해서 쓸 수 있다.

11313219513_e56c457f2a_z.jpg

무료로 배포되는 lite version도 있으니 한 번 써보고 구매하길 추천한다.

FYI) 언급한 다섯 apps 모두 iPhone과 iPad를 전부 지원하는 univeral app이다.

Epilog

가벼운 note 검색은 nvALTAquamacsDeft-mode로 하지만, 개인적으로는 거의 모든 검색은 DEVONthink로 하고 있다. 가격이 좀 되기 때문에 note만 쓰는데 추천하기는 애매하지만(원래 이런데 쓰라고 나온 게 아니다), 가히 database 관리의 왕이라 불릴 만한 프로그램이다. DEVONthink는 워낙 다루는 블로거들이 많으므로 난 다룰 일이 없을 것 같다.

Markdown을 꼭 쓸 필요는 없다. 나조차도 Emacs org-mode를 주로 쓰고 있다(물론 그것은 내가 Emacs 사용자이기 때문일 수 있다). 그러나 문법이 워낙 간단(?)하고 유명 apps 중에 이를 지원하지 않는 것이 손에 꼽을 정도라 언급했다.

글이라는 것을 쓰는데 자질구레한 설정이 필요 없이 글쓰기에만 집중하게 하는 컨셉의 applications이 많은데, nvALT를 그런 용도로도 쓸 수 있을 것 같다. 원래 이 글은 쓰려고 했던 동기를 주었던 프로그램이다. OS X 사용자는 한번 쯤 써볼 것을 추천한다.


Footnotes:

1

바로 이 사람이 만든 markdown-mode.el 가 Aquamacs 3.0 preview에 기본으로 들어가 있다.

2

Installation은 여기를 참고하였다.

3

Dropbox sync 관련은 여기를 참고하였다. Simplenote 사용자는 여기를 살펴보자.


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Created: 2013-12-14 Sat 16:56

Emacs 23.4.1 (Org mode 8.0.2)

Validate XHTML 1.0

No comments:

Post a Comment