﻿<?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-ivaneeo's blog-随笔分类-emacs－牛露锋芒</title><link>http://www.blogjava.net/ivanwan/category/2525.html</link><description>自由的力量，自由的生活。</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:38:35 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:38:35 GMT</pubDate><ttl>60</ttl><item><title>emacs jde解决和cedet的冲突</title><link>http://www.blogjava.net/ivanwan/archive/2006/09/11/68950.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Mon, 11 Sep 2006 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2006/09/11/68950.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/68950.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2006/09/11/68950.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/68950.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/68950.html</trackback:ping><description><![CDATA[把设置:<br />      '(global-font-lock-mode t nil (font-lock))<br />        '(jde-check-version-flag nil)<br />就可以解决jde对cedet版本检查。<br /><img src ="http://www.blogjava.net/ivanwan/aggbug/68950.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2006-09-11 14:21 <a href="http://www.blogjava.net/ivanwan/archive/2006/09/11/68950.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的emacs</title><link>http://www.blogjava.net/ivanwan/archive/2006/04/15/41210.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Sat, 15 Apr 2006 03:46:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2006/04/15/41210.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/41210.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2006/04/15/41210.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/41210.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/41210.html</trackback:ping><description><![CDATA[这是我的windows下的emacs：<br />    
<p><img height="1" src="/WebResource.axd?d=pLXXeGbWF7eXU8SMs2-GFZvUWY2JNH05dFx5YzJhGUYAYJAFEaTEq36NAhTPy7_KekvzDFwt8wvQWdByvJIGWdEq6x2KpKD80&amp;t=632780334478750000" width="1" /><img height="745" alt="emacs.bmp" src="http://www.blogjava.net/images/blogjava_net/ivanwan/pictures/emacs.bmp" width="1243" border="0" /></p><img src ="http://www.blogjava.net/ivanwan/aggbug/41210.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2006-04-15 11:46 <a href="http://www.blogjava.net/ivanwan/archive/2006/04/15/41210.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在emacs支持ruby</title><link>http://www.blogjava.net/ivanwan/archive/2006/04/08/40025.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Sat, 08 Apr 2006 12:43:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2006/04/08/40025.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/40025.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2006/04/08/40025.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/40025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/40025.html</trackback:ping><description><![CDATA[下载 http://members.optusnet.com.au/puyo/ruby-mode.el<br />放入emacs/site-lisp目录<br /><br />在.emacs中添加:<br />    (autoload 'ruby-mode "ruby-mode" "Major mode for editing ruby scripts." t)<span style="font-family: monospace;"><br />    </span>(setq auto-mode-alist (cons '("\\.rb$" . ruby-mode) auto-mode-alist))<span style="font-family: monospace;"><br />    </span>(setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) interpreter-mode-alist))<span style="font-family: monospace;"><br />    </span>(setq load-path (append load-path '("X")))<img src ="http://www.blogjava.net/ivanwan/aggbug/40025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2006-04-08 20:43 <a href="http://www.blogjava.net/ivanwan/archive/2006/04/08/40025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows下gnu emacs中文的配置</title><link>http://www.blogjava.net/ivanwan/archive/2006/03/24/37231.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Fri, 24 Mar 2006 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2006/03/24/37231.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/37231.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2006/03/24/37231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/37231.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/37231.html</trackback:ping><description><![CDATA[
安装mule-gbk后可以显示更多的汉字，比如朱镕基的“镕”，如果不用mule-gbk是无法正确显示的



<ol><li>到 <a href="http://mule-gbk.sourceforge.net/">http://mule-gbk.sourceforge.net/</a> 下载mule-gbk，然后解压到任意目录，不过不要解压到 <em>$HOME</em> 目录下面，这里解压缩到 <em>D:\mule-gbk-0.1.2004080701</em> ，然后仿照auctex的安装方法即可，用cygwin安装的步骤如下：
<pre class="example">$cd d: (或者$cd /cygdrive/d)<br />$cd mule-gbk-0.1.2004080701<br />$./configure<br />$make<br />$make lispdir=d:/emacs-21.3.50.1/site-lisp install<br /></pre><strong></strong><br />
最后一条命令中， <em>lispdir</em> 指定的是el文件安装的目录
</li><li>现在在 <em>.emacs</em> 中加入</li></ol>    (set-terminal-coding-system 'chinese-iso-8bit)<br />    (set-keyboard-coding-system 'chinese-iso-8bit)<br />    (set-language-environment 'Chinese-GB)<br />    (setq locale-coding-system 'chinese-iso-8bit)<br />    (setq current-language-environment "Chinese-GB")<br /><br /><br />    (if (not (member '("-*-tahoma-normal-r-*-*-16-*-*-*-c-*-fontset-chinese"<br />        . "fontset-gbk") fontset-alias-alist))<br />    (progn<br />        (create-fontset-from-fontset-spec<br />        "-*-tahoma-normal-r-*-*-16-*-*-*-c-*-fontset-gbk,<br />        ;ascii:-adobe-helvetica-medium-r-normal--16-*-*-*-*-*-iso8859-1,<br />        chinese-gb2312:-*-simsun-medium-r-normal-*-16-160-*-*-*-*-gb2312*-*,<br />        korean-ksc5601:-*-medium-r-normal-*-*-*-ksc5601*-*,<br />        chinese-cns11643-5:-*-simsun-medium-r-normal-*-16-160-*-*-*-*-gbk*-0,<br />        chinese-cns11643-6:-*-simsun-medium-r-normal-*-16-160-*-*-*-*-gbk*-0,<br />        chinese-cns11643-7:-*-simsun-medium-r-normal-*-16-160-*-*-*-*-gbk*-0,<br />        chinese-big5-1:-*-Ming(for ISO10646)-*-*-*-*-16-160-*-*-*-*-big5*-*,<br />        chinese-big5-2:-*-Ming(for ISO10646)-*-*-*-*-16-*-*-*-*-*-big5*-*" t)<br />        )<br />    )<br /><img src ="http://www.blogjava.net/ivanwan/aggbug/37231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2006-03-24 16:11 <a href="http://www.blogjava.net/ivanwan/archive/2006/03/24/37231.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>emacs下利用c-mode编辑javascript文件</title><link>http://www.blogjava.net/ivanwan/archive/2006/03/24/37222.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Fri, 24 Mar 2006 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2006/03/24/37222.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/37222.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2006/03/24/37222.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/37222.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/37222.html</trackback:ping><description><![CDATA[1.在你的.emacs中添加:<br />    (setq auto-mode-alist (append '(("\\.js$" . c-mode)) auto-mode-alist))<br />        (autoload 'javascript-mode "javascript-mode" "JavaScript mode" t)<br />   (setq auto-mode-alist (append '(("\\.js$" . javascript-mode))<br />          auto-mode-alist))<br /><br />; Indent c code four spaces<br /><br />(setq c-basic-offset 4)<br /><br />; Associate c-mode with the .js extension<br /><br />(setq auto-mode-alist (append '(("\\.js$" . c-mode)) auto-mode-alist))<br /><br />2.在你的site-lisp目录下加入javascript-mode.el文件:<br /><br /><br />;; javascript-mode.el --- major mode for editing javascript (.js) files<br />;;<br />;; Copyright (C) 1997 Peter Kruse<br /><br />;; Author: Peter Kruse &lt;pete@netzblick.de&gt;<br />;; Keywords: languages<br />;; Time-stamp: &lt;Sun Apr 12 20:02:25 1998 pete&gt;<br /><br />;; This file is *NOT* part of GNU Emacs.<br /><br />;; This file is free software; you can redistribute it and/or modify<br />;; it under the terms of the GNU General Public License as published by<br />;; the Free Software Foundation; either version 2 of the License, or<br />;; (at your option) any later version.<br /><br />;; javascript-mode.el is distributed in the hope that it will be useful,<br />;; but WITHOUT ANY WARRANTY; without even the implied warranty of<br />;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br />;; GNU General Public License for more details.<br /><br />;; You should have received a copy of the GNU General Public License<br />;; along with this file; if not, write to the Free Software<br />;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.<br /><br />;;; Commentary:<br /><br />;; Get the latest version from<br />;; &lt;http://www.brigadoon.de/peter/javascript-mode.el&gt;<br /><br />;; Basically this is c-mode, for indentation, that's where the line<br />;; (load-library "c-mode") comes from. colorization is done via hilit19.el.<br />;; Actually did not do much programming myself, just wanted to have<br />;; colorization, indentation and some functions (hm that's what major modes<br />;; are about?) hey, this is my first try!<br /><br />;;; HOW TO INSTALL:<br />;; Put the following forms in your .emacs to enable autoloading of JavaScript<br />;; mode, and auto-recognition of ".js" files.<br />;;<br />;;   (autoload 'javascript-mode "javascript-mode" "JavaScript mode" t)<br />;;   (setq auto-mode-alist (append '(("\\.js$" . javascript-mode))<br />;;                   auto-mode-alist))<br />;;<br />;;   This mode requires another lisp file, tempo.el. This can be<br />;;     retrieved from ftp://ftp.lysator.liu.se/pub/emacs/tempo.el<br />;;<br />;;   You might want to get browse-url.el, for the online help.<br />;;   Get it from<br />;;   http://wombat.doc.ic.ac.uk/emacs/browse-url.el<br /><br />;;; Change Log:<br />;;<br />;; Sun Apr 12 19:48:48 1998<br />;;<br />;;    included a menu<br />;;<br />;; Mon Sep 22 20:03:12 MET DST 1997<br />;;<br />;;    improvement of Syntax-table<br />;;<br />;; Sun Sep  7 17:57:50 MET DST 1997<br />;;<br />;;    new variable: javascript-interactive<br />;;<br />;; Mon Sep  1 14:52:37 MET DST 1997 <br />;;<br />;;    javascript online help - all it does, is browse-url to<br />;;      javascript-base-help-href<br />;;<br />;; Fri Aug 29 21:01:22 MET DST 1997 Peter Kruse<br />;;    &lt;peter.kruse@psychologie.uni-regensburg.de&gt;<br />;;<br />;;    1st release<br /><br /><br />;;; TODO<br />;;  <br />;;  - online help should work like describe-\(function\|variable\),<br />;;  but get the info from the web. Netscape's documention is in progress,<br />;;  there is no final complete docu on JavaScript1.2, so perhaps we wait.<br />;;<br />;;  - should include an interface to signing scripts, but zigbert is not<br />;;  available for linux<br /><br />;;; Bugs<br />;;<br />;;  - strings in single-quotes do not highlight<br /><br />;;; Code:<br /><br />;; user-variables<br /><br />(defvar javascript-indentation 4<br />  "The width for further indentation in JavaScript mode.")<br /><br />(defvar javascript-base-help-href "http://developer.netscape.com/library/documentation/communicator/jsguide/"<br />  "URL where the javascript guide can be found.")<br /><br />(defvar javascript-browse-url-function 'browse-url-w3<br />  "how to view online help.")<br /><br />(defvar javascript-interactive t<br />  "If t user will be prompted for strings in templates.")<br /><br />;;;<br /><br />(defvar javascript-mode-map (make-sparse-keymap)<br />  "Keymap for javascript-mode")<br /><br />(defvar javascript-mode-syntax-table nil<br />  "Syntax table for javascript-mode.")<br /><br />(defvar javascript-mode-hook nil<br />  "*Hook run when javascript-mode is started.")<br /><br />(if javascript-mode-syntax-table<br />    ()<br />  (setq javascript-mode-syntax-table (make-syntax-table text-mode-syntax-table))<br />  (modify-syntax-entry ?_ "w" javascript-mode-syntax-table)<br />  (modify-syntax-entry ?' "\"" javascript-mode-syntax-table)<br />  (modify-syntax-entry ?% "_" javascript-mode-syntax-table)<br />  (modify-syntax-entry ?\" "\"" javascript-mode-syntax-table)<br />  (modify-syntax-entry ?\\ "\\" javascript-mode-syntax-table)<br />  (modify-syntax-entry ?. "_" javascript-mode-syntax-table))<br /><br />  <br />(defvar javascript-mode-abbrev-table nil<br />  "Abbrev table used while in javascript-mode.")<br />(define-abbrev-table 'javascript-mode-abbrev-table ())<br /><br />(require 'tempo)<br /><br />(tempo-define-template<br /> "javascript-for"<br /> (list "for (" '(p "initial: ") "; " '(p "condition: ") "; " '(p "increment: ") ") {" 'n&gt; 'p 'n "}" '&gt;)<br /> nil "insert a for loop" nil)<br /><br />(tempo-define-template<br /> "javascript-for-in"<br /> (list "for (" '(p "variable: ") " in " '(p "object: ") ") {" '&gt; 'n&gt; 'p 'n "}" '&gt;)<br /> nil "insert a for loop" nil)<br /><br />(tempo-define-template<br /> "javascript-if"<br /> (list "if (" '(p "condition: ") ") {" 'n&gt; 'p 'n "}" '&gt;)<br /> nil "insert an if statement" nil)<br /><br />(tempo-define-template<br /> "javascript-while"<br /> (list "while (" '(p "condition: ") ") {" 'n&gt; 'p 'n "}" '&gt;)<br /> nil "insert a while statement" nil)<br /><br />(tempo-define-template<br /> "javascript-do"<br /> (list "do {" '&gt; 'n&gt; 'p 'n "} while(" '(p "condition: ") ");" '&gt;)<br /> nil "insert a do-while statement" nil)<br /><br />(tempo-define-template<br /> "javascript-with"<br /> (list "with (" '(p "with what? ") ") {" 'n&gt; 'p 'n "}" '&gt;)<br /> nil "insert a with statement" nil)<br /><br />(tempo-define-template<br /> "javascript-defun"<br /> (list "function " '(p "function name: ") "(" '(p "arguments: ") ") {" 'n&gt; 'p 'n "}" '&gt;)<br /> nil "insert a function definition" nil)<br /><br />(tempo-define-template<br /> "javascript-switch"<br /> (list "switch (" '(p "variable: ") ") {" '&gt; 'n&gt; "case '" 'p "' :" '&gt; 'n&gt; "break;" '&gt; 'n&gt; "default :" '&gt; 'n&gt; "}" '&gt;)<br /> nil "insert a switch statement" nil)<br /><br />(tempo-define-template<br /> "javascript-case"<br /> (list "case '" 'p "' :" '&gt; 'n&gt; "break;" '&gt;)<br /> nil "insert a case" nil)<br /><br />;;; now for the help facility<br />;;; from man.el<br /><br />(defun javascript-help (entry)<br />  "Opens a browser via browse-url with a help entry on the current word."<br />  (interactive<br />   (list (let* ((default-entry (current-word))<br />        (input (read-string<br />            (format "Help entry%s: "<br />                (if (string= default-entry "")<br />                    ""<br />                  (format " (default %s)" default-entry))))))<br />       (if (string= input "")<br />           (if (string= default-entry "")<br />           (error "No entry given")<br />         default-entry)<br />         input))))<br />  (let ((url (concat javascript-base-help-href "contents.htm" "#" entry))<br />    (browse-url-browser-function javascript-browse-url-function))<br />    (if (boundp 'browse-url-browser-function)<br />    (progn<br />      (pop-to-buffer " javascript-help")<br />      (apply browse-url-browser-function (list url)))<br />      (error "browse-url not found"))))<br />      <br />(modify-frame-parameters (selected-frame) '((menu-bar-lines . 2)))<br />(define-key javascript-mode-map [menu-bar javascript]<br />  (cons "JavaScript" javascript-mode-map))<br />(define-key javascript-mode-map [menu-bar javascript Help]<br />  '("Help" . javascript-help))<br />(define-key javascript-mode-map [menu-bar javascript for]<br />  '("for" . tempo-template-javascript-for))<br />(define-key javascript-mode-map [menu-bar javascript forin]<br />  '("for .. in" . tempo-template-javascript-for-in))<br />(define-key javascript-mode-map [menu-bar javascript if]<br />  '("if" . tempo-template-javascript-if))<br />(define-key javascript-mode-map [menu-bar javascript while]<br />  '("while" . tempo-template-javascript-while))<br />(define-key javascript-mode-map [menu-bar javascript with]<br />  '("with" . tempo-template-javascript-with))<br />(define-key javascript-mode-map [menu-bar javascript switch]<br />  '("switch" . tempo-template-javascript-switch))<br />(define-key javascript-mode-map [menu-bar javascript case]<br />  '("case" . tempo-template-javascript-case))<br />(define-key javascript-mode-map [menu-bar javascript do]<br />  '("do" . tempo-template-javascript-do))<br />(define-key javascript-mode-map [menu-bar javascript function]<br />  '("function" . tempo-template-javascript-defun))<br /><br /><br />(define-key javascript-mode-map "\C-c\C-h" 'javascript-help)<br />(define-key javascript-mode-map "\C-c\C-f" 'tempo-template-javascript-for)<br />(define-key javascript-mode-map "\C-c\C-n" 'tempo-template-javascript-for-in)<br />(define-key javascript-mode-map "\C-c\C-i" 'tempo-template-javascript-if)<br />(define-key javascript-mode-map "\C-c\C-w" 'tempo-template-javascript-while)<br />(define-key javascript-mode-map "\C-c\C-t" 'tempo-template-javascript-with)<br />(define-key javascript-mode-map "\C-c\C-s" 'tempo-template-javascript-switch)<br />(define-key javascript-mode-map "\C-c\C-c" 'tempo-template-javascript-case)<br />(define-key javascript-mode-map "\C-c\C-d" 'tempo-template-javascript-do)<br />(define-key javascript-mode-map "\C-c(" 'tempo-template-javascript-defun)<br />(define-key javascript-mode-map "{" 'electric-c-brace)<br />(define-key javascript-mode-map "}" 'electric-c-brace)<br /><br />(defun javascript-mode ()<br />  "Major mode for editing javascript code. Basically this is c-mode,<br />because it does a nice indentation. c-mode gets called via `load-library'.<br />Colorization is done with hilit19. A few commands are defined through<br />`tempo.el'. The online help facility gets done through browse-url.el.<br />\\{javascript-mode-map}<br />You can set the indentation level by setting the variable<br />`javascript-indentation' to an integer-value. Default is 4.<br />The variable javascript-base-help-href sets the URL for the JavaScript guide."<br />  (interactive)<br />  (kill-all-local-variables)<br />  (load-library "c-mode")<br />  (require 'browse-url)<br />  (use-local-map javascript-mode-map)<br />  (setq major-mode 'javascript-mode)<br />  (setq mode-name "JavaScript")<br /><br />  (set-syntax-table javascript-mode-syntax-table)<br /><br />  (make-local-variable 'comment-start)<br />  (setq comment-start "// ")<br />  (make-local-variable 'comment-start-skip)<br />  (setq comment-start-skip "/\\*+ *\\|// *")<br />  (make-local-variable 'tempo-interactive)<br />  (setq tempo-interactive javascript-interactive)<br />  (make-local-variable 'indent-line-function)<br />  (setq indent-line-function 'c-indent-line)<br />  (make-local-variable 'c-indent-level)<br />  (setq c-indent-level javascript-indentation)<br /><br />  (run-hooks 'javascript-mode-hook))<br /><br />;;;<br /><br />(if (featurep 'hilit19)<br />    (hilit-set-mode-patterns<br />     'javascript-mode<br />     '(("/\\*" "\\*/" comment)<br />       ("//" "$" comment)<br />       ("\\&lt;function\\&gt;\\s +[^0-9]\\w+\\s *([^)]*)" nil defun)<br />       ("\\&lt;\\(abstract\\|boolean\\|break\\|byte\\|case\\|catch\\|char\\|class\\|const\\|continue\\|default\\|delete\\|do\\|double\\|else\\|extends\\|false\\|final\\|finally\\|float\\|for\\|goto\\|if\\|implements\\|in\\|instanceof\\|int\\|interface\\|long\\|native\\|new\\|null\\|package\\|private\\|protected\\|public\\|return\\|short\\|static\\|super\\|switch\\|synchronized\\|this\\|throw\\|throws\\|transient\\|true\\|try\\|typeof\\|var\\|void\\|while\\)\\&gt;" 1 keyword)<br />       ("\\&lt;with\\&gt;\\s *([^)]*)" nil include)<br />       ("\\&lt;\\(import\\|export\\)\\&gt;\\s +.*" nil include)<br />       ("\"[^\\\"]*\\(\\\\.[^\\\"]*\\)*\"" nil string)<br />       ("^\\s *\\w+\\s *:\\s *$" nil label))<br />     nil nil)<br />  nil)<br /><br /><br />(provide 'javascript-mode)<br /><br />;; javascript-mode.el ends here<br /><br />;; Local Variables:<br />;; local-write-file-hooks:(time-stamp)<br />;; End:<br /><br /><img src ="http://www.blogjava.net/ivanwan/aggbug/37222.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2006-03-24 14:59 <a href="http://www.blogjava.net/ivanwan/archive/2006/03/24/37222.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>emacs 安装c#mode</title><link>http://www.blogjava.net/ivanwan/archive/2006/03/23/37101.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Thu, 23 Mar 2006 14:37:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2006/03/23/37101.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/37101.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2006/03/23/37101.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/37101.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/37101.html</trackback:ping><description><![CDATA[
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt 5.25pt; text-indent: -5.25pt;">
				<font size="2">
						<font face="Tahoma">
								<span style="font-family: 宋体;">默认情况下，</span>
								<span lang="EN-US">Emacs</span>
								<span style="font-family: 宋体;">已经可支持</span>
								<span lang="EN-US">c/c++</span>
								<span style="font-family: 宋体;">以及</span>
								<span lang="EN-US">Java</span>
								<span style="font-family: 宋体;">开发（其它的语言我没试过，因为我机器上只有上述几种语言的编译器），但如果你想用它来开发</span>
								<span lang="EN-US">C#</span>
								<span style="font-family: 宋体;">还需要做一些其它的工作。</span>
								<span lang="EN-US">Emacs</span>
								<span style="font-family: 宋体;">就像一把枪，在需要时可以添入不同的子弹，我们现在需要的就是找一粒刻有</span>
								<span lang="EN-US">C#</span>
								<span style="font-family: 宋体;">字样的子弹压入枪膛。这粒子弹的名字叫</span>
								<span lang="EN-US">C# for Emacs mode</span>
								<span style="font-family: 宋体;">，是由微软的一位工程师</span>
								<span lang="EN-US">Brad Merrill</span>
								<span style="font-family: 宋体;">利用业余时间开发的，可以在他的个人网站</span>
								<span lang="EN-US">
										<a href="http://www.cybercom.net/%7Ezbrad/">http://www.cybercom.net/~zbrad/</a>
								</span>
								<span style="font-family: 宋体;">处下载，最新版本为</span>
								<span lang="EN-US">4.0</span>
								<span style="font-family: 宋体;">。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt 5.25pt; text-indent: -5.25pt;">
				<span lang="EN-US">
						<o:p>
								<font face="Tahoma" size="2">?</font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt 5.25pt; text-indent: -5.25pt;">
				<font size="2">
						<font face="Tahoma">
								<span style="font-family: 宋体;">下载之后需要对所获得的</span>
								<span lang="EN-US">package</span>
								<span style="font-family: 宋体;">文件进行一些简单的配置。因为我此前也没有接触过</span>
								<span lang="EN-US">Lisp</span>
								<span style="font-family: 宋体;">语言，因此配置成了一大难题。经过一番</span>
								<span lang="EN-US">google</span>
								<span style="font-family: 宋体;">搜索后，终于在</span>
								<span lang="EN-US">
										<a href="http://www.experts-exchange.com/Programming/Q_20815476.html">http://www.experts-exchange.com/Programming/Q_20815476.html</a>
								</span>
								<span style="font-family: 宋体;">找到了答案。原来配置竟是非常简单：</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt 5.25pt; text-indent: -5.25pt;">
				<span lang="EN-US">
						<o:p>
								<font face="Tahoma" size="2">?</font>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
				<font size="2">
						<font face="Tahoma">
								<span style="" lang="EN-US">
										<span style="">1．<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">? </span></span>
								</span>
								<span style="font-family: 宋体;">把下载文件夹中</span>
								<span lang="EN-US">cite-lisp</span>
								<span style="font-family: 宋体;">子目录下的文件复制到</span>
								<span lang="EN-US">Emacs</span>
								<span style="font-family: 宋体;">安装目录</span>
								<span lang="EN-US">\cite-lisp\</span>
								<span style="font-family: 宋体;">下。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
				<font size="2">
						<font face="Tahoma">
								<span style="" lang="EN-US">
										<span style="">2．<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">? </span></span>
								</span>
								<span style="font-family: 宋体;">把下载文件中</span>
								<span lang="EN-US">zbrad.emacs</span>
								<span style="font-family: 宋体;">文件（</span>
								<span lang="EN-US">.emacs</span>
								<span style="font-family: 宋体;">是</span>
								<span lang="EN-US">Emacs</span>
								<span style="font-family: 宋体;">的配置文件）也复制到</span>
								<span lang="EN-US">Emacs</span>
								<span style="font-family: 宋体;">安装目录</span>
								<span lang="EN-US">\cite-lisp</span>
								<span style="font-family: 宋体;">子目录下，然后改名为</span>
								<span lang="EN-US">site-start.el</span>
								<span style="font-family: 宋体;">。</span>
						</font>
				</font>
		</p>
		<p class="MsoNormal" style="margin: 0cm 0cm 0pt 18pt; text-indent: -18pt;">
				<font size="2">
						<font face="Tahoma">
								<span style="" lang="EN-US">
										<span style="">3．<span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">? </span></span>
								</span>
								<span style="font-family: 宋体;">重新启动</span>
								<span lang="EN-US">Emacs</span>
								<span style="font-family: 宋体;">，</span>
								<span lang="EN-US">OK</span>
								<span style="font-family: 宋体;">！</span>
						</font>
				</font>
		</p>
<img src ="http://www.blogjava.net/ivanwan/aggbug/37101.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2006-03-23 22:37 <a href="http://www.blogjava.net/ivanwan/archive/2006/03/23/37101.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>显示按键的历史记录</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/12/19462.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Sat, 12 Nov 2005 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/12/19462.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19462.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/12/19462.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19462.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19462.html</trackback:ping><description><![CDATA[如果你要知道，你按过那些键。你可以按C-h l。<br>
emacs会分隔成两个windows,在下面显示你按过的键。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/19462.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-12 14:30 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/12/19462.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>直接打开压缩文件</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/11/19321.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Fri, 11 Nov 2005 07:21:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/11/19321.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19321.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/11/19321.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19321.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19321.html</trackback:ping><description><![CDATA[emacs可以直接打开压缩包里的文件。你只需在.emacs里加入：<span class="compcode"><span style="font-family: monospace;"><br>
&nbsp;&nbsp;&nbsp; </span>(require 'jka-compr) </span><span class="compcode"><span style="font-family: monospace;"><br>
&nbsp;&nbsp;&nbsp; </span>(jka-compr-install) </span><pre class="compcode"><font size="3">
</font></pre>
<pre class="compcode"><font size="3"><span class="compcode"><br></span>
</font></pre>
<img src ="http://www.blogjava.net/ivanwan/aggbug/19321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-11 15:21 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/11/19321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>打开并编辑其他服务器上的文件</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/11/19297.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Fri, 11 Nov 2005 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/11/19297.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19297.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/11/19297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19297.html</trackback:ping><description><![CDATA[要打开其他服务器上的文件，操作键和打开文件是一样的(C-x C-f)。<br>
但输入的文件的格式不一样的。格式如下：/user@hostname:filename<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/19297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-11 15:00 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/11/19297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于基本操作的补充</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/11/19291.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Fri, 11 Nov 2005 06:38:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/11/19291.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19291.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/11/19291.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19291.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19291.html</trackback:ping><description><![CDATA[C-x C-v 查找文件并打开（但会把当前缓冲区关闭）。<br>
C-x C-w 文件另存为。<br>
<br>
M-x pwd 显示当前目录。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/19291.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-11 14:38 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/11/19291.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>//的意思</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/11/19282.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Fri, 11 Nov 2005 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/11/19282.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19282.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/11/19282.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19282.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19282.html</trackback:ping><description><![CDATA[例如：/~/的意思是忽略从/到~之前的路径，实际的路径就是~/。<br>
而//的意思是忽略从/到/之前的路径，实际的路径就是/。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/19282.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-11 13:34 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/11/19282.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在buffer追加文件</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/10/19180.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Thu, 10 Nov 2005 08:33:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/10/19180.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19180.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/10/19180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19180.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19180.html</trackback:ping><description><![CDATA[在buffer追加文件，只要按C-x i。接下来会提示要插入的文件，添就够了。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/19180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-10 16:33 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/10/19180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文本的剪贴板操作</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/10/19101.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Thu, 10 Nov 2005 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/10/19101.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19101.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/10/19101.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19101.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19101.html</trackback:ping><description><![CDATA[1。移动到要复制的文本的开始位置。<br>
2。在开始位置作标记(C-@)。<br>
3。到要复制的结束位置。<br>
4。如果你要复制到剪贴板，按<font size="2"><font size="2"><span class="compcode">M-w</span> (kill-ring-save);<font size="3">如果你要剪切到</font></font></font>剪贴板，按<font size="2"><font size="2"><span class="compcode">C-w</span> (kill-region)。<br>
<br>
复制剪贴板的</font></font><font size="2"><font size="2">最近的内容，只要按C-y。<br>
而M-y则是复制的</font></font><font size="2"><font size="2">剪贴板的</font></font><font size="2"><font size="2">最近的上一次内容。<br>
<br>
比如：剪贴板内有三个依次内容的文本：one,two,three.<br>
按C-y复制的是three.<br>
按M-y复制的是two.<br>
</font></font><font size="2"><font size="2">按M-y复制的是one.</font></font><br>
<font size="2"><font size="2"><br>
</font></font><img src ="http://www.blogjava.net/ivanwan/aggbug/19101.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-10 11:21 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/10/19101.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>移动到指定行</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/10/19095.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Thu, 10 Nov 2005 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/10/19095.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19095.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/10/19095.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19095.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19095.html</trackback:ping><description><![CDATA[移动到指定行号的行的操作是很有用的。只要在.emacs加入：&nbsp;&nbsp;&nbsp;<font size="2"><pre class="compcode"><font size="3"><span class="compcode">	(global-set-key [(meta g)] 'goto-line)</span>
</font></pre>
<a name="Heading100"></a> 
</font><img src ="http://www.blogjava.net/ivanwan/aggbug/19095.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-10 10:51 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/10/19095.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>以表达式为单位的移动</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/10/19093.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Thu, 10 Nov 2005 02:39:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/10/19093.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19093.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/10/19093.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19093.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19093.html</trackback:ping><description><![CDATA[<pre>sexp 就是一个expession, n个expression如果用括号括起来就算一个.<br>      (expression的定义随语言的不同而有不同, 在C, lisp<br>        tex, html, fortran 下皆有差异)<br><br><font size="2"><font size="2"> 当你在编程时这里有一些非常有用的function. 你可以在.emacs加入：<br></font></font><font size="2"><p><font size="2"> 	<span class="compcode">(global-set-key [(meta left)] 'backward-sexp)</span><br><br> </font><font size="2"><span class="compcode">	(global-set-key [(meta right)] 'forward-sexp)</span></font></p></font><br></pre>
<img src ="http://www.blogjava.net/ivanwan/aggbug/19093.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-10 10:39 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/10/19093.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>以页段落，分隔移动</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/10/19092.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Thu, 10 Nov 2005 02:09:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/10/19092.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19092.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/10/19092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19092.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19092.html</trackback:ping><description><![CDATA[在文本中插入页分隔符（按c-q c-l)。<font size="2"><span class="compcode"></span><a name="Index1201"></a><a name="Index1202"></a><a name="Index1203"></a><a name="Index1204"></a><a name="Index1205"></a><a name="Index1206"></a><a name="Index1207"></a><a name="Index1208"></a> 
  <span class="compcode"><br>
M-}</span> （向前一个段落),<a name="Index1209"></a><a name="Index1210"></a> 
  <span class="compcode">M-{</span> (向后一个段落), <span class="compcode">C-x 
  ] </span> <a name="Index1211"></a><a name="Index1212"></a>(向前一个页), <span class="compcode">C-x [ </span> (向后一个页).</font><br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/19092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-10 10:09 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/10/19092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在buffer的最后自动添加空行</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/10/19090.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Thu, 10 Nov 2005 01:43:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/10/19090.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19090.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/10/19090.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19090.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19090.html</trackback:ping><description><![CDATA[在emacs中到达buffer的末尾，总是有bell的叫声。<br>
在.emacs中加入：<br>
&nbsp;&nbsp;&nbsp; <font size="3"><span class="compcode">(setq next-line-add-newlines t)<br>
这样就会自动你的buffer的末尾加入空行。这样就不会到达buffer末尾，也不会有bell声了。<br>
<br>
如果要取消的话，在.emacs加入：<br>
&nbsp;&nbsp;&nbsp; </span></font><font size="3"><span class="compcode">(setq next-line-add-newlines nil)</span></font><img src ="http://www.blogjava.net/ivanwan/aggbug/19090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-10 09:43 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/10/19090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>怎么让menu消失</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/10/19086.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Thu, 10 Nov 2005 01:24:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/10/19086.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/19086.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/10/19086.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/19086.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/19086.html</trackback:ping><description><![CDATA[在.emacs加入：<br>
&nbsp;&nbsp;&nbsp; (menu-bar-mode nil)<br>
这样菜单就消失了。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/19086.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-10 09:24 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/10/19086.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mode注意点</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/09/18989.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Wed, 09 Nov 2005 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/09/18989.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18989.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/09/18989.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18989.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18989.html</trackback:ping><description><![CDATA[在不同的major-mode中的特殊键绑定。我们可以用C-h m查看详细的情况。<br>
在mode中总是用C-c做前命令来指定特殊的函数。我们可以用C-c C-h来查看已经存在绑定的函数。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/18989.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-09 14:49 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/09/18989.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于point和mark</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/09/18981.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Wed, 09 Nov 2005 06:35:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/09/18981.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18981.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/09/18981.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18981.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18981.html</trackback:ping><description><![CDATA[你光标在window里的位置叫point。而mark在buffer里的位置。<br>
我们可以让emacs高亮显示。(在.emacs里添加(transient-mark-mode t))从point到mark的区域。如下：<br>
<font size="6">b<span style="background-color: rgb(255, 255, 0);">est of the</span><span style="background-color: rgb(0, 0, 0);"> </span>world<br>
<font size="3">我们还可以交换point和mark之间的位置。（C-x C-x)</font><br>
</font><br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/18981.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-09 14:35 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/09/18981.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何读入emacs的脚本</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/09/18956.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Wed, 09 Nov 2005 04:13:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/09/18956.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18956.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/09/18956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18956.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18956.html</trackback:ping><description><![CDATA[1。你可以在当前目录建一个emacs的目录。<br>
&nbsp;&nbsp;&nbsp; $mkdir emacs<br>
2。把你的脚本考到那个目录下。<br>
&nbsp;&nbsp;&nbsp; 例如：$cp -v sams-lib.el ~/emacs<br>
3。编辑默认的脚本.emacs<br>
&nbsp;&nbsp;&nbsp; $vi ~/.emacs<br>
加入下面内容：<br>
&nbsp;&nbsp;&nbsp; <span class="compcode">(setq load-path (cons "~/Emacs" load-path))</span><span class="compcode"><br>
&nbsp;&nbsp;&nbsp; (require 'sams-lib)<br>
<br>
</span><font size="2"><font size="2"><pre class="compcode"><font size="3"><span class="compcode">(load "refcard")<br>这行确保sams-lib.el中的一个函数被载入。<br></span></font></pre></font></font><br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/18956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-09 12:13 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/09/18956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>搜索</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/08/18810.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 08 Nov 2005 09:10:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/08/18810.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18810.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/08/18810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18810.html</trackback:ping><description><![CDATA[在你按下 C-s 之后，你会发现回显区里有“I-search”字样出现，这是在提示<br>
你目前 Emacs 正处于“渐进搜索”状态，正在等待你输入搜索字串。&lt;Return&gt;<br>
会结束搜索。<br>
<br>
&gt;&gt; 输入 C-s 开始一个搜索。注意敲慢一点，一次输入一个字符。<br>
&nbsp;&nbsp; 慢慢输入“cursor”整个词，每敲一个字就暂停一下，注意观察光标。<br>
&nbsp;&nbsp; 现在你应该已曾经找到“cursor”这个词了。<br>
&gt;&gt; 再按一次 C-s，搜索下一个“cursor”出现的位置。<br>
&gt;&gt; 现在按四次退格键，看看光标是如何移动的。<br>
&gt;&gt; 敲 &lt;Return&gt; 结束搜索。<br>
<br>
刚才看仔细了么？在一个渐进式搜索中，Emacs 会尝试跳到你输入的字符串的出<br>
现位置。想跳到下一个搜索目标出现的位置，只要再按一次 C-s 就行了。如果找<br>
不到，Emacs 会发出“哔”的一声，告诉你搜索失败。在整个过程中，都可以用<br>
C-g 来终止搜索。【你会发现 C-g 之后光标回到了搜索开始前的地方，而<br>
&lt;Return&gt; 会让光标留在搜索结果上，这是很有用的功能。】<br>
--------------------------------------------------------------------------------------------------<br>
<br>
Emacs 的搜索命令的独特之处在于，它是“渐进的（incremental）”，意思是搜<br>
索与输入同时进行：你在这边一个字一个字地输入你想搜索的东西，同时 Emacs<br>
在那边就替你搜索了。<br>
<br>
C-s 是向前搜索，C-r 是向后搜索。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/18810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-08 17:10 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/08/18810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自动保存</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/08/18790.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 08 Nov 2005 08:10:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/08/18790.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18790.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/08/18790.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18790.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18790.html</trackback:ping><description><![CDATA[如果你修改了一个文件但是还没来得及存盘，然后你的计算机罢工了，那么你编<br>
辑的东西很可能就找不回来了。为了避免这样的不幸一再发生，Emacs 会定期将<br>
你正在编辑的文件存入一个“自动保存”文件中。自动保存的文件名的头尾各有<br>
一个“#”字符，比如你正在编辑“hello.c”，那么它的自动保存文件就叫<br>
“#hello.c#”。在你正常存盘之后，Emacs 会删除自动保存文件。<br>
<br>
假如不幸真的发生了，你大可以从容的打开原来的文件（注意不是自动保存文件）<br>
然后输入 M-x recover file&lt;Return&gt; 来恢复你的自动保存文件。在提示确认的<br>
时候，输入 yes&lt;Return&gt; 就行了。<img src ="http://www.blogjava.net/ivanwan/aggbug/18790.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-08 16:10 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/08/18790.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>扩展命令集</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/08/18785.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 08 Nov 2005 08:06:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/08/18785.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18785.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/08/18785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18785.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18785.html</trackback:ping><description><![CDATA[Emacs 的命令就像天上的星星，数也数不清。把它们都对应到 CONTROL 和 META<br>
组合键上显然是不可能的事情。Emacs 用扩展（eXtend）命令来解决这个问题，<br>
扩展命令有两种风格：<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x&nbsp;&nbsp;&nbsp;&nbsp; 字符扩展。&nbsp; C-x 之后输入另一个字符或者组合键。<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M-x&nbsp;&nbsp;&nbsp;&nbsp; 命令名扩展。M-x 之后输入一个命令名。<br>
<br>
-------------------------------------------------------------------------------------------------------<br>
C-x 的扩展命令有很多，下面列出的是你已经学过的：<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x C-f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 寻找文件。<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x C-s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 保存文件。<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x C-b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 列出缓冲区。<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x C-c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 离开 Emacs。<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 关掉其它所有窗格，只保留一个。<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x u&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 撤销。<br>
<br>
用命令名扩展的命令一般都不太常用，或者只在部分模式下被用到。比如<br>
replace-string（字符串替换）这个命令，它会在全文范围内把一个字符串替换<br>
成另一个。在你输入 M-x 的时候，Emacs 会在屏幕底端向你询问，然后你应该输<br>
入命令名。如果你想输入“replace-string”，其实只需要敲“repl s&lt;TAB&gt;”就<br>
行了，Emacs 会帮你自动补齐的。输入完之后按 &lt;Return&gt; 。<br>
<br>
字符串替换命令需要两个参数——被替换的字符串和用来替换它的字符串。每个<br>
参数的输入用换行符来结束。<br>
<br>
&gt;&gt; 将光标移到本行的下两行空白，然后输入<br>
&nbsp;&nbsp; M-x repl s&lt;Return&gt;changed&lt;Return&gt;altered&lt;Return&gt;。<br>
<br>
&nbsp;&nbsp; 【为了继续练习，保留一行原文如下：<br>
&nbsp;&nbsp; Notice how this line has changed: you've replaced... 】<br>
<br>
请注意这一行是怎么改变的：在光标之后的范围内，你已经将“changed”这个<br>
词——不管它在哪里出现——全部用“altered”替换掉了。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/18785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-08 16:06 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/08/18785.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>缓冲区</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/08/18774.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 08 Nov 2005 06:51:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/08/18774.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18774.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/08/18774.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18774.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18774.html</trackback:ping><description><![CDATA[如果你用 C-x C-f 找到第二个文件，第一个文件仍然会在 Emacs 里。要切回第<br>
一个文件，你可以 C-x C-f 再次寻找它。这样，你可以在 Emacs 里同时打开很<br>
多文件。<br>
<br>
&gt;&gt; 用 C-x C-f foo &lt;Return&gt; 的方式建立一个名为“foo”的文件。<br>
&nbsp;&nbsp; 然后敲入一些文字，再用 C-x C-s 保存文件“foo”。<br>
&nbsp;&nbsp; 最后，输入 C-x C-f TUTORIAL.cn &lt;Return&gt; 回到这里。<br>
-----------------------------------------------------------------------------------------------<br>
Emacs 把每个编辑中的文件都放在一个称为“缓冲区（buffer）”的地方。每寻<br>
找到一个文件，Emacs 就在其内部开辟一个缓冲区。用下面的命令可以列出当前<br>
所有的缓冲区：<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x C-b&nbsp;&nbsp; 列出缓冲区<br>
<br>
&gt;&gt; 现在就试一下 C-x C-b<br>
<br>
观察一下缓冲区是如何命名的，它很可能跟其对应的文件同名。事实上，你在一<br>
个 Emacs 窗格里看到的任何文字都是某个缓冲区的一部分。<br>
<br>
&gt;&gt; 输入 C-x 1 离开缓冲区列表<br>
<br>
不管存在多少缓冲区，任何时候都只能有一个是“当前”缓冲区，也就是你正在<br>
编辑的这个。如果你想编辑另外一个缓冲区，那么你必须“切换”过去。上面讲<br>
过，用 C-x C-f 可以切换到某个文件对应的缓冲区。不过还有一个更简单点的办<br>
法，那就是用 C-x b。用这个命令，你必须输入缓冲区的名称。<br>
-----------------------------------------------------------------------------------------------<br>
C-x s&nbsp;&nbsp; 保存多个缓冲区<br>
<br>
C-x s 会找到所有已被修改但尚未存盘的缓冲区，然后向你逐个询问，是否需要<br>
存盘？<br>
<br>
&gt;&gt; 插入一行文字，然后输入 C-x s。<br>
&nbsp;&nbsp; 它应该会问你，是否要储存名为 TUTORIAL.cn 的缓冲区？<br>
&nbsp;&nbsp; 按“y”告诉它你想存盘。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/18774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-08 14:51 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/08/18774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/08/18772.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 08 Nov 2005 06:40:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/08/18772.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18772.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/08/18772.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18772.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18772.html</trackback:ping><description><![CDATA[寻找文件的命令有一个特别之处，那就是你必须给出文件名。我们称这个命令<br>
“从终端读入了一个参数”（在这里，这个参数显然就是文件名）。当你输入了<br>
这个命令之后：<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x C-f&nbsp;&nbsp; 寻找一个文件<br>
<br>
Emacs 会提示你输入文件名。你输入的文件名会出现在屏幕最底端的一行，这一<br>
行被称为小缓冲（minibuffer），在小缓冲里你可以使用通常的 Emacs 编辑命令<br>
来编辑文件名。<br>
<br>
在小缓冲里输入文件名（其实输入别的东西也一样）时可以用 C-g 取消。<br>
<br>
&gt;&gt; 输入 C-x C-f，然后输入 C-g<br>
&nbsp;&nbsp; 这会关掉小缓冲，同时也会取消使用小缓冲的 C-x C-f 命令。<br>
&nbsp;&nbsp; 当然了，你也没有找任何文件。<br>
<br>
输入完文件名之后用 &lt;Return&gt; 结束，然后 C-x C-f 命令开始工作并找到你指定<br>
的文件。小缓冲在 C-x C-f 命令结束之后也会消失。<br>
<br>
眨眼间文件就会显示在屏幕上，你可以开始编辑了。存盘用这个命令：<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x C-s&nbsp;&nbsp; 储存这个文件<br>
<br>
这个命令把 Emacs 中的文字存储到文件中。第一次存盘的时候 Emacs 会将原文<br>
件重命名以保留原文。重命名的规则通常是在原文件名之后添加一个“~”字符。<br>
<br>
存盘结束后，Emacs 会显示写入文件的文件名。你最好养成经常存盘的习惯，这<br>
样在系统崩溃或者死机的时候你不会损失太多。<img src ="http://www.blogjava.net/ivanwan/aggbug/18772.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-08 14:40 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/08/18772.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>撤销</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/08/18762.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 08 Nov 2005 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/08/18762.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18762.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/08/18762.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18762.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18762.html</trackback:ping><description><![CDATA[如果你修改了一段文字，又觉得改得不好，可以用 undo 命令进行撤销：<br>
C-x u。<br>
<br>
通常 C-x u 会消除一个命令所造成的所有改变；如果你在一行中连续多次地使用<br>
C-x u，你会把以前的命令也依次撤销。<br>
<br>
但是有两个例外：<br>
1） 没有改变文字的命令不算（包括光标移动命令和滚动命令）<br>
2） 从键盘输入的字符以组为单位——每组 20 个字符——来进行处理。<br>
&nbsp;&nbsp;&nbsp; （这是为了减少你在撤销“插入文字”动作时需要输入 C-x u 的次数）<br>
<br>
&gt;&gt; 用 C-k 将这一行移除，然后输入 C-x u ，它会再次出现。<br>
<br>
C-_ 也是撤销命令；它的作用跟 C-x u 一样，但是它比较容易多次输入。C-_ 的<br>
缺点是在某些键盘上可能不太容易按，这也正是我们同时提供 C-x u 的原因。在<br>
某些终端上，你可以按住 CONTROL 再按“/”来输入 C-_。<br>
<br>
数字参数对于 C-_ 和 C-x u 的意义是执行撤销的重复次数。<img src ="http://www.blogjava.net/ivanwan/aggbug/18762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-08 13:57 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/08/18762.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>插入与删除</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/08/18761.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 08 Nov 2005 05:54:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/08/18761.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18761.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/08/18761.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18761.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18761.html</trackback:ping><description><![CDATA[你可以用 &lt;Delback&gt; 来删除最后输入的的一个字符，这个跟你在 Emacs 之外的<br>
用法应该一样。一般来说 &lt;Delback&gt; 就是位于 &lt;Return&gt; 键上方某处的一个大号<br>
键，通常被标示为“Delete”、“Del”或者“Backspace”。<br>
<br>
<br>
下面是一个关于“删除”操作的小结：<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Delback&gt;&nbsp;&nbsp;&nbsp; 删除光标前的一个字符<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 删除光标后的一个字符<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M-&lt;Delback&gt;&nbsp; 移除光标前的一个词<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M-d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 移除光标后的一个词<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 移除从光标到“行尾”间的字符<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M-k&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 移除从光标到“句尾”间的字符<br>
<br>
【可能你已经注意到了“删除（delete）”和“移除（kill）”的用词区别，后<br>
文会有详细说明。】<br>
-----------------------------------------------------------------------------------------------------<br>
你也可以用一种统一的办法来删除缓冲区里的任何一部分：首先把光标移动到你<br>
想要删除的区域的一端，然后按 C-@ 或 C-SPC（任一即可，SPC指空格）【注意，<br>
C-SPC 往往被中文用户设定成输入法热键，如果这样，C-SPC 就被系统拦截而无<br>
法输入给 Emacs 了，因此这里还是推荐使用C-@。】，然后再移动到另一端，再<br>
按 C-w 就可以把位于这两点之间的所有文字删除了。<br>
<br>
&gt;&gt; 移动光标到上一段开头的“你”字。<br>
&gt;&gt; 输入 C-@ 。Emacs 应该会在屏幕的下方显示一个“Mark set”的消息。<br>
&gt;&gt; 移动光标到第二行中的“端”字。<br>
&gt;&gt; 输入 C-w，就会把从“你”开始到“端”之前的文字全部删除。<br>
<br>
注意,“移除（kill）”和“删除（delete）”的不同在于被移除的东西可以找回<br>
来，而被删除的就不行了。【实际上，移除掉的东西虽然看起来“消失”了，但<br>
实际上被 Emacs 记录了下来，因此还可以找回来；而删除掉的东西虽然也可能还<br>
在内存里，但是已经被Emacs“抛弃”了，所以就找不回来了。】重新插入被移除<br>
的文字称为“召回（yank）”。一般而言，那些会去除很多文字的命令会把去除<br>
掉的文字储存起来（它们被设定成了“可召回”），而那些只是去除一个字符或<br>
者只是去除空白的命令就不会储存那些被去除掉的东西（因此你就无法召回）。<br>
<br>
-----------------------------------------------------------------------------------------------------<br>
&gt;&gt; 移动光标到一非空白行的行头，然后输入 C-k 移除那一行上的文字。<br>
<br>
&gt;&gt; 再次 C-k，你可以看到它移除了跟在那一行后面的换行符。<br>
<br>
注意，单独的 C-k 会把一行的内容移除，而第二个 C-k 则会移除换行符，并使<br>
其后所有的行都向上移动。C-k 处理数字参数的方式很特别，它会把参数指定的<br>
那么多行连同其后的换行符一起移除，而不仅仅是重复 C-k 而已。比如 C-u 2<br>
C-k 会把两行以及它们的换行符移除；而如果只是输入 C-k 两次显然不是这个结<br>
果。<br>
-------------------------------------------------------------------------------------------------------<br>
将被移除的文字恢复的动作称为“召回（yanking）”。（就好像你把别人从你身<br>
边移走的东西又猛力地拉回来。）你可以在你删除文字的地方召回，也可以在别<br>
的地方召回，还可以多次召回同样的文字以得到它的多个拷贝。<br>
<br>
召回的命令是 C-y。它会在光标所在处插入你最后移除的文字。<br>
<br>
&gt;&gt; 试试看，输入 C-y 将文字召回。<br>
<br>
如果你一次连按了好几下 C-k，那么所有被移除的行会被存储在一起，只要一个<br>
C-y 就可以把它们都召回。<br>
<br>
&gt;&gt; 在这里试试，连续按几次 C-k。<br>
<br>
现在再来恢复刚刚被我们移除的文字：<br>
<br>
&gt;&gt; 按 C-y。然后把光标往下移动几行，再按一次 C-y。<br>
&nbsp;&nbsp; 现在你应该知道怎么复制文字了。<br>
<br>
C-y 可以把最近移除的文字召回，但如果你想召回的东西不是最近移除的，该怎<br>
么办呢？它们当然没有丢，你可以用 M-y 来召回它们。在用 C-y 召回最近移除<br>
的文字之后，紧接着再用 M-y 就可以召回再前一次被移除的文字，再按一次<br>
M-y 又可以召回再上一次的，因此只要多按几次 M-y 就可以找到你想要召回的东<br>
西了。找到了之后，你什么也不用做，把它们晾在那里，继续你的编辑就行了。<br>
<br>
如果你一次按 M-y 按了很多下，你可能会回到起始点，也就是最近移除的文字。<br>
【看得出这实际上是一个环。】<br>
<br>
&gt;&gt; 移除一行，移动一下光标，然后再移除另外一行。<br>
&nbsp;&nbsp; 按 C-y 将第二次移除的那行召回来。<br>
&nbsp;&nbsp; 紧接着再按 M-y，它将会被第一次移除的那行取代。<br>
&nbsp;&nbsp; 试着再按几下 M-y 看看会发生什么。<br>
&nbsp;&nbsp; 再继续，直到第二行被召回来，然后再做个几次。<br>
&nbsp;&nbsp; 如果你愿意，你可以试着给 M-y 指定一个正的或负的参数。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/18761.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-08 13:54 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/08/18761.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重复命令</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/08/18757.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 08 Nov 2005 05:37:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/08/18757.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18757.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/08/18757.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18757.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18757.html</trackback:ping><description><![CDATA[前面说过，大部分的 Emacs 命令都可以指定重复次数，这其中也包括输入字符的<br>
命令。重复执行输入字符的命令实际上就是输入多个一样的字符。<br>
<br>
&gt;&gt;&nbsp; 试试 C-u 8 *，这将会插入 ********。<img src ="http://www.blogjava.net/ivanwan/aggbug/18757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-08 13:37 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/08/18757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>窗口命令</title><link>http://www.blogjava.net/ivanwan/archive/2005/11/08/18755.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 08 Nov 2005 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2005/11/08/18755.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/18755.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2005/11/08/18755.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/18755.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/18755.html</trackback:ping><description><![CDATA[Emacs 可以有多个窗格，每个窗格都显示不同的文字。我们后面再介绍怎么对付<br>
多个窗格，现在先让我们先搞明白如何关掉多余的窗格。其实也很简单：<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-x 1&nbsp;&nbsp; 只保留一个窗格（也就是关掉其他所有的窗格）。<br>
<br>
也就是先按 CONTROL-x 然后再按 1。C-x 1 会保留光标所在的窗格，并将其扩大<br>
到整个屏幕，同时关掉所有其它的窗格。<br>
<br>
&gt;&gt; 把光标移到本行然后输入 C-u 0 C-l。<br>
<br>
&gt;&gt; 输入 CONTROL-h k CONTROL-f。观察当一个新窗格出现时当前窗格（用来显示<br>
&nbsp;&nbsp; CONTROL-f 命令的文档）是如何缩小的。<br>
<br>
&gt;&gt; 输入 C-x 1 关掉文档窗格。<br>
<img src ="http://www.blogjava.net/ivanwan/aggbug/18755.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2005-11-08 13:34 <a href="http://www.blogjava.net/ivanwan/archive/2005/11/08/18755.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>