2012-12-31
Emacs 编译 Visual Studio (C++) 工程项目

在 Windows 开发比较大型的 C/C++ 项目,往往还是得借助微软的 Visual Studio (C++),但对于重度 Emacs 使用者,离开了用起 VC 来总是各种蹩脚。关于如何在 Emacs 中搭建 VC 的开发环境,fangzhzh 的一篇博文 《Emacs 中开发 VC 程序》 已经做了比较好的讨论。唯一不足的地方是对 Emacs 调用 VC 编译缺乏更深入的探讨。编译 VC 基本上还是要靠微软自家的工具,经过我的摸索,一共有三种不同的方案,针对不同的需要,用户可以自行选择。

总体说来,这三种方案各自的特点比较如下:

Read More

2012-10-07
C-c ' 在 org-mode 中的妙用

从 org-mode 8.x 开始,这两个功能已经无效。

1 用途一:编辑代码

在org-mode中可以通过键入 <s 快速输入代码引用段,得到下面的内容:

1
2
3
#+BEGIN_SRC

#+END_SRC

但当我们在里面编辑的时候,会发现tab无法缩进。一种解决方法是通过键入 C-q <Tab> 缩进,但如果整份文档都需要重排,一行一行的敲肯定很费力。这时候可以在代码段中键入 C-c ' ,此时Emacs会新建一个buffer,原来代码段的内容会自动粘贴到这个buffer里,此时会发现这个buffer的Minor Mode刚好是相应语言的Mode,所以可以很自在的完成各种熟悉的代码编辑工作。完成后再次按 C-c ' 返回。

Read More

2012-08-31
org-mode的中文beamer幻灯片模板

org-mode 是 Emacs 的杀手级应用,使用它可以用来做很多事情,如GTD、做笔记等。它可以导出多种格式的文件,包括HTML、LaTeX、Freemind、DocBook等,因此,通过定制之后,编写一份org文件就等于同时编写(或者排版)了多种格式文件,而且每种格式的文件又可以各自拥有不同的排版效果。这正是 org-mode 精妙之处。

比如,我最喜欢的做法是先在 Emacs 里打开 evernote-mode 写一份 org-mode 的笔记,然后 C-c C-e H 导出成 HTML 代码,并发布到我的博客中或者加入到我的 wiki 里。如果有需要,我还可以 C-c C-e l 生成 LaTeX 代码并编译成 PDF 文件。

用 org-mode 制作 Beamer 幻灯片也很简单,官方已经给出了 详细的教程 ,照着一步步做即可。官方的教程并没有针对中文进行定制,因此笔者写了一个org-mode的Beamer中文模板,这是在 Carsten Dominik的例子 的基础上修改得到的。

Read More

2012-07-11
Hacking Logitech K350 Keyboard

1 前言

作为一个重度Emacs使用者,我使用电脑的大部分时间都在用键盘。“工欲善其事,必先利其器”,为了避免患上RSI,我用上了罗技K350键盘。

罗技K350是一款不错的人体工学键盘,它具有下面几个优点:

  1. 人体工学键盘。采用曲形键盘设计,因此手可以很自然的放在键盘上面。具有较大的掌托,有助于减少手腕的疲劳。提供两段式可调节键盘支架,可以按照喜好调整键盘高度;
  2. 极尽奢华的功能键。K350具有16颗独立的功能键,可以实现vista3D浏览(在XP系统下为应用程序切换键)、vista照片库(在XP系统下为我的图片)、媒体播放器、计算器、计算机休眠等功能。另外,通过右手侧的“Fn”键与F1-F12键组合,还可以实现快速启动word文档程序、excel表格程序、日历、IE、浏览器、MSN、电源状态检测以及光盘弹出开关。并且,这些功能键都是可编程的,通过使用官方的SetPoint工具,可以定制这些按键对应的功能;
  3. Unifying无线优联技术,通过简单的设置,可以和其他支持Unifying的外设共用一个接收器,因此和我的M505鼠标可以天衣无缝的配合;
  4. Ctrl、Alt键都较大,适合Emacser使用。
Read More

2011-12-25
Emacs的缩写补全

有些编辑器(比如Edit Plus)可以实现缩写补全,允许我们把经常要输入一大段相同的文本或者代码用简单的文本代替,这样可以大大提高我们的编辑效率。Emacs也提供了单词简写(word abbreviation)的支持。

动态简写(Dynamic Abbreviations)

如果你经常要拼写一个很长的词汇,比如“abbreviation”,你可以在输入一遍这个单词之后,在碰到要拼写这个单词的时候使用动态简写功能来偷懒:先给出单词的前面几个字母,然后使用Emacs的动态简写功能来帮助我们把它补全。

要注意的是,这个动态的简写功能和前篇博文提到的Ispell单词补全原理不一样,Ispell的单词补全功能依据的是Ispell的辞典,而动态简写的功能依据的是在Emacs本次运行期间的所有缓存中查找位置最靠近的一个单词。

Read More

© 2021 wzpan