Blog | Phodal - A Growth Engineerhttp://www.phodal.com/blog/2015-02-08T03:35:51.577083+00:00Blog努力只是因为想去做想做的事2015-01-01T15:48:36+00:002015-02-08T03:35:51.577083+00:00Phodal Huanghttp://www.phodal.com/blog/author/root/http://www.phodal.com/blog/try-hard-for-doing-what-to-do/努力只是因为想去做想做的事
> 最初的梦想紧握在手上,最想要去的地方,怎么能在半路就返航。
记得在写[About Me](http://www.phodal.com/about/)的时候有一个TO DO,上面写着:
- 设计师
- 自由职业者
- Dream-Coastline
那些想做的事,怎么能在半路就返航。
##几件小事
曾经抱怨过这个世界,为什么做得比别人好,却连与之相匹配的待遇。
最后明白了。
> 这个社会唯一的公平就是——它是不公平的。
这句话,就这样吧。
###与学校
- 小学的时候是在村上的小学上的,过得开开心心、轻轻松松,唯一不爽的是图书馆里的故事书太少了。特长是数学,因为语文不好,所以数学被认为是特长。便很认真的学,然后就成为特长了。遗憾的是,当时上初中的时候,是按批次分初中的,于是没机会上镇上最好的初中(ps:只有两个中学)。
- 初中的时候发现那些数学比自己差的,突然就变好了,而自己在各种YY成为一个作家,开始去构思小说。然后,又YY成为一个画家,开始去学画画。当时,我们进初中的时候,学校**刚有**了各种实验室。然后,高中的时候只能在镇上的高中上,没努力 + 没钱考上县里的高中,就放弃了。
- 高中的时候沉迷于IT世界。后来的后来,到了西安文理学院——据说是二科垫底的学校。
- 大学的时候,发现原来我是学渣,挂了一堆课。
从今天看来,过去在别人的眼里一直活得像一个Loser,有一天就变成404了。或者说,这像是大部分人的写照。于是,难免有时候,会对自己打上这样一个tag,有一天我们需要-d。
一个成功的master,看上去就是这样的:
![master][5]
没有merge看上去是漂亮的:
只是现实不是理想的,merge过后乱七八糟的。
![merge][6]
现实已经注定我们没有办法渡过一帆风顺的人生。
当然了,你的人生也可能像一个成功的master,没有曲折。
###与IT
> 没有天才
只是因为学得更早罢了。
- 小时候很羡慕那些有笔记电脑的人,记得在参加一场关于LOGO语言的比赛的时候,看到过市里面的孩子用的是笔记本,可羡慕了。长大了,能记得就是那时因为不懂很多命令,最后得了个0分。
- 初中的时候,尝试过拿小霸王的BASIC编过程,只是手上的那本指南少了几页。原本一个功能直接由一个函数实现,后来写了近百行,最后才发现原来是如此。
- 高中的时候,学了会游戏开发,发现数学好还是不错的。学了会操作系统,发现原来自己能看懂。学了会C++,我想以后我想要的就是可以写想要的代码。
- 大学的时候,发现计算机是我的特长,隐隐约约地发现看到大部分计算机专业的书。而后,又大概看了四五百本计算机书。
今天,发现原来当时``没有被自己打败``。如果现在变成16岁,就会成了所谓的天才,会有很多的人说你智商很高。
过去偶尔会逛某知乎,现在发现那群人已经深深被大众心理学影响了。好想说,里面好多的人都被自己的打败。
**如果你还被知乎的某氛围所笼罩,而放弃战斗的时候,想想只是因为他们学习得更早。**
真正的天才,从小就不看书就知晓一切。
当时Linus写Linux的时候,也被骂了一顿。
如果不是,那么只是因为他们渡过了10000小时,而你没有。
##成长
又一次回到理想与现实,看我们看看成长曲线:
![vim][1]
理想中我们和别人的差距和Vim是类似的,于是因为别人成长得比你早,就有了
![compare][3]
在某个点的时候你们的差距达到了最达,于是你放弃了,而那时确有可能是你成长最快的时候。这个差距看上去接近于你的十倍生产力,没有十倍也有三四倍。
当你们处于同一水平的时候,那么谁领悟得更早就越容易跃进,于是有了Emacs:
![Emacs][2]
##努力只是因为想去做想做的事
> 一步步地成长,即使离目标很远,也应该去做。
没有人是天生适合写代码,但是每个人都是天生的解决问题者。
一直有很多想法,很多想做的事,做了、实践了,发现已经写了很多代码。
心里似乎已经没有什么特殊的想法,编程是一种乐趣,而这时的乐趣是为了解决问题。
解决一个又一个的问题,那么路出现了。
你也知道怎么走了。
![github][4]
[待我代码编成,娶你为妻可好](http://www.xuntayizhan.com/person/ji-ke-ai-qing-zhi-er-shi-dai-wo-dai-ma-bian-cheng-qu-ni-wei-qi-ke-hao-wan/)
Follow me: [https://github.com/phodal](https://github.com/phodal)
[1]: /static/media/uploads/vim.png
[2]: /static/media/uploads/emacs.png
[3]: /static/media/uploads/compare.jpg
[4]: /static/media/uploads/github.png
[5]: /static/media/uploads/master.png
[6]: /static/media/uploads/merge.pngEmacs 入门指引(五)扩展入门2013-02-25T19:22:58+00:002014-05-13T20:54:41.872502+00:00Phodal Huanghttp://www.phodal.com/blog/author/root/http://www.phodal.com/blog/Start%2520Emacs%2520step%25205/<h2>
<span>开始之前</span>
</h2>
<p>
<span>由于大多数扩展的使用方法大多是一样的,也因此,我们以此为例介绍,最后的效果图(使用的主题是:color-theme-classic)</span>
</p>
<p>
<img alt="" src="http://my.csdn.net/uploads/201207/10/1341889890_3336.jpg"/>
</p>
<p>
</p>
<h2>
<span>开始工作</span>
</h2>
<p>
</p>
<p>
<span>Google搜索获得Color-theme:</span>
</p>
<h2>
<span>获取Color-theme</span>
</h2>
<p>
<span>官方网址:<a href="http://www.nongnu.org/color-theme">http://www.nongnu.org/color-theme/</a></span>
</p>
如果是GNU/Linux系统,比如Ubuntu等,可以这样做
<p>
</p>
<pre class="html" name="code"># Debian and derived
apt-get install emacs-goodies-el
# Gentoo
emerge color-theme
# Slackware via SBo
sbopkg -i color-theme-el</pre>
<p>
<span>下载获取的文件,解压到设置的HOME目录,也就是color-theme,放到.emacs.d文件夹下。然后添加下面的代码到.emacs文件</span>
</p>
<p>
<span></span>
</p>
<pre class="html" name="code">(add-to-list 'load-path "/path/to/color-theme.el/file")
(require 'color-theme)
(eval-after-load "color-theme"
'(progn
(color-theme-initialize)
(color-theme-hober)))</pre>
<p>
<span>/path/to/color-theme.el指的是路径,例如如果我们设置的home是emacs.config那么,就应该是~/.emacs.d/color-theme-6.0</span>
</p>
<p>
</p>Emacs 入门指引(四) Hello,World2013-02-25T19:12:36+00:002014-05-14T21:09:15.272363+00:00Phodal Huanghttp://www.phodal.com/blog/author/root/http://www.phodal.com/blog/Start%2520Emacs%2520step%25204/<h2>
<span>开始之前</span>
</h2>
<div>
<ul>
<li>
<span>如果是类Unix系统,请确定装有GCC,CC或者类似的编译器,当然有其他语言的也可以。比如python</span>
</li>
<li>
<span>Windows如果没有GCC,试着使用cygwin安装。</span>
</li>
<li>
<span>当以上两个都不想时,试着用python,perl或者其他脚本语言。</span>
</li>
</ul>
</div>
<h2>
<span>开始工作</span>
</h2>
<p>
<span>启动Emacs,用你喜欢或者习惯的方式。Windows可以加emacs加入环境变量,即PATH</span>
</p>
<h2>
<span>Emacs的操作方式</span>
</h2>
<div>
<ul>
<li>
<span>使用鼠标操作,很明显体现不了Emacs的优势</span>
</li>
<li>
<span>各种C-x M-x相结合,比较难记</span>
</li>
<li>
<span>使用命令行,例如find-file是等同于C-x C-f,也就是字面如find-file所表示。</span>
</li>
</ul>
</div>
<p>
<span>因此相比之下,第二种和第三种方式相结合会比较顺手</span>
</p>
<h2>
<span>开始工作</span>
</h2>
<p>
<span>常用的窗口操作,右边是命令按M-x可以输入,等同于快捷键</span>
</p>
<div>
<table>
<thead>
<tr>
<th>
</th>
<th>
</th>
<th>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
C-x 0
</td>
<td>
delete-window
</td>
<td>
关闭一个窗口
</td>
</tr>
<tr>
<td>
C-x 1
</td>
<td>
delete-other-windows
</td>
<td>
关闭其他窗口
</td>
</tr>
<tr>
<td>
C-x 2
</td>
<td>
split-window-vertically
</td>
<td>
垂直分割窗口成两部分
</td>
</tr>
<tr>
<td>
C-x 3
</td>
<td>
split-window-horizontally
</td>
<td>
水平分割窗口成两部分
</td>
</tr>
<tr>
<td>
C-x o
</td>
<td>
other-window
</td>
<td>
切换到另一个窗口
</td>
</tr>
</tbody>
</table>
</div>
<p>
<span>so,让我们开始分割成三部分,先垂直再水平,也就是先'C-x 3' 'C-x 2',如图所示:</span>
</p>
<p>
<span><img alt="" src="http://my.csdn.net/uploads/201207/08/1341723617_8061.jpg"/><br/>
</span>
</p>
<p>
<span>然后在第一个窗口,'M-x'然后'find-file',或者'C-x C-f',结果如图所示:</span>
</p>
<p>
<span><img alt="" src="http://my.csdn.net/uploads/201207/08/1341723796_1927.jpg"/><br/>
</span>
</p>
<p>
<span>接着在切换到另一个窗口('C-x o',或者'M-x',然后输入'other-window'),再输入eshell,或者shell,如果是windows会切换到cmd也就是命令提示符,如图。</span>
</p>
<p>
<span><img alt="" src="http://my.csdn.net/uploads/201207/08/1341723964_9622.jpg"/></span>
</p>
<p>
<span>然后,新建个文件,'find-file',再输入路径和文件名,比如我的'D:\Desktop\hello.c。</span>
</p>
<p>
<span>接着'M-x',输入'C-mode',也就是开始C模式,有语法加亮等功能。</span>
</p>
<p>
<span>接着输入:</span>
</p>
<p>
<span></span>
</p>
<pre class="html" name="code"> #include<stdio.h>
<span> </span> int main(){
<span> </span> printf("Hello,world\n");
<span> </span>}
</pre>
完成后,'M-x',再输入'save-buffer',或者'C-x C-s'。
<p>
</p>
<p>
<span>然后切换到eshell或者shell窗口,输入'gcc hello.c -o hello',如果是windows则是'gcc hello.c -o hello.exe'</span>
</p>
<p>
<span>再执行它'./hello',或者windows输入'hello',即可,最后如图所示:</span>
</p>
<p>
<span><img alt="" src="http://my.csdn.net/uploads/201207/08/1341724391_9286.jpg"/><br/>
</span>
</p>
<p>
<span>如果没有gcc,有python,那么就如上图所示的那样。</span>
</p>Emacs 入门指引(三) 开始使用2013-02-23T22:27:34+00:002014-05-16T17:21:40.442836+00:00Phodal Huanghttp://www.phodal.com/blog/author/root/http://www.phodal.com/blog/Start%2520Emacs%2520step%25203/使用之前
如果是windows,我们建议安装cygwin。这样可以渐渐摆脱对鼠标的依赖,当然了主要目的是与cygwin整合。
cygwin,以及能做什么
cygwin是一个在windows平台上运行的unix模拟环境;
Cygwin包括了一套库,该库在Win32系统下实现了POSIX系统调用的API;还有一套GNU开发工具集(比如GCC、GDB),这样可以进行简单的软件开发;还有一些UNIX系统下的常见程序。
2001年,新增了X Window System。另外还有一个名为MinGW的库,可以跟Windows本地的MSVCRT库(Windows API)一起工作。MinGW占用内存、硬盘空间都比较少,能够链接到任意软件,但它对POSIX规范的实现没有Cygwin库完备。
Windows的Dos Scripts功能非常薄弱,命令行工具也非常少;如果您对Linux比较熟悉,那么Cygwin可以帮助您在Windows下面使用强大的Bash,以及使用数量繁多的Linux命令,通过Scripts,可以更加高效的完成系统管理工作
如果您刚进入Linux的世界,使用Cygwin可以让你在Windows下面练习Linux的Bash,以及常用工具。而不需要安装Linux,也不用担心Windows被破坏。
安装cygwin
下载setup.exe
安装Cygwin,您需要下载setup.exe,此程序根据您选择的软件包,再从互联网下载所有组件。
官网:http://cygwin.com
点此下载从官网下载setup.exe
安装方法参见:http://www.cygwin.cn/site/install/
双击setup.exe
按照安装提示“下一步”
选择从“互联网”安装:
选择安装的路径,一般是C:\Cygwin,选择本地临时目录,用于存放下载的软件;选择您连接互联网的方式,一般选“直接连接”就可以了。
选择下载源:(选择163镜像)
根据安装提示,选择需要安装的软件包,完成安装。
开始使用
启动Emacs
直接打emacs, 如果有X-windows就会开视窗.
如果不想用X 的版本,就用 emacs -nw (No windows)起动.
符号说明
C-X 表示按住CTRL键, 然后按X, 再把CTRL, X一起放开.
M-X META META
在没有META键的电脑上, M-X 等于先按 ESC键, 接着按 X键.
Sun上面META键就是菱形的那个键.
有些系统META键就是ALT键.(或者某一边的ALT键)
C-X或 M-X的X没有大小写分别.
Emacs按键命令基本上是一串C-和M-组成的.
超过两个以上的按键命令, Emacs会在屏幕最下面一行显示你按过什么.
这一行叫作mini buffer
结束Emacs
`C-x C-c' -- 退出Emacs
或者在minibuffer输入'kill-emacs',在输入前需要按下M-x
如果当前有需要保存的文件,那么应该是'save-buffers-kill-emacs'Emacs 入门指引(二) 安装及简单的配置2013-02-23T10:15:28+00:002014-05-14T08:07:11.730806+00:00Phodal Huanghttp://www.phodal.com/blog/author/root/http://www.phodal.com/blog/emacs-quick-start-install-simple-configure/获取Emacs
现在的版本是:24.1,详细可见:http://www.gnu.org/software/emacs/。支持的操作系统有:
- GNU FreeBSD Solaris MS Windows
- GNU/Linux NetBSD Mac OS X MS DOS
- GNU/kFreeBSD OpenBSD AIX
获取Emacs
- Windows: http://ftp.gnu.org/pub/gnu/emacs/windows/ Mac OsX:
- http://emacsformacosx.com/ Unix/Linux:可使用自带的软件包管理。例如Ubuntu的:sudo
- apt-get install Emacs
安装方法:Windows直接解压就可以使用。Ubuntu安装完即可使用,Mac OSX同。如果下载的是源码包 (ftp://ftp.gnu.org/gnu/emacs/),则需要编译。
配置Emacs
Windows下需要对进行Home目录,修改及配置。
如果设置了HOME环境变量,那么就用它的值作为home目录~
如果存在注册表键值HKCU\SOFTWARE\GNU\Emacs\HOME,就用它的值作为home目录~
如果存在注册表键值HKLM\SOFTWARE\GNU\Emacs\HOME,就用它的值作为home目录~(和2的区别是,2只是针对当前用户的注册表路径,3则是针对所有用户)
如果存在C:\.emacs,就用C:\作为home目录~
如果以上都不存在的话,就使用\Users\\AppData\Roaming作为home目录~(对于XP和较早windows用户,需要到Documents and Settings目录下去找)
Mac OSX,及类Unix系统都是是在默认的用户目录下,也就是HOME下的个人文件夹。默认的emacs配置文件有三个(详细可参考:http://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html即:
~/.emacs
~/.emacs.el
~/.emacs.d/init.el
我们通常用.emacs文件进行配置,不过一些比较主流的是放置于.emacs.d文件夹下。不过虽然是叫配置文件,官方的叫法是初始化文件。网上搜索的,可参考的一些简单的自定义及配置:
<pre><code class="lisp">
(set-cursor-color "white")
;; 鼠标颜色设置为白色
(set-mouse-color "white")
;; 设置背景颜色和字体颜色
(set-foreground-color "white")
(set-background-color "darkblue")
;; 设置另外一些颜色:语法高亮显示的背景和主题,区域选择的背景和主题,二次选择的背景和选择
(set-face-foreground 'highlight "white")
(set-face-background 'highlight "blue")
(set-face-foreground 'region "cyan")
(set-face-background 'region "blue")
(set-face-foreground 'secondary-selection "skyblue")
(set-face-background 'secondary-selection "darkblue")
;;设置日历的一些颜色
(setq calendar-load-hook
'(lambda ()
(set-face-foreground 'diary-face "skyblue")
(set-face-background 'holiday-face "slate blue")
(set-face-foreground 'holiday-face "white")))
;;外观设置
;;去掉工具栏
(tool-bar-mode nil)
;;去掉菜单栏,我将F10绑定为显示菜单栏,万一什么东西忘了,需要菜单栏了可以摁F10调出,再摁F10就去掉菜单
(menu-bar-mode nil)
;;不要滚动栏,现在都用滚轴鼠标了,可以不用滚动栏了
(scroll-bar-mode nil)
;;备份设置
;;emacs还有一个自动保存功能,默认在~/.emacs.d/auto-save-list里,这个非常有用,我这里没有改动,具体可以参见Sams teach yourself emacs in 24hours(我简称为sams24)
;;启用版本控制,即可以备份多次
(setq version-control t)
;;备份最原始的版本两次,记第一次编辑前的文档,和第二次编辑前的文档
(setq kept-old-versions 2)
;;备份最新的版本五次,理解同上
(setq kept-new-versions 5)
;;删掉不属于以上7中版本的版本
(setq delete-old-versions t)
;;设置备份文件的路径
(setq backup-directory-alist '(("." . "~/.emacs.tmp")))
;;备份设置方法,直接拷贝
(setq backup-by-copying t)
;;自动补全功能,这事从王垠的网站直接Copy过来的,引用一些他对此的说明
;;你可以设置以下 hippie-expand 的补全方式。它是一个优先列表, hippie-expand 会优先使用表最前面的函数来补全
;;这是说,首先使用当前的buffer补全,如果找不到,就到别的可见的窗口里寻找,如果还找不到,那么到所有打开的buffer去找,如果还……那么到kill-ring里,到文件名,到简称列表里,到list,…… 当前使用的匹配方式会在 echo 区域显示。
;;特别有意思的是 try-expand-line,它可以帮你补全整整一行文字。我很多时后有两行文字大致相同,只有几个字不一样,但是我懒得去拷贝粘贴以下。那么我就输入这行文字的前面几个字。然后多按几下 M-/ 就能得到那一行。
(global-set-key [(meta ?/)] 'hippie-expand)
(setq hippie-expand-try-functions-list
'(try-expand-line
try-expand-line-all-buffers
try-expand-list
try-expand-list-all-buffers
try-expand-dabbrev
try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-complete-file-name
try-complete-file-name-partially
try-complete-lisp-symbol
try-complete-lisp-symbol-partially
try-expand-whole-kill))
;;时间戳设置(time-stamp),设定文档上次保存的信息
;;只要里在你得文档里有Time-stamp:的设置,就会自动保存时间戳
;;启用time-stamp
(setq time-stamp-active t)
;;去掉time-stamp的警告?
(setq time-stamp-warn-inactive t)
;;设置time-stamp的格式,我如下的格式所得的一个例子:
(setq time-stamp-format "%:u %02m/%02d/%04y %02H02M02S")
;;将修改时间戳添加到保存文件的动作里。
(add-hook 'write-file-hooks 'time-stamp)
;;时间显示设置
;;启用时间显示设置,在minibuffer上面的那个杠上(忘了叫什么来着)
(display-time-mode 1)
;;时间使用24小时制
(setq display-time-24hr-format t)
;;时间显示包括日期和具体时间
(setq display-time-day-and-date t)
;;时间栏旁边启用邮件设置
(setq display-time-use-mail-icon t)
;;时间的变化频率,单位多少来着?
(setq display-time-interval 10)
hvj的讨论和推广emacs贴3:
这里继续帖我得hvj-basic-config.el,讲另外一些比较零碎的设置
引用:;;启用minibuffer,好像是默认设置吧
(minibuffer-electric-default-mode 1)
;;启用部分补全功能,如输入M-x q r r相当于M-x query-replace-regexp
(partial-completion-mode 1)
;;在minibuffer里启用自动补全函数和变量
(icomplete-mode 1)
;;所有的问题用y/n方式,不用yes/no方式。有点懒,只想输入一个字母
(fset 'yes-or-no-p 'y-or-n-p)
;;允许minibuffer自由变化其大小(指宽度)
(setq resize-mini-windows t)
;;当寻找一个同名的文件,自动关联上那个文件?
(setq uniquify-buffer-name-style 'forward)
;;在emacs读man文档时,使用当前buffer
(setq Man-notify-method 'pushy)
;;鼠标自动避开指针,如当你输入的时候,指针到了鼠标的位置,鼠标有点挡住视线了
(mouse-avoidance-mode 'animate)
;;允许自动打开图片,如wiki里面
(auto-image-file-mode)
;;可以操作压缩文档
(auto-compression-mode 1)
;;在minibuffer上面可以显示列号
(column-number-mode t)
;;显示默认的文档的宽度,看起来比较舒服?
(setq default-fill-column 60)
;;指针不要闪,我得眼睛花了
(blink-cursor-mode -1)
(transient-mark-mode 1)
;;当指针到一个括号时,自动显示所匹配的另一个括号
(show-paren-mode 1)
;;是用滚轴鼠标
(mouse-wheel-mode t)
;;去掉烦人的警告铃声
(setq visible-bell nil)
;;滚动页面时比较舒服,不要整页的滚动
(setq scroll-step 1
scroll-margin 3
scroll-conservatively 10000)
;;设定句子结尾,主要是针对中文设置
(setq sentence-end "\\([¡££¡£¿]\\|¡¡\\|[.?!][]\"')}]*\\($\\|[ \t]\\)\\)[ \t\n]*")
(setq sentence-end-double-space nil)
;;去掉Emacs和gnus启动时的引导界面
(setq inhibit-startup-message t)
(setq gnus-inhibit-startup-message t)
;;当指针移到另一行,不要新增这一行?d
(setq next-line-add-newlines nil)
;;在文档最后自动插入空白一行,好像某些系统配置文件是需要这样的
(setq require-final-newline t)
(setq track-eol t)
;;使用C-k删掉指针到改行末的所有东西
(setq-default kill-whole-line t)
;;设定删除保存记录为200,可以方便以后无限恢复
(setq kill-ring-max 200)
;;增大使用查找函数和变量的寻找范围
(setq apropos-do-all t)
;;是用aspell程序作为Emacs的拼写检查成学
(setq-default ispell-program-name "aspell")
;;使用narrow功能时的一个设置
(put 'narrow-to-region 'disabled nil)
;;启动Emacs自动设置为两个窗口(上下各一个)
(split-window-vertically)
;;改变emacs标题栏的标题
(setq frame-title-format "%b@vj.org")
;;允许emacs和外部其他程序的粘贴
(setq x-select-enable-clipboard t)
</code></pre>
而,我们知道Emacs更主要的是在于其扩展,以及不断增长的特性。我们可以用些来增加一些mode及功能。Emacs 入门指引(一) Emacs简介2013-02-20T10:35:46+00:002014-05-14T22:09:44.914244+00:00Phodal Huanghttp://www.phodal.com/blog/author/root/http://www.phodal.com/blog/emacs-quick-emacs-intro/<h2>
Emacs是什么?
</h2>
<p>
<span>Emacs是一种功能超强的文本处理程序,或者文本编辑器。作者Richard Stallman(主页:<a href="http://stallman.org/">http://stallman.org/</a>)。基础部分是使用C语言编写的,其他部分是用Emacs Lisp编写的。深层次的话,C语言构成了emacs的底层,包括Emacs Lisp的解释器。而Emacs Lisp则是负责了Emacs Lisp的建筑物上层,也就是包括我们平时用的扩展、界面等。</span>
</p>
<p>
<span>Emacs只是一文本编辑器,这和Windows上的Visual Studio等等不同的是,VS集成的是完整的开发功能,包括编译器、编辑器、调试器等等。而Emacs只是一个文本编辑器,当然不要因此而是否定Emacs的强大。Emacs可以做的:</span>
</p>
<div>
<ul>
<li>
<span> 收发电子邮件、通过FTP/TRAMP编辑远程档案、通过Telnet登录主机、上新闻组、登陆IRC和朋友交流</span>
</li>
<li>
<span> 查看日历、撰写文章大纲</span>
</li>
<li>
<span> 对多种编程语言的编辑、调试程序,结合GDB,EDebug等。支持C/C++,Perl,Python,Lisp等等</span>
</li>
<li>
<span> 玩游戏、计算器、记日记</span>
</li>
<li>
<span> 煮咖啡、管理日程,Task,ToDo,约会等、个人信息管理、目录管理</span>
</li>
<li>
<span> 文件比较、阅读info和man文档、浏览网站</span>
</li>
</ul>
</div>
<p>
</p>
<p>
<span>他确实只是一个文本处理器,你可以将之视为伪编辑器的操作系统。而这是因为其与unix/linux系统的整合程度而起的,换句说,如果Richard Stallman可以早点开发出内核,而不是等到Linux的话。Linux/Unix的设计思想之一就是:简单,使用足够的小程序来支撑起这世界,而是Emacs所做的就是利用这些工具,来打造自己,完成自己的系统。因而,Emacs强大的另一点是,有足够的扩展,无论是过去的auto-complete或者是现在的Android-mode等等。故而,我们可以在《架构之美》之中看到关于其的介绍,而是他的特性也是如此,滋长的特性是其优势。</span>
</p>
<p>
<span>也因些,Emacs是Unix世界的两大神器之一,另外一个是Vim/Vi。</span>
</p>
<p>
<span><br/>
</span>
</p>
<h2>
Emacs是什么样的?
</h2>
<p>
<span>如图:</span>
</p>
<p>
<img alt="" src="http://my.csdn.net/uploads/201207/07/1341651388_4039.jpg"/><br/>
</p>
<p>
<span>Emacs的设计预想是需要时只需要启动一次,然后一直运行着。我们可以使用C-x-2,C-x-3对窗口进行分割,打开多个文件进行编辑。Emacs的三种基本对象是:帧(frame)、窗口(window)、缓冲区(buffer)。</span>
</p>
<p>
<span>帧是Emacs对计算机图形界面中窗口的称呼。将上图分为三个部分,分别是显示了Emacs的介绍,可浏览的目录列表及展示Lisp交互界面的缓冲区(buffer)。而是最下面的那一行,则是输入命令的地方。</span>
</p>
<p>
<span>窗口是帧的一部分,要创建一个新的窗口,只能通过将原有窗口分成两个,当关闭某个窗口时,将把空间给邻近的窗口。这样的结果是一个帧中的窗口始终会填满整个帧的内容。只有对键盘命令进行响应,窗口是轻量级的,在使用时会频繁地创建和关闭。</span>
</p>
<p>
<span>缓冲区是用来保存可编辑的文本内容。Emacs将会把打开的文本内容保存在缓冲区中,但缓冲区中的内容并不一定必须与某个文件关联:它可能包括搜索结果、在线文档,以及刚输入还没有保存到任何文件中的内容。每个窗口将显示某些缓冲区的内容,而一个缓冲区可能保存0个、1个或多个窗口。</span>
</p>
<p>
<span>还有一个很重要的地方,那就是除了每个窗口底部的模式行以及其他类似的东西,Emacs在向用户显示文本信息时会将其放在缓冲区中,然后将缓冲区的内容显示在某些窗口中。帮助信息、搜索结果、目录列表以及其他类似的的内容,保存在缓冲区中的内容都有相应的名称。</span>
</p>跨平台的emacs vim配置2012-12-18T19:08:13+00:002014-05-14T16:22:32.509370+00:00Phodal Huanghttp://www.phodal.com/blog/author/root/http://www.phodal.com/blog/cross-platform-emacs-vim-configure/<p>最后的效果如下图所示,这个是emacs,用的是purcell的配置。</p>
<p><img alt="" src="http://hi.csdn.net/attachment/201202/17/0_1329450794pm8e.gif"/></p>
<p>这个是Amir Salihefendic的,因为都是来自国外的,所以相对比比较好些,而且也省得自己配置了。</p>
<p><img alt="" src="http://hi.csdn.net/attachment/201202/17/0_1329450787pPKW.gif"/></p>
<p>Emacs的配置</p>
<p> </p>
<div class="dp-highlighter bg_plain">
<div class="bar">
<div class="tools"><strong>[plain]</strong> <a class="ViewSource" href="http://blog.csdn.net/gmszone/article/details/7267269" title="view plain">view plain</a><a class="CopyToClipboard" href="http://blog.csdn.net/gmszone/article/details/7267269" title="copy">copy</a><a class="PrintSource" href="http://blog.csdn.net/gmszone/article/details/7267269" title="print">print</a><a class="About" href="http://blog.csdn.net/gmszone/article/details/7267269" title="?">?</a>
<div></div>
</div>
</div>
<ol start="1">
<li class="alt">git clone git://github.com/purcell/emacs.d.git </li>
<li>git submodule update --init </li>
</ol></div>
<p>这个是主要的代码,需要cd到自己的home目录,然后第一行完成后,再mv emacs.d .emacs.d。接着再执行第二句,也就是如果你熟悉版本控制的话这个是相对很容易理解的。</p>
<p> </p>
<p>之后以推荐这个是因为这个不断在更新,而且配置得相对比较好,同时还有包管理。类似于yast2及aptitude之类的很方便,比如我们需要安装android-mode的话,也是比较简单的。</p>
<p>android emacs的配置</p>
<p>alt+x</p>
<div class="dp-highlighter bg_plain">
<div class="bar">
<div class="tools"><strong>[plain]</strong> <a class="ViewSource" href="http://blog.csdn.net/gmszone/article/details/7267269" title="view plain">view plain</a><a class="CopyToClipboard" href="http://blog.csdn.net/gmszone/article/details/7267269" title="copy">copy</a><a class="PrintSource" href="http://blog.csdn.net/gmszone/article/details/7267269" title="print">print</a><a class="About" href="http://blog.csdn.net/gmszone/article/details/7267269" title="?">?</a>
<div></div>
</div>
</div>
<ol start="1">
<li class="alt">package-list-packages </li>
<li>package-install </li>
</ol></div>
<p>很是方便,接着再输入android-mode,结果如图所示:</p>
<p> </p>
<p><img alt="" src="http://hi.csdn.net/attachment/201202/17/0_13294514740p6F.gif"/></p>
<p>在purcell的配置里面相当的不错,然后再find-file: .emacs.d/elpa/android-mode-0.1/android-mode.el这个文件修改一下android-sdk的路径,如图1所示。</p>
<p>接着再alt+x下,android-mode启用,于是:</p>
<p> </p>
<div class="dp-highlighter bg_plain">
<div class="bar">
<div class="tools"><strong>[plain]</strong> <a class="ViewSource" href="http://blog.csdn.net/gmszone/article/details/7267269" title="view plain">view plain</a><a class="CopyToClipboard" href="http://blog.csdn.net/gmszone/article/details/7267269" title="copy">copy</a><a class="PrintSource" href="http://blog.csdn.net/gmszone/article/details/7267269" title="print">print</a><a class="About" href="http://blog.csdn.net/gmszone/article/details/7267269" title="?">?</a>
<div></div>
</div>
</div>
<ol start="1">
<li class="alt">android-start-emulator </li>
</ol></div>
<p>帅吧,对于这个老古董来说,很是不错了。很犀利的速度,很是快捷的方式。很多功能强大的功能就在自己去发掘了,所以咯,如果你有什么新的发现,可以和我们分享一上,不过这个很强大咯。</p>
<p> </p>
<p>vim的配置</p>
<p>参考的博客地址:<a href="http://amix.dk/blog/post/19486#The-ultimate-vim-configuration-vimrc">http://amix.dk/blog/post/19486#The-ultimate-vim-configuration-vimrc</a></p>
<p> </p>
<div class="dp-highlighter bg_html">
<div class="bar">
<div class="tools"><strong>[html]</strong> <a class="ViewSource" href="http://blog.csdn.net/gmszone/article/details/7267269" title="view plain">view plain</a><a class="CopyToClipboard" href="http://blog.csdn.net/gmszone/article/details/7267269" title="copy">copy</a><a class="PrintSource" href="http://blog.csdn.net/gmszone/article/details/7267269" title="print">print</a><a class="About" href="http://blog.csdn.net/gmszone/article/details/7267269" title="?">?</a>
<div></div>
</div>
</div>
<ol class="dp-xml" start="1">
<li class="alt">$ mkdir ~/.vim_runtime </li>
<li>$ svn co svn://orangoo.com/vim ~/.vim_runtime </li>
<li class="alt">$ cat ~/.vim_runtime/install.sh </li>
<li>$ sh ~/.vim_runtime/install.sh <system> </li>
<li class="alt"> <sytem> can be `mac`, `linux` or `windows` </li>
</ol></div>
<p>因为vim启动比较快,所以小文件就用这个解决这些问题了,不像emacs可以集成开发环境了。比如,开发django的时候,多窗口的时候,可以用这些了。启用多个窗口,同时还可以用shell,w3m等等。</p>