﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-X-Spirit-随笔分类-技术之外</title><link>http://www.blogjava.net/zhangwei217245/category/43174.html</link><description>Always Beyond the Time</description><language>zh-cn</language><lastBuildDate>Wed, 26 Feb 2014 03:19:53 GMT</lastBuildDate><pubDate>Wed, 26 Feb 2014 03:19:53 GMT</pubDate><ttl>60</ttl><item><title>5 Ways To Burn Out Programming</title><link>http://www.blogjava.net/zhangwei217245/archive/2014/02/12/409792.html</link><dc:creator>X-Spirit</dc:creator><author>X-Spirit</author><pubDate>Wed, 12 Feb 2014 15:38:00 GMT</pubDate><guid>http://www.blogjava.net/zhangwei217245/archive/2014/02/12/409792.html</guid><wfw:comment>http://www.blogjava.net/zhangwei217245/comments/409792.html</wfw:comment><comments>http://www.blogjava.net/zhangwei217245/archive/2014/02/12/409792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangwei217245/comments/commentRss/409792.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangwei217245/services/trackbacks/409792.html</trackback:ping><description><![CDATA[<a href="http://blog.braegger.pw/5-ways-to-burn-out-programming/">from： http://blog.braegger.pw/5-ways-to-burn-out-programming/</a> <div><h1><br /></h1>          <section>             <p>I've only recently come out of my burnout, despite it  happening years ago.  It sucks.  It sucks bad.  But looking back, I can  see many of the causes crystal clearly, that weren't so apparent at the  time.  Here's a list:</p>  <h3>1. Think about your project and only the project</h3>  <p>Let's face it.  Business wants you to make the best product you can  "for our customers".  You put off fun features for the sake of missing a  deadline.  You plan and analyze and break a project into sets of  deliverables that then must be coded by a monkey (you).  You demo it,  gather feedback, iterate.  All without thinking anything for yourself.</p>  <p>But newsflash: you started programming because you thought it was  fun, why not keep programming because it's fun?  Take that little extra  time to put in a feature you want.  Challenge yourself a little bit in  doing something you didn't think you could.  Show it to everyone you  know, and don't just ask for feedback, but brag about what you've done.</p>  <h3>2. Have a negative attitude toward everything.</h3>  <p>You know Docker? It sucks.  Who would trust their production  environment to a new, unstable, toy. Go? Do I look like I want to write  every library myself? Everything I need is already in PyPI. This project  I'm working on is so caught up in office politics, it's never going to  work. Jenkins? 2008 wants their tech back.</p>  <p>It's really easy to fall into the "being critical" trap. It's easy to  tell other people what the "wrong" choice is. I imagine it's because as  software engineers, our job is so find faults in our applications and  fix them.  And if we don't find them, someone else finds them for us.</p>  <p>But I don't think we need to be negative about our job, decisions  that are being made (even if it's not our decision) and what we're  working on. Some of the best projects I've worked on worked out that way  because we had a great, positive team. <strong>We enjoyed showing up every day  to work, told each other when we did awesome things, held back  heavy-handed criticism and phrased it in a productive manner.</strong></p>  <h3>3. Use the tools you know, because you're faster that way</h3>  <p>So you're an uber expert in Java + Spring + Hibernate.  Nobody can  touch your python skillz.  Every personal project you do should be in  these, because all that matters is the business side of things, right?</p>  <p>Wrong.</p>  <p>While it definitely makes good business sense, you should prototype,  play around, and become an expert in new tech, even if it's unvetted.   While this might seem like obvious advice (it's repeated alllll the  time), it becomes a lot harder to do as you grow more experienced.</p>  <h3>4. Switch jobs often</h3>  <p>Otherwise known as "chasing butterflies".  Getting bored with what  you're working on?  Have an itch? Time to dust off that resume!</p>  <p>This is bad, bad, bad.</p>  <p>When you have several short employments, it can usually help boost your salary quite a bit, but you are robbing yourself of:</p>  <ol><li>Growing in the company (developer -&gt; manager -&gt; director)  </li><li>Gaining an expertise in a specific area.  Considering it takes 4-6  years for a PhD student to get their PhD, that's a lot of time you need  for learnin.  </li><li>You are having to start from scratch often.  </li><li>If you are a good developer, you have to "prove" yourself (people listen to you) all over again.</li></ol>  <p>So how do these contribute to burnout? Your career stagnates, you  don't develop your skills as deeply (only breadth), people dont trust  you'll stay employed for a while, and you're constantly having to prove  yourself.</p>  <h3>5. Work long hours, ignore your life</h3>  <p>"You don't have to work a lot of hours, but some people choose to."  You want to impress your boss.  Hell, you want to impress yourself. So  you go die-hard to meet an impossible deadline. You delivered the  project on time, with all the extra features you wanted. You are the  hero. High fives all around. And if you're lucky, you'll get that bonus.</p>  <p>That's great the first time. But how about the second. And the third. It's a bomb, and you dont know how short the fuse is.</p>  <h3>Summary</h3>  <p>In short, it's easy to burnout. Do these 5 things, and you can burnout too.</p>         </section></div><img src ="http://www.blogjava.net/zhangwei217245/aggbug/409792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangwei217245/" target="_blank">X-Spirit</a> 2014-02-12 23:38 <a href="http://www.blogjava.net/zhangwei217245/archive/2014/02/12/409792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Efficiency】MAC下使用设定可以从mission control中启动的eclipse.app。</title><link>http://www.blogjava.net/zhangwei217245/archive/2013/02/25/410286.html</link><dc:creator>X-Spirit</dc:creator><author>X-Spirit</author><pubDate>Mon, 25 Feb 2013 06:53:00 GMT</pubDate><guid>http://www.blogjava.net/zhangwei217245/archive/2013/02/25/410286.html</guid><wfw:comment>http://www.blogjava.net/zhangwei217245/comments/410286.html</wfw:comment><comments>http://www.blogjava.net/zhangwei217245/archive/2013/02/25/410286.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangwei217245/comments/commentRss/410286.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangwei217245/services/trackbacks/410286.html</trackback:ping><description><![CDATA[@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&amp;file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">eclipse官方是有标准的mac版下载的，随便copy到一个目录就可以直接启动了(当然必须安装java运行环境)。但是，假如我们想把应用放到mac的标准目录下(也就是finder里的应用程序目录下)，就必须自己手动来做了，方法如下：</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">1.在finder下，copy eclipse目录下的Eclipse.app(在finder里是看不到app这个后缀名的，必须用Command+i，才能看到这个后缀名)文件到&#8220;应用程序&#8221;</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">2.然后，点击右键，选择&#8220;显示包内容&#8221;</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><img src="" alt="" style="border: none; max-width: 100%;" /><img src="http://img.blog.csdn.net/20130914220143781?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2ppYW41NzQ4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border: none; max-width: 100%;" /><br />
</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"></p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">3.修改eclipse.ini文件</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><img src="http://img.blog.csdn.net/20130914220153250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ2ppYW41NzQ4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border: none; max-width: 100%;" /><br />
</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"><img src="" alt="" style="border: none; max-width: 100%;" /><br />
</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">修改文件的开头部分</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">原始内容为：</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">-startup&nbsp;../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar<br />
--launcher.library&nbsp;../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20130521-0416<br />
</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;"></p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">修改后的内容为：</p>
<span style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">-startup /Users/johnny/work/eclipse/plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar</span>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">--launcher.library&nbsp;/Users/johnny/work/eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20130521-0416<br />
</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">我mac的用户名johnny，在我的用户名下有个work目录，我把eclipse的原始目录放在work下面。</p>
<p style="color: #362e2b; font-family: Arial; line-height: 26px; background-color: #ffffff;">这样就可以在&#8220;应用程序&#8221;下，启动eclipse了</p>
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&amp;file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.blogjava.net/zhangwei217245/aggbug/410286.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangwei217245/" target="_blank">X-Spirit</a> 2013-02-25 14:53 <a href="http://www.blogjava.net/zhangwei217245/archive/2013/02/25/410286.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Effective】如何迁移git仓库</title><link>http://www.blogjava.net/zhangwei217245/archive/2012/11/12/409785.html</link><dc:creator>X-Spirit</dc:creator><author>X-Spirit</author><pubDate>Mon, 12 Nov 2012 10:58:00 GMT</pubDate><guid>http://www.blogjava.net/zhangwei217245/archive/2012/11/12/409785.html</guid><wfw:comment>http://www.blogjava.net/zhangwei217245/comments/409785.html</wfw:comment><comments>http://www.blogjava.net/zhangwei217245/archive/2012/11/12/409785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangwei217245/comments/commentRss/409785.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangwei217245/services/trackbacks/409785.html</trackback:ping><description><![CDATA[<div><div post-content"="">                     <p>from:&nbsp; </p><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://segmentfault.com/q/1010000000124379</div><br /><p>&nbsp;</p><p><br /></p><p>如果你想从别的 Git 托管服务那里复制一份源代码到新的 Git 托管服务器上的话，可以通过以下步骤来操作。</p><p>1). 从原地址克隆一份裸版本库，比如原本托管于 GitHub。</p><p>git clone --bare git://github.com/username/project.git</p><p>2). 然后到新的 Git 服务器上创建一个新项目，比如 GitCafe。</p><p>3). 以镜像推送的方式上传代码到 GitCafe 服务器上。</p><p>cd project.git</p><p>git push --mirror git@gitcafe.com/username/newproject.git</p><p>4). 删除本地代码</p><p>cd ..</p><p>rm -rf project.git</p><p>5). 到新服务器 GitCafe 上找到 Clone 地址，直接 Clone 到本地就可以了。</p><p>git clone git@gitcafe.com/username/newproject.git</p><p>这种方式可以保留原版本库中的所有内容。</p>                </div></div><br /><div></div><img src ="http://www.blogjava.net/zhangwei217245/aggbug/409785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangwei217245/" target="_blank">X-Spirit</a> 2012-11-12 18:58 <a href="http://www.blogjava.net/zhangwei217245/archive/2012/11/12/409785.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】阅读我们的学科——计算机专业学习浅谈</title><link>http://www.blogjava.net/zhangwei217245/archive/2012/10/04/389041.html</link><dc:creator>X-Spirit</dc:creator><author>X-Spirit</author><pubDate>Thu, 04 Oct 2012 13:54:00 GMT</pubDate><guid>http://www.blogjava.net/zhangwei217245/archive/2012/10/04/389041.html</guid><wfw:comment>http://www.blogjava.net/zhangwei217245/comments/389041.html</wfw:comment><comments>http://www.blogjava.net/zhangwei217245/archive/2012/10/04/389041.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangwei217245/comments/commentRss/389041.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangwei217245/services/trackbacks/389041.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/zhangwei217245/archive/2012/10/04/389041.html'>阅读全文</a><img src ="http://www.blogjava.net/zhangwei217245/aggbug/389041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangwei217245/" target="_blank">X-Spirit</a> 2012-10-04 21:54 <a href="http://www.blogjava.net/zhangwei217245/archive/2012/10/04/389041.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[导入]有关Emacs的一些摘抄</title><link>http://www.blogjava.net/zhangwei217245/archive/2009/11/12/306330.html</link><dc:creator>X-Spirit</dc:creator><author>X-Spirit</author><pubDate>Thu, 12 Nov 2009 02:24:00 GMT</pubDate><guid>http://www.blogjava.net/zhangwei217245/archive/2009/11/12/306330.html</guid><wfw:comment>http://www.blogjava.net/zhangwei217245/comments/306330.html</wfw:comment><comments>http://www.blogjava.net/zhangwei217245/archive/2009/11/12/306330.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangwei217245/comments/commentRss/306330.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangwei217245/services/trackbacks/306330.html</trackback:ping><description><![CDATA[<font size="3" color="#ff0000">一、emacs编辑器简介</font><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;  emacs编辑器是由C语言和LISP语言编写的。LISP（链表处理语言）是由约翰&#183;麦卡锡在1960年左右创造的一种基于&#955;演算的函数式编程语言。 我们可以使用LISP来扩展emacs，从而为emacs添加更多的命令。（补：emacs -nw：以命令行的方式来运行emacs，而不启动GUI界面）
<hr size="1" color="#00eeee" />
<p><br />
＊ 自动保存功能<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  如果你已经修改了一个文件，但是还没来得及存盘你的计算机就罢工了，那么你所做的修改就很可能会丢失。为了避免这样的不幸发生，Emacs 会定期将正在编辑的文件写入一个&#8220;自动保存&#8221;文件中。自动保存文件的文件名的头尾各有一个&#8220;#&#8221;字符，比如你正在编辑的文件叫&#8220;hello.c&#8221;，那么它 的自动保存文件就叫&#8220;#hello.c#&#8221;。这个文件会在正常存盘之后被 Emacs 删除。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  所以，假如不幸真的发生了，你大可以从容地打开原来的文件（注意不是自动保存文件）然后输入 M-x recover file&lt;Return&gt; 来恢复你的自动保存文件。在提示确认的时候，输入 yes&lt;Return&gt;。</p>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p>＊ 其他</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>当emacs失去响应时，C-g命令可用来结束纸条命令的执行。其功能相当于Shell中的Ctrl+C</li>
    <li>有一些 Emacs 命令被&#8220;禁用&#8221;了，以避免初学者在不了解其确切功能的情况下误用而造成麻烦。如果你用到了一个被禁用的命令，Emacs 会显示一个提示消息，告诉你这个命令到底是干什么的，询问你是否要继续，并在得到你的肯定之后再执行这命令</li>
</ol>
<hr style="color: rgb(0, 255, 51);" size="5" color="#00eeee" />
<p><br />
<font size="3" color="#ff0000">二、emacs编辑器的界面</font><br />
<br />
1. 编辑区<br />
&nbsp;&nbsp;&nbsp;  用来进行文本编辑的区域。</p>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p>2. 回显区<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  如果 Emacs 发现你输入多字符命令的节奏很慢，它会在窗格的下方称为&#8220;回显区&#8221;的地方给你提示。回显区位于屏幕的最下面一行。</p>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p><br />
3. 状态栏</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>位于回显区正上方的一行被称为&#8220;状态栏&#8221;。状态栏最开头的星号（*）表示你已经对文字做过改动。刚刚打开的文件肯定没有被改动过，所以状态栏上显示的不是星号而是短线（-）。</li>
    <li>状态栏中的小括号用来指明当前使用的编辑模式，默认是fundamental（主模式），emacs的主模式包括了文本模式以及编辑程序源码的Lisp模式等。</li>
</ol>
<hr style="color: rgb(0, 255, 51);" size="5" color="#00eeee" />
<p><font size="3"><br />
<font color="#ff0000">三、emacs所能提供的工作环境</font></font></p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>emacs可以执行Shell命令</li>
    <li>emacs可以作为Directory Editor(Dired)</li>
    <li>emacs可以编辑、编译以及调试程序</li>
    <li>emacs可以编辑其它主机上的文档</li>
    <li>emacs可以打印文件</li>
    <li>emacs具有年历（Calendar）以及日记功能</li>
    <li>emacs可以用来阅读man page和info文档</li>
    <li>emacs可以收发电子邮件</li>
    <li>emacs可以阅读网络上的电子布告栏（GNUS）</li>
    <li>emacs具有版本控制的功能（CVS）</li>
    <li>emacs可以提供娱乐环境（游戏功能）</li>
</ol>
<p>&nbsp;&nbsp;&nbsp;  emacs所提供的这些功能，都是先唤起代表此功能的模式（mode）。emacs的模式，分成主要模式（major mode）与次要模式(minor mode）。每一次只能使用一个主模式，而且主模式是必须要的。在一个主模式下，俄可以搭配一个以上的次要模式。使用次要模式相当于启用了该次要模式所对应的插件。</p>
<hr style="color: rgb(0, 255, 51);" size="5" color="#00eeee" />
<p><font size="3"><br />
<font color="#ff0000">四、emacs命令</font></font></p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>emacs中的每一个命令都有一个命令名，命令名就是该命令所对应的LISP函数的函数名。在emacs中，我们可以为这些命令配置快捷键，从而达到快速调用命令的目的。</li>
    <li>.使用emacs来执行命令的方法有两种：(1).使用Ctrl键 (2).使用Meta键。所有emacs命令都可以用Meta键表示出来，键盘上如果没有Meta键，则可以用Alt键或ESC键来代替。常用的emacs命令通常会有一个快捷键与之相连。快捷键通常是以Ctrl来开头（C-x C-c）。如果要使用Meta键来表达与&#8220;Ctrl-x Ctrl-c&#8221;相同的效果，则使用&#8220;M-x save-buffers-kill-emacs&#8221;。使用Meta键，可以利用emacs的completion功能。使用emacs的completion功能的方法是将部分字符串键入后，再按下TAB、SPACE或?键即可。<br />
    &nbsp;&nbsp;  (1).TAB键：尽可能将其的字填满。<br />
    &nbsp;&nbsp;  (2).SPACE键：将分隔符（－）之前的字填满。<br />
    &nbsp;&nbsp;  (3).?：将所有可能的completion选择都列出来。</li>
    <li>由于emacs中所有的命令都有一个命令名（LISP函数的函数名），因此，我们可以使用&#8220;M-x 命令名&#8221;来调用emacs中的所有的命令。</li>
</ol>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p>＊ 基本光标控制</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>C-v：向下翻屏，与PageDown效果相同（v－&gt; vertical）</li>
    <li>M-v：向上翻屏，与PageUp效果相同</li>
    <li>C-l：重绘屏幕，并将光标所在行置于屏幕的中央</li>
    <li>C-b：光标向前移动一格（b-&gt;backward）</li>
    <li>C-f：光标向后移动一格（f-&gt;forward）</li>
    <li>C-p：光标向前移动一行（p-&gt;previous）</li>
    <li>C-n：光标向后移动一行（n-&gt;next）</li>
    <li>M-b：光标向前移动一个单词</li>
    <li>M-f：光标向后移动一个单词</li>
    <li>C-a：光标移动到行首</li>
    <li>C-e：光标移动到行尾</li>
    <li>M-&lt;：光标移动到文章的开头（注意：&#8220;&lt;&#8221;的输入要shift键，实际为Alt+Shift+&lt;）</li>
    <li>M-&gt;：光标移动到文章的结尾</li>
    <li>C-u：给命令传递参数。例如：&#8220;C-u 2 C-d&#8221;表示删除两个字符</li>
    <li>M-x goto-line n RET：调到第n行</li>
</ol>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p>＊ 编辑命令</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>C-d：删除光标后的一个字符</li>
    <li>C-k：删除从光标到行尾的字符（k-&gt;killl）</li>
    <li>C-x u：Undo（想要redo，随便输入一个字符，在Undo）</li>
    <li>C-SPC、C-@、M-x set-mark-command：设置mark</li>
    <li>C-x h：将整个缓冲区设置为区域</li>
    <li>C-w：将区域的文本删除，并放入yanking ring中。区域指的是从mark到point（光标所处的位置称为point）之间的文本</li>
    <li>M-w：复制区域到yanking ring中</li>
    <li>C-y：将yanking ring中最后一个区域插入当前缓冲区</li>
    <li>M-j：回车并且到下一行产生适当的缩进</li>
    <li>M-m：将光标移动到当前行的第一个非空白字符上</li>
    <li>M-;：产生通用注释</li>
    <li>M-x comment-region：把块注释掉</li>
    <li>M-x kill-comment：消除注释</li>
</ol>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p>＊ 查找与替换</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>C-s：向后搜索，光标将停在第一个匹配的字符串处。再按一次C-s将继续搜索下一个匹配的字符串。如果要停止搜索，则使用C-g，此时光标将会回到搜索开始的位置</li>
    <li>C-r：向前搜索</li>
    <li>M-x replace-string：替换</li>
</ol>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p>&nbsp;</p>
<p>＊ 文件操作</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>C-x c-f：打开文件，如果文件不存在则创建</li>
    <li>C-x C-s：保存文件。第一次存盘时，emacs会将文件重命名来备份。重命令的规则通常是在原文件名后加上一个&#8220;～&#8221;字符。如果要关闭emacs的自动备份功能，使用 M-x customize-variable &lt;Return&gt; make-backup-files &lt;Return&gt;</li>
    <li>C-x C-w：将文件&#8220;另存为&#8221;</li>
    <li>C-x C-v：打开一个新文件，并关闭当前缓冲区</li>
    <li>C-x C-r：以只读的方式打开文件</li>
    <li>C-x i：将文件插入光标当前位置</li>
</ol>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p>＊ 缓冲区</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>Emacs 把每个编辑中的文件都放在一个称为&#8220;缓冲区（buffer）&#8221;的地方。每打开一个文件，Emacs 就在其内部开辟一个缓冲区用来保存打开的文件的数据。ESC ESC ESC命令可以用来退出打开的小缓冲区，比如：命令提示窗格等</li>
    <li>C-x C-b&nbsp;&nbsp;  列出当前所有的缓冲区（b-&gt;buffer）</li>
    <li>C-x b 缓冲区名：切换到指定的缓冲区（例如：C-x b M&lt;tab&gt;：切换到以M开头的缓冲区）</li>
    <li>C-x s：保存emacs中所有的缓冲区（s-&gt;save）</li>
    <li>C-x right：切换到下一个缓冲区</li>
    <li>C-x left：切换到前一个缓冲区</li>
    <li>C-x C-c：退出emacs，并询问用户是否保存</li>
    <li>C-x k：关闭缓冲区</li>
    <li>C-z：将emacs挂起，然后回到Shell中，并不退出emacs。之后，我们可以使用%emacs或fg命令来回到emacs</li>
</ol>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p><br />
＊ 窗口<br />
<br />
Emacs 可以有多个窗格，每个窗格显示不同的文字。</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>C-x 0：关闭光标所在的窗口</li>
    <li>C-x 1：保留光标所在的窗格，并将其扩大到整个屏幕，同时关掉所有其它的窗格</li>
    <li>C-x 2：水平分割当前窗口</li>
    <li>C-x 3：垂直分割当前窗口</li>
    <li>C-x o：在emacs的窗格中进行切换（o-&gt;other）</li>
    <li>C-M-v：滚动下方的窗格。一般在我们使用下方的窗格进行参考，而又不想将光标切换到下一个窗格时使用</li>
</ol>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p><br />
＊ 使用帮助</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>C-h c 快捷键：显示快捷键的简要说明</li>
    <li>C-h k 快捷键：显示快捷键所对应的命令名及其详细说明</li>
    <li>C-h a 关键字：显示包含有指定关键字的命令</li>
    <li>C-h i：查看Info文档</li>
</ol>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p><br />
＊ 在emacs中运行shell命令</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>M-! cmd RET：打开一个名为&#8220;*Shell Command Output*&#8220;的窗口，并把该命令的执行结果显示在其中。按下&#8221;C-x 1&#8220;组合键可以关闭这个窗口。由于Shell命令的输出是在一个编辑缓冲区里，因此我们可以对它进行编辑、保存等操作。</li>
    <li>M-| cmd RET：运行Shell命令，并使用编辑窗口中选定的区域作为该Shell命令的输入，然后可以选择是否用该Shell命令的输出来替换编辑窗口中选中的区域。</li>
    <li>C-u M-! cmd RET：执行一条Shell命令，并将其输出放到编辑区中光标所在的位置处，而不将其输出到&#8221;Shell Command Output&#8220;窗口。</li>
    <li>M-x shell：运行一个子Shell，该子Shell对应于emacs中的一个名为&#8221;*Shell*"的缓冲区，此后，我们就可以交互式的运行Shell命令了。</li>
    <li>M-x term：运行一个子Shell，该子Shell对应于emacs中的一个名为&#8220;＊Terminal*&#8221;的缓冲区。使用该命令获得的子Shell是一个完整的Shell的模拟，与我们直接在Shell中操作没有什么差别。</li>
    <li>M-x eshell：运行emacs shell。该Shell为emacs自己实现的一个shell，而前面运行的shell都为系统中的shell程序(例如：/bin/csh等）。我们可以通过设置变量<font color="#ff6600">shell-file-name</font>来设置emacs所使用的默认shell</li>
</ol>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p>＊ Dired功能</p>
<ol style="padding-left: 25px; line-height: 30px;">
    <li>emacs的Dired（Directory Editor）功能使emacs缓冲区能够用来显示目录列表，并可以用来进入目录的子目录。Dired缓冲区是只读的，不能够被修改。</li>
    <li>C-x d：进入Dired</li>
</ol>
<p>&nbsp;</p>
<hr size="1" color="#00eeee" />
<p><br />
＊ emacs配置文件<br />
<br />
&nbsp;&nbsp;&nbsp;  emacs配置文件通常位于计算机的 $HOME 目录，如果是 MS Windows (Windows 2000, Windows XP以上)，默认是 c:\Documents and Settings\username\Application Data\，这个适用于 Emacs22 以上的版本。Emacs21 默认的 $HOME 目录在 C:\ 。当然也可以通过环境变量 $HOME 重新设置，总之在比较大众化的操作系统中，你都可以通过C-x C-f ~/.emacs 来编辑您的个性化配置文件。</p>
<div style="padding: 4pt; background-color: rgb(240, 238, 230);">;;显示时间<br />
<br />
(display-time)<br />
<br />
;;显示行号<br />
<br />
(column-number-mode t)<br />
<br />
(show-paren-mode t)<br />
<br />
;;设置TAB宽度为4<br />
<br />
(setq default-tab-width 4) <br />
<br />
;;以下设置缩进 <br />
<br />
(setq c-indent-level 4)<br />
<br />
(setq c-continued-statement-offset 4)<br />
<br />
(setq c-brace-offset -4)<br />
<br />
(setq c-argdecl-indent 4)<br />
<br />
(setq c-label-offset -4)<br />
<br />
(setq c-basic-offset 4)<br />
<br />
(global-set-key "\C-m" 'reindent-then-newline-and-indent)<br />
<br />
(setq indent-tabs-mode nil)<br />
<br />
(setq standard-indent 4)<br />
<br />
;;开启语法高亮。<br />
<br />
(global-font-lock-mode 1) <br />
<br />
;;设置默认工作目录<br />
<br />
(setq default-directory "/home/test/source/") <br />
<br />
;; 去掉滚动条<br />
<br />
(set-scroll-bar-mode nil)<br />
<br />
;;关闭开启画面<br />
<br />
(setq inhibit-startup-message t) <br />
<br />
(setq indent-tabs-mode t)<br />
<br />
;;不产生备份文件<br />
<br />
(setq make-backup-files nil) <br />
<br />
;;设置自定义变量<br />
<br />
(custom-set-variables<br />
<br />
'(column-number-mode t)<br />
<br />
'(current-language-environment "UTF-8")<br />
<br />
'(display-time-mode t)<br />
<br />
'(ecb-options-version "2.32")<br />
<br />
'(mouse-1-click-in-non-selected-windows t)<br />
<br />
'(mouse-drag-copy-region t)<br />
<br />
'(mouse-yank-at-point t)<br />
<br />
'(save-place t nil (saveplace))<br />
<br />
'(show-paren-mode t)<br />
<br />
'(transient-mark-mode t))<br />
<br />
(custom-set-faces<br />
<br />
;;选择小工具栏图标<br />
<br />
(tool-bar-mode -1)</div>
<p><br />
<font size="5"><span style="font-weight: bold; color: rgb(192, 0, 0);">rectangle(列)模式编辑 和emacs shell（摘抄）</span></font></p>
<p><br />
不敢独享，与大家分享。也可以在Emacs中用C-x C-h列出全部命令，查找C-x r c，所有列模式命令都是以C-x r开始的<br />
C-x r C-@&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; point-to-register<br />
C-x r SPC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; point-to-register<br />
C-x r +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; increment-register<br />
C-x r b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bookmark-jump<br />
C-x r c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clear-rectangle<br />
先用C-space或者C-@设一个mark，移动光标到另一点，使用C-x r c可以清楚mark到光标处的矩形区域，该区域留下空白。<br />
C-x r d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delete-rectangle<br />
删除矩形区域，不留空白，后面的字符前移<br />
C-x r f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; frame-configuration-to-register<br />
C-x r g&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; insert-register<br />
C-x r i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; insert-register<br />
将某个寄存器的内容插入某处<br />
C-x r j&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jump-to-register<br />
C-x r k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kill-rectangle<br />
就是剪切某个选定的矩形区域，用C-x r y可以贴上<br />
C-x r l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bookmark-bmenu-list<br />
C-x r m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bookmark-set<br />
C-x r n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number-to-register<br />
C-x r o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open-rectangle<br />
在选定的矩形区域插入空白<br />
C-x r r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; copy-rectangle-to-register<br />
将选定的矩形区域复制到某个寄存器<br />
C-x r s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; copy-to-register<br />
C-x r t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string-rectangle<br />
在选定区域所有列前插入同样的字符<br />
C-x r w&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window-configuration-to-register<br />
C-x r x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; copy-to-register<br />
C-x r y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yank-rectangle<br />
类似于矩形区域的粘贴，就是将刚用C-x r k剪切的矩形区域粘贴过来<br />
C-x r C-SPC&nbsp;&nbsp;&nbsp; point-to-register<br />
<br />
摘自：<a href="link.php?url=http://chandlewei.blogbus.com/logs/15583440.html">http://chandlewei.blogbus.com/logs/15583440.html</a><br />
<br />
在 Emacs 里面同时打开多个 shell 会话：<br />
通过重命名shell所在缓冲区的名字可以开启多个shell<br />
E-x shell<br />
E-x rename-buffer shellA<br />
E-x shell<br />
这时就开启了两个不相干的shell：shellA 和*shell*</p>
<p><br />
</p>
<p>也可以通过其他方式来开启shell，例如：<br />
1. M-x eshell&nbsp;&nbsp;&nbsp; 开启Emacs Shell<br />
2. M-x term&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开启linux终端，可以指定你要的终端SHELL。但是这个可能会拦截你的EMACS命令。<br />
<br />
整理你的屏幕：<br />
通过C-c C-o可以清除上次命令的输出，特别是对于cat或dmesg这种产生大量输出的命令。<br />
<br />
详细文章：<a href="link.php?url=http://www.ibm.com/developerworks/cn/aix/library/0811_yangbh_emacs2/index.html">http://www.ibm.com/developerworks/cn/aix/library/0811_yangbh_emacs2/index.html</a></p>
<br />
文章来源:<a href="http://x-spirit.spaces.live.com/Blog/cns!CC0B04AE126337C0!826.entry">http://x-spirit.spaces.live.com/Blog/cns!CC0B04AE126337C0!826.entry</a>
<img src ="http://www.blogjava.net/zhangwei217245/aggbug/306330.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangwei217245/" target="_blank">X-Spirit</a> 2009-11-12 10:24 <a href="http://www.blogjava.net/zhangwei217245/archive/2009/11/12/306330.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>