本文假设你已经成功安装了ibus输入法框架,并且已经把自己理想的输入法(ibus其实是一个输入法管理器,它可以有很多种输入法)加到了ibus中。并且设置了启动快捷键(我用的是Ctrl+=,因为Ctrl+Space等都是Emacs中常用的按键绑定)。
这里要解决的是Emacs中不能方便的调用ibus的输入法的问题。
问题的主要原因是:Emacs会捕获所有按键信息,也就是说它会拦截发往Linux的按键。
解决的方法是使用一个工具:IBusMode
主页在这:http://www.emacswiki.org/emacs/IBusMode
系统要求是:
emacs22 or emacs23
python (>= 2.5)
ibus (>= 1.2)
python-xlib
下载ibus-el包:https://launchpad.net/ibus.el/0.3/0.3.2/+download/ibus-el-0.3.2.tar.gz
解压到emacs中的loadpath目录中(也可以放入任意目录下,然后在.emacs中load进来)。
>>>ls ~/Download #下载到此目录
>>>mv ~/Download/ibus-el-0.3.2.tar.gz ~/.emacs.d/ #移动文件
>>>cd ~/.emacs.d/ #进入.emacs.d目录,emacs中常用于放置扩展包的目录
>>>tar zxvf ibus-el-0.3.2.tar.gz #解压
>>>rm ibus-el-0.3.2.tar.gz
~/.emacs.d/ibus/目录应该是这样的
打开.emacs文件
输入以下内容
;;ibus
(add-to-list 'load-path "~/.emacs.d/ibus/")
(require 'ibus)
(add-hook 'after-init-hook 'ibus-mode-on)
(global-set-key (kbd "C-=") 'ibus-toggle) ;;这里既是绑定上面设置的C+=快捷键到ibus中
(ibus-define-common-key ?\C-\s nil)
;; Use C-/ for Undo command
(ibus-define-common-key ?\C-/ nil)
;; Change cursor color depending on IBus status
(setq ibus-cursor-color '("red" "blue" "limegreen"))

如果这样设置没有用,则看看是不是没有按安装python(>=2.5)和python-xlib
如果没有则安装一下
>>>sudo apt-get install python
>>>sudo apt-get install python-xlib
看看我的界面
后记:
中文输入历来是linux平台被诟病的方面。幸好,ibus输入法框架可以解决我们的燃眉之急。
当然,我们不能以window中的那些强大的中文输入法为标准来评价ibus了,因为它们的差距还是比较大的。
进入Dired模式
1. 在终端中:输入emacs 和给定目录名
>>>emacs dirname
>>>emacs dirname & ;;#表示在后台运行,此时你还可以使用该终端做其他事情
2. 在Emacs中:
C-x C-f dirname ;;打开一个目录
C-x d ;;也就是绑定到下面这个函数
M-x dired
说明:进入dired后的命令大多是一个字符,比如键入s表示对类别按照时间排序,键入m表示对该文件进行标记,所以下面如果类别一个字符那说明只按那个键就可以了;如果后面有";;"则表示是对该命令的解释(;;是elisp注释语句)
查看和编辑文件
1. 对文件类别进行排序
s ;;按照时间排序,排在最上面的是最新修改的文件
2. 移动光标
SPACE C-n n ;;向下
DEL C-p p ;;向上
ENTER ;;进入子目录
对..回车 ;;回到父目录, ..不是表示上级目录嘛
;;当然,Emacs中的基本移动操作照样可行,比如C-a C-e C-b C-f M-f等等
3. 查看文件内容
v ;;(dired-view-file),只读模式
进入查看模式(view-mode)后可以:
按下'C-c'或'q'健返回;
按下's'健递增查找;
按下回车进入下一页
按下'='返回所在行
4. 编辑文件
f ;;进入文本编辑模式
要退出可以用以下方法:
C-x k;;kill buffer
C-x b;;换到上一个buffer
C-x C-b ;;查看所有buffer,选择进入
文件的删除、复制、重命名操作,压缩与解压缩,比较
d ;;加上待删除标记
u ;;取消待删除标记,其实也可取消其他标记
x ;;删除标记的所有文件
# ;;给所有自动保存文件加上待删除标记
~;;给所有备份文件加上待删除标记
D ;;大D立即删除指定文件
C ;;大C用于复制该文件到一个目录中
2 C;;复制该光标以及后面一个文件
R ;;重命名文件,也可用于移动文件
Z ;;(dired-do-compress)压缩与解压缩
= ;;比较改文件与另一个待会输入的文件,类同于UNIX中的diff命令
在文件上运行UNIX命令
移动文件上并按"!"建
对文件组进行操作
m ;;标记文件
%m ;;使用正则标记
+ ;;(dired-create-directory),创建目录
基本操作就是这些,很多应用大多可以通过组合上面的操作来完成。
比如像给目录下的所有以py为后缀的文件移动到一个新的文件夹(目录)中可以:
首先创建一个目录
+
python
然后选取所有以py为结尾的文件
%m
.py$
最后移动这些标记的文件
R
python
忘了何时,在朋友的QQ上看到这样一个"笑话"(可能是亲历吧),说是一位员工对老板说:老板,在公司里Ctrl+C,在家里Ctrl+V,这样是不行的。这个"笑话"还真能说明不少事情:
1. 说明(行)业类业外的人看待同一事物的态度和眼光是千差万别的,甚至是有天壤之别。对于计算机行业(就是让计算机自动帮助人们解决一些问题)的外行人,这样的差别有两个极端,一种人认为:哇,计算机真是神奇,这也能行!!!那我记住了,下次让电脑去帮我做吧(比如,群发邮件,提醒朋友生日,照片批量处理)。还有另外一个极端,这种人通常都知道计算机很强大,也苦于自己对他知之甚少,这种情况下,当他们再碰到以为计算机业内人士,特别是那种科班出生并标榜自己是计算机高手的时候,就会有这样的情景发生:A既然计算机这样强大,几乎是无所不能嘛,那好,我想****,你帮我弄下吧;好吗?什么?!!!这个电脑做不了?哦,那样啊!那算了。其实这个时候他可能心理就在想:Are you kidding me!别忽悠我了,到底是计算机做不了还是你做不了啊!
2. 说明业内人士很受固定思维之苦。一般来说,没有什么是不可能的。甚至咱们都可以认为永动机哪天可以真的面世。大部分科班出生的人,从原先的一无所知到学习了很多行业知识,就知道这个东西应该是这样,这样的输入会得到这样的结果,有些学习的深度些的童鞋可能能知道为什么以及怎么会得到这种结果。这个直到所以然的东西(知道为什么或怎么就得到了这种结果),我认为有很多层次,目前还没整理出个头绪来,所以怕说不清楚就不说了。
3. 说明业内人士对于那种基础到是常识性的知识就不会有太多思考,每当有人质疑这样的知识,我们首先就是摆出一副”我懂还是你懂“的样式告诉人家”这是不可以的“,然后可能”会告诉人们为什么不可以,当然:这个时候来一些专业词汇,专业术语,牛叉的新概念新理念是难免的",如果最好人家还是不接纳,我们就可能会说“这是属于常识性的东西,计算机真的不能够完成你说的任务".
4. 说明我们业内人士还是不够敏锐, 有一个人这样说, 就会千千万万的人有这样的需求. 既然有这样的需求,我们业内人士就硬挨想这问题怎么去解决。或许是商机也不一定了。
5. 说明业外人士还是很天真。 你在家倒一杯水, 到公司来了你能喝到那杯水吗? 有人说, 当然可以啊,我把杯子带去公司不久可以了。靠,废话,那你就不想着要吧硬盘或者电脑带去公司啊。太想当然了不好。总是认为别人的事情很容易做那哪成。这种心理是常态了,比如我们编程的就认为项目管理的就是吃饭不干活光添乱的,同样项目管理的还认为我们就是吃饭卖苦力还不听话的一群人。
这些可以总结出一句话:隔行如隔山。
但是…
但是,提到的那个问题总是要解决的。注意到有一些有先见之明的人以前走在前面的。下面我就乱弹琴的乱说一通了,如果真的需要做到在Ctrl+C在家Ctrl+V能得到需要的结果怎么办?
1. 最早用的多的,就是先复制到常用的服务器上,比如复制到QQ个性签名或者邮箱中去。然后在家再来一遍Ctrl+C,Ctrl+V。
2. 使用带有云存储功能的软件,比如记事软件Evernote,Maiku等等。
上面两个是不是太常规太小儿科了。好吧,我承认,不过我认为第二种方法是最好的。下面再来两个。
3. 介绍一个新软件,YUNIO,说是文件同步和文件共享软件。看看http://yun.io/就知道我为什么说他可以方便的完成上面的需求了。好不好用你喜不喜欢用就是另一回事了。
4. 使用远程登录或者远程桌面。以前的远程桌面,比如mstsc,有一个很大的问题就是只能同种操作系统间远程,比如mstsc对linxu就不可以了。但是使用了TeamViewer 7后发现,这个强大的工具竟然可以跨平台。
《待续》
纯属乱弹琴,别较真。本事要骂骂自己的,没想到说了这么多废话,呵呵...暂时就码这么多字吧。
今天看到一篇帖子讨论哪些知识是可以自学和哪些知识又是需要类似科班这种系统学习的。其中有一段长长的回帖写的非常精彩,主要是谈到如何自学以及自学中该注意的事项以及技巧。以我看来,在咱们这个知识迅速发展和变化的时代,不持续的学习是很难保证生活所需知识的需求。所以,持续不断的学习很重要,而自学又是必须的,那末,这篇谈到自学的帖子就是需要读一读的。
另外,我对朋友讲过:为了学好英语,我几乎用尽了所有方法:背单词,看文章,阅读原版书,浏览英文网页,参加开放课程,听VOA,看美剧,阅读外文文献,使用专业外语学习网站(就差花钱参加外语培训班了,因为......要花钱...)...但是从现在的状况来看收效甚微。 渐渐明白了,原来我忘了学习(最起码是学习英语)最重要的两个原则:坚持和使用。光听不思考能行吗;学做光背单词背句子不勤练笔可以吗;看句子被文章听电影不交流有用吗;阅读求数量不求质量,阅读了不思考不复习能提高吗?我想都不能,这说的是练习与使用;而更重要的是坚持,老一辈外语学习者甚至都没有网络没有MP*都能有很好的听力和口语能力,他们凭借的就是持续不断的练习,那就是坚持的力量。而学习-特别是自学,最难得地方就在于坚持。而要坚持,除了自己必须的自制力等素质外,还需要很好的学习方法和对学习的规划。
还是看看人家怎么讲自学的吧:(注:文章里面谈到Evernote软件。我之前对比了Evernote和国内的麦库,推荐过麦库(确实相当不错),但是现在发现不仅常常下载不了客户端(在公司里两个星期了都没下载成果过),Firefox中插件也使用不了,当然更别提也同步了。本人十分怀疑是盛大的云平台除了些问题,我相信盛大是可以解决这问题的,毕竟技术的问题嘛。当然,我们也不能因为这一次的问题就否定盛大的云平台,要知道Amazon的云平台也出现过非常严重的问题。综合来讲,目前还是使用Evernote吧,不过常常整理整理自己的笔记,麦库和Evernote都保存是最好的,因为我们也要防止哪天Evernote被墙了。)
原文网址:http://www.guokr.com/question/132920/?orderby=vote&page=1&bsh_bid=87180235
自学最重要的技巧就是要慢,不能一页一页的翻书看过去,否则看到后面像滑冰,越翻越快,却得到一堆模糊的概念,这种时候最容易被误导。学编程建议是手敲书上的每一个例子,理工科建议是每一个公式或者例题推导一遍,也可以选择本领域的专业软件来学。
自学之中另一个重要技巧就是要认错。大概这个是区别民科与非民科的关键吧。科班教育一直有强大压力迫使你发现错误,自学的时候,正确答案不一定进入你的视 野,甚至于不使劲找,并不知道。但是一旦当有人提出异议或者发现自己的错误,就要非常谨慎的分析,整合信息。这个过程不是法庭上或者辩论赛中的“辩护”过 程,而是获得新的信息以后,重新建模的过程。在学习过程中,会有各种创意,而且尤其是在学新东西的时候,创造力恰是爆发的时候,此时不宜着急去钻进自己的 创意之中,而应该赶紧记录下来,然后清空大脑,继续学新的,否则钻进自己的想法不容易出来。过一段时间,几周或者几个月再看之前的创意,会发现有些是可笑 的,有些是书的下一章,有些有人证明不对,有些就是没人想过的。此时再挑出其中的一些拿出来研究。此处强烈推荐使用evernote。
学而不思则罔,思而不学则殆。殆的危害远远大于罔。钻进自己的思路里出不来,会走火入魔的。
自学的第三个技巧就是要找。找,一个是找资源,一个是找人。现在有各种公开课,找资源已经方便多了。找自学的材料,就是要找各种专业领域内经过验证的教材。而且从一开始就要找对专业教材。否则“习惯成自然,再改就很难”。比如一开始要看曼昆的《宏观经济学》,但是一开始如果你看的是《货币战争》,那就没救了。找合适的人交流学习也是非常重要的,不同大学之间的区别其实主要是在人,老师和同学,盖了多少房子倒是其次。拜网络所赐,现在也可以在网上找到许多可以学 习的伙伴。从微博、twitter还有果壳,以及各种问答网站,论坛,MITx。。。都可以找到相关领域的同学、老师,随手at一下,就可以开展讨论。 顺便说,自己的网络形象要注意树立,多发有营养的东西,这样与人搭讪才有人理。
自学的第四个技巧就是实践了。这也是最难的一部分。可以从几个不同的层级进行。
a. 维基百科 /百度百科 /科普写作:记忆学习内容最牢固的方法是教给别人,如果能有机会毁人不倦最好。如果没有这种机会,不妨把学会的东西用自己的理解转述放到wiki上,如果有错误,很快就有人会帮你指出。写科普也是很好的复习方法。
b. 软件模拟:现在的软件越来越强大了。学习一个专业领域内的软件,可以使学习事半功倍,而且实践起来也很容易。比如数学软件Mathematica(或者 wolframalpha.com), MatLab;光学软件Zemax,Oslo;机械类的SolidWorks。。。这些行业标准级的软件,连帮助文件也是上等的教科书。电子学的话,最近 在用https://www.circuitlab.com
c. 开源项目:对于编程学习来说,能做一个开源项目,应该是非常好的学习方式。唉,目前我还没有这个能力。
d. 购买与交换:进入高等级技巧了。金钱是用来交换的,除了购买生活必需品、奢侈品以外,还可以用来交换时间、空间、能力、技巧以及知识。以前我们接受的教育 往往是“钱不是万能的”,我建议换个角度考虑“如何让金钱『万能』起来”。有些实践是可以外包出去的。你不一定需要果壳DIY里各位达人的那么高超的焊接 技巧,去电脑维修的地方请个人帮你焊接也是一样的。甚至直接在淘宝上定制货品,比如我曾经做了一个红外的干扰器,可以干扰一些相机的拍摄,概念产品就是从 淘宝上订购的一个激光舞台灯,要求对方把激光模组更换了一下。
e. 医学的实践机会非常难得,特别是手术操作,很多地方到了主治甚至副高,重要的手术也还没开始训练。传说有前辈可以仅靠看别人的手术录像就把phaco手术 学会,现在的医疗环境应该已经不允许了,可以先用动物模型演练,眼科专业的请移步丁香园,搜索我写的《phaco训练手册》。
f. SCI文章。虽然大家会嘲笑SCI是Stupid Chinese Index,但同行评议才是科学的检验方法,越是痛苦,越是困难,才越说明它有效。
g. 市场检验。这才是学习的终极实践。你发明了69式永动机?别告诉别人,别跟人脸红脖子粗的理论。自己开始做吧,先把自家的电钱省了,然后是亲友家,再到小区……看看那些IT界诸神,也许下一个神话时代已经悄悄开始了。
h. 与其每天晚上追电视剧,不如每天晚上追公开课。
摘要: 一直拜模高手对宏(非C语言中define中定义的宏)的使用。宏就是一套命令或动作的重复使用。定义宏就是定义这样一套命令和动作。使用宏就是对于一个文本,网页,等等使用这样一个宏。宏的应用应该说是很广泛, 可以用于文本的批量处理(如在每行加入“;”),查询替换,批量发送邮件等等... 下面记录下刚学习到的Emacs中宏的定义和使用方法宏的定义: C-x ( #开始宏定义...... #一套你想重复使用的操作,即宏,比如C-e ; C-n #表示跳到行尾,加";",跳到下一行C-x ) #结束宏定义宏的使用: C-x e #使用宏,注意,这里只对该行使用,如果你希望对整个文本每行
阅读全文
摘要: [译]Python中有效的字符串合并方法 ------对不同方法的性能评估 介绍 在Python编程语言中,构造一些较长的字符串事常常会产生一些运行很慢的代码。本文我将研究不同字符串合并方法的计算性能。 在Python中,字符串(string)对象是不可变的(每次关联一个新的字符串变量都会在内存中创建一个新的对象)(译注:类同于Java,.NET等现代语言,他们都会在其VM中保留一个字符串池,里面...
阅读全文
摘要: 下面一段代码会得到什么样的结果呢? public static void main(String[] args) { Integer a=1; Integer b=2; Integer c=3; Integer d=3; Integer e=127; Integer f=127; Integer e2=128; Integer f2=128; Long g=3L; System.out.pr...
阅读全文
摘要: puts "Hello World!" 一般来说, 学习编程(编程语言)的第一例子就是让屏幕输出"hello,world". 而上面那段"hello world!" Code是我今天刚刚从网上学来的ruby版的. 当然,目前我个人最喜欢的一种还是下面这版的: print "hello,world" OK!言归正传,话说有次阅读看到下面一句话: "It's navel gazing tim...
阅读全文