Emacs org-mode基础学习

什么是 org-mode

Org mode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system.

这是官网的标语,我想这一句话,也概括了org-mode的功能.

入门

插入标题

*:一级标题

**:二级标题

...

注意,*号后面要留一个空格

插入链接

[[链接地址][title]]

段落

对于单个回车换行的文本,认为其属于同一个段落。

插入表格

任何以"|"字符的非空开头的都会被当作是表格的一部分.类似输入如下.(多利用TAB键,会自动补全)

| name | age |
|------+-----|
| yzy  | 25  |

表格还可以类似excel那样,可以通过公式,让某列的值是某个函数的结果.非常简单及强大.^_^

快速格式化以逗号,空格,tab等的文本为表格:
选中想要生成表格的内容,然后按:

C-c |

就会格式化为表格了

不同字体

*粗体*

/斜体/

+删除线+

_下划线_

下标: H_2 O

上标: E=mc^2

等宽字:  =git=  或者 ~git~

插入分隔线

五条或以上的”-“就会显示为分隔线

插入块

| 快捷键 | 标签                            |
| s      | #+begin_src … #+end_src         |
| e      | #+begin_example … #+end_example |
| q      | #+begin_quote … #+end_quote     |
| v      | #+begin_verse … #+end_verse     |
| c      | #+begin_center … #+end_center   |
| l      | #+begin_latex … #+end_latex     |
| L      | #+latex:                        |
| h      | #+begin_html … #+end_html       |
| H      | #+html:                         |
| a      | #+begin_ascii … #+end_ascii     |
| A      | #+ascii:                        |
| i      | #+index: line                   |
| I      | #+include: line                 |

插入列表

无序列表项以‘-’、‘+’或者‘*‘开头。

有序列表项以‘1.’或者‘1)’开头。

描述列表用‘::’将项和描述分开。

有序列表和无序列表都以缩进表示层级。只要对齐缩进,不管是换行还是分块都认为是处于当前列表项。

我的Emacs之路

我的Emacs学习之路

说起emacs,肯定会少不了和vi/vim的争论,这两者的所谓的神的编辑器(Emacs)和编辑器之神(Vim/vi)一直是我们这些Programmer的口舌之论.在此,我不多说哪个好哪个坏,我是一个从Vim到Emacs的使用者,只是说下自己使用两者的经历.(这不代表我完全脱离vim,偶尔在服务器上还是使用vim,自己的平时笔记什么的,基本都用Emacs来作为我主要的编辑器).

每个程序员,或多或少最先接触的是vi/vim,因为不少的Gnu/Linux发行版默认安装的就是vi或vim,而且在SSH到服务器上管理时,就更加可想而知了,所以说vi/vim使用者众多,并不是说是使用者自己非常愿意或者说是心甘情愿去学习的,而是因为几乎所有的*nix系统都默认安装的,所以使用者就多了.这就好比Windows系统默认安装了IE一样,在以前的IE霸主时代,代表着说浏览器就是说IE.可是,当有一天,你发现了一个全新的与IE不同的浏览器时,你才知道,原来这个世界,还有这么好用的浏览器,比如Chrome.有人说IE,代表着I’m Evil.试问下,同时真正接触Emacs和Vim两者的又有多少?真正去认真接触,去深入讨论比较的又有多少?

在<一代宗师>里,武功有三种境界,大概意思是:见自己,见天地,见众生.我想许多人还停留在见自己的阶段.不去见下天地,不去见下众生.既然是两大神器,为何都不去多点了解下,然后才去决定到底哪个编辑器适合自己.

使用Emacs,纯属偶然.之前也有打开过Emacs,但是发现它与vi的思维完全不同,emacs没有类似vim那样,有几种不同的模式,还有经常性地按下Esc键,有时候自己都不知道是处在什么模式,就连续按下Esc按好几次来确保自己是处在普通模式,以便可以移动或进入命令模式.从接触Linux起到现在,还是对vim没什么感觉,还买了本来看,但还是学不上手.

就在今天的清明节前几天,也不知道什么原因使自己心血来潮,突然间想接触下Emacs,这方面中文资料比较少,但经过这一个多星期的努力,不敢说精通,但至少上手了,而且感觉良好.至少比起自己以前用vim,更有感觉,而且已经将它作为了日常的主要编辑器.比我的感觉,就像是学了这么久MySQL,突然间接触到了PostgreSQL,那种感觉非常美妙.有人说,你这样子没有什么用吧,贪新厌旧,不如人家精通一个.但是,我却不这样子认为,其实所谓的精通,谁又能真正地精通软件?日日新,月月新的发展的社会和技术,特别是我们这软件行业.谁敢说精通Java?一个行业学到一定程度,就会有一个迷茫期,不知道如何进一步去提高,这时如果接触一些新的知识,转换下角度,也许发现我们以前觉得理所当然的东西,或者已经存在着更好的了,只是自己不愿意去学习而已,或者有那种先入为主的思想,既然我已经有了vim,而且也没有觉得有什么不好.我觉得,这就像开始说的,还在”见自己”的阶段,不去见见天地,怎么知道外面的世界是不是还有更精彩的.

自己也一直在追求一个Best For MySelf的编辑器,我经常要用Markdown,Todo写笔记,偶尔还要生成一下PDF和HTML等笔记,偶尔还要写写HTML,JS,Bash等脚本的东西,甚至写写电影观后感或读书笔记之类的,噢,还有要用表格来记录下自己的生活花费等.在接触Emacs之前,我大多是用Mou,Markdonw Pad,Macdown,Numbers, Excel来做表格,但总是觉得不满意,直到我遇到了Emacs,遇到了Emacs的org-mode,我才觉得,这才是我需要的.不用在各个软件之间来回切换,而且操作方式习惯等都还不同,而用Emacs,”加料不加价”,所有的操作方式都在同一个操作习惯下完成.不同在不同的软件之间来回切换,还有思考方式及操作方式的切换.让你专注于写文字,that’s all.

我对Emacs的初步感觉

优点

  • 无模式,输入即所见.这与vim不同,要不断按Esc来切换,可能我比较笨,总是记不得当前是什么模式,所以总要按Esc好几次.
  • 非常自然的光标移动,与*nix工具使用非常相似.比如在Bash的基础操作与Emacs是相同的(在Mac下更好,Mac的文本编辑操作与Emacs的非常类似),一想起Vim的HJKL的光标移动,我…
  • 非常方便的宏编辑.说真的,虽然vim里也有宏编辑,但基本没有用过,自从用了Emacs后,反而更有意识地倾向使用宏功能.
  • org-mode 这个可以说是神器中的神器.
  • Emacs自带有插件管理器,类似vim的vendle和ubuntu的apt软件包管理器.
  • 在Emacs里可以做非常多的事件.难怪有人说Emacs是一个伪装的操作系统.可以播放无损音乐,看PDF,看图片等更是不在话下.
  • 用一种操作习惯来做各种不同的事情.

缺点

  • 安装完比较多的插件后,启动有点慢.但还可以接受.

Ubuntu下的开发环境配置

Java Env

  1. /etc/profile.d/mybash.sh

     1  export JAVA_HOME="/home/dreameryzy/java/jdk1.8.0_05"
     2  export PATH=$JAVA_HOME/bin:$PATH
     3  export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
     4  export M2_HOME=/home/dreameryzy/java/apache-maven-3.3.1
     5  export PATH=$M2_HOME/bin:$PATH
     6
     7  export LANG="en_US.UTF-8"
     8  export LANGUAGE="en_US.UTF-8"
     9  export LC_CTYPE="zh_CN.UTF-8"
    10  export LC_NUMERIC="zh_CN.UTF-8"
    11  export LC_TIME="zh_CN.UTF-8"
    12  export LC_COLLATE="zh_CN.UTF-8"
    13  export LC_MONETARY="zh_CN.UTF-8"
    14  export LC_MESSAGES="zh_CN.UTF-8"
    15  export LC_PAPER="zh_CN.UTF-8"
    16  export LC_NAME="zh_CN.UTF-8"
    17  export LC_ADDRESS="zh_CN.UTF-8"
    18  export LC_TELEPHONE="zh_CN.UTF-8"
    19  export LC_MEASUREMENT="zh_CN.UTF-8"
    20  export LC_IDENTIFICATION="zh_CN.UTF-8"
    21  export LC_ALL="zh_CN.UTF-8"
    
  2. ~/.bash_aliases

     1  alias g='git'
     2  alias gl='git pull --prune'
     3  alias glog="git log --graph --pretty=format:'%Cred%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cgreen(%cr)%Creset' --abbrev-commit --date=relative"
     4  alias ga='git add'
     5  alias gadd='git add'
     6  alias gpull='git pull'
     7  alias grm='git rm'
     8  alias gf='git fetch'
     9  alias gp='git push'
    10  alias gd='git diff'
    11  alias gc='git commit'
    12  alias gpl='git pull'
    13  alias gcm='git commit -m'
    14  alias gca='git commit -a'
    15  alias gco='git checkout'
    16  alias gb='git branch'
    17  alias gs='git status -sb'
    18  alias grm="git status | grep deleted | awk '{print \$3}' | xargs git rm"
    19  alias gpp='git pull && git push'
    20  alias glol='log --graph --decorate --pretty=oneline --abbrev-commit'
    21  alias gppl='git log --pretty=format:%aN | sort | uniq -c | sort -rn'
    22  alias gu='git reset --hard HEAD^'
    23  alias guncommit='git reset --hard HEAD^'
    24  alias vim="emacs"
    

Install Git and Emacs

  1. Emacs

    1  sudo add-apt-repository ppa:cassou/emacs
    2  sudo apt-get update
    3  sudo apt-get install emacs24
    
    • 安装完Emacs后还要配置好相应的中文输入法问题,经过折腾,总结如下:(ubuntu14.04,fxcti-table-wubi fxcti-table-wubi-large)
      1. 下载*Unity Tweat Tool*这个配置工具
      2. 下载*Yahei Consolas Hybrid*这个字体,并进行安装
      3. 利用1)的工具,Fonts这个tab的配置将所有字体都设置为2)的字体并应用
      4. 还要注意的是设置下locale环境。这个locale设置已经放在Install Java那里了,可以参考一下看看。^_^
  2. Git

    1  sudo add-apt-repository ppa:git-core/ppa
    2  sudo apt-get update
    3  sudo apt-get install git
    

Install Maven

  1. .bashrc

    1  export M2_HOME=/home/dreameryzy/java/apache-maven-3.3.1
    2  export PATH=$M2_HOME/bin:$PATH
    

Install Google Chrome

Install Eclipse

  1. 创建Ubuntu的Unity启动Icon

     1  emacs  ~/.local/share/applications/opt_eclipse.desktop
     2
     3  [Desktop Entry]
     4  Type=Application
     5  Name=Eclipse
     6  Comment=Eclipse Integrated Development Environment
     7  Icon=** something like /opt/eclipse/icon.xpm **
     8  Exec= ** something like /opt/eclipse/eclipse **
     9  Terminal=false
    10  Categories=Development;IDE;Java;
    11  StartupWMClass=Eclipse
    12
    13  nautilus ~/.local/share/applications
    14
    15  finally drop to unity launcher, that's all.
    

Install ia32-libs On Ubuntu 14.04

1  sudo -i
2  cd /etc/apt/sources.list.d
3  echo "deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse" >ia32-libs-raring.list
4  apt-get update
5  apt-get install ia32-libs
6  rm /etc/apt/sources.list.d/ia32-libs-raring.list
7  apt-get update
8  exit