常见问题

;;-------------------------让Emacs拥有tabs-------------------
;;http://learn.tsinghua.edu.cn/homepage/2001315450/emacs_elisp.html
;;到上面的网页下载tabbar.el 保存到/usr/share/emacs/site-lisp/
(require 'tabbar)
(tabbar-mode)
(define-prefix-command 'lwindow-map)
;;(global-set-key (kbd "") 'lwindow-map)
;;这儿的设定王垠的主页显示有问题,
(global-set-key (kbd "<s-up>") 'tabbar-backward-group)
(global-set-key (kbd "<s-down>") 'tabbar-forward-group)
(global-set-key (kbd "<s-left>") 'tabbar-backward)
(global-set-key (kbd "<s-right>") 'tabbar-forward)
;;使用Win+方向键在tabbed buffer之间切换
;;加载了 session 之后菜单上会多两项:最近访问过的文件和最近修改过的文件 /usr/share/emacs/site-lisp/session.el
(require 'session)
(add-hook 'after-init-hook 'session-initialize)
;;保存上次打开的文件记录
(load "desktop")
(desktop-load-default)
(desktop-read)
;;如果session跟desktop配合,下次启动Emacs 的时候,就像根本没有关闭 Emacs 一样
;;把这几行加入 .emacs 就可以把 C-x C-b 那个普通的 buffer menu 换成非常方便的 ibuffer 啦
(require 'ibuffer)
(global-set-key (kbd "C-x C-b") 'ibuffer)
;;最方便的切换buffer,寻找文件的扩展
(require 'ido)
(ido-mode t)
;;使用这个,你就可以方便的在最近编辑的 buffer 之间切换了。切换的时候会出现一个小窗口显示附近的buffer,就像翻页一样
(require 'swbuff)
(global-set-key (kbd "") 'swbuff-switch-to-previous-buffer)
(global-set-key (kbd "") 'swbuff-switch-to-next-buffer)
(setq swbuff-exclude-buffer-regexps
     '("^ " "\*.*\*"))

(setq swbuff-status-window-layout 'scroll)
(setq swbuff-clear-delay 1)
(setq swbuff-separator "|")
(setq swbuff-window-min-text-height 1)
;;ecb
;;(add-to-list 'load-path "/usr/share/emacs/site-lisp/ecb")
;;(require 'ecb)


(custom-set-variables
  ;; custom-set-variables was added by Custom -- don't edit or cut/paste it!
  ;; Your init file should contain only one such instance.
 '(ecb-options-version "2.27"))
(custom-set-faces
  ;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
  ;; Your init file should contain only one such instance.
 )
;;设定显示时间
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
(display-time)

 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复] Emacs22 的内部编码原理

Emacs22 的编码原理是让多个国家的编码系统共存。


buffer里的每一个字符都用 1-4 个字节表示,比如 gb2312 的汉字就是用3个字节表示,这三个字节中的第 一个字节叫 leading byte, 说明了这个字符所属的字符集,后面两个字节是这个 字符的gb2312编码。chinese-gb2312 的 leading byte 是 0x91, big5 因为比较 大,所以分成了两个 charset: chinese-big5-1 和 chinese-big5-2, leading byte 分别是 0x98 和 0x99。

所以对于 Emacs22 来说,只要查看一个字符的 leading byte,就可以知道它属 于哪个字符集,一看是 0x91 就知道它是 gb2312 字符,一看是 0x98 就知道它 是 big5 字符。所以一个汉字可能会有好几种内部编码,比如“好”字, gb2312, big5, 朝鲜文, 日文中都有这个字,那么它就有四种内部编码。

当 Emacs22 打开一个文件的时候,就需要判断出这个文件的编码系统,然后给文 件中的每个字符加上 leading byte,放到内存中,Emacs22把这个过程叫做 decode。当emacs22保存文件时就需要根据每个字符的 leading byte 把它转换成 相应字符集的编码,再写到文件中,emacs22把这个过程叫做 encode。


为了演示 Emacs decode/encode 的过程,我们可以做个小实验:

  • 新建一个文件 ~/test.txt
  • 输入“中文”两个字
  • C-x <return> f gb2312
  • C-x C-s 保存文件
  • scrach buffer 里输入
        (insert-file-contents-literally "~/test.txt")
    C-j 一下可以看到 \326\320\316\304 ,这是八进制的“中文”两个字的编码。
  • 现在打开 ~/test.txt,然后执行
        M-x toggle-enable-multibyte-characters
    我们可以看到 \221\326\320\221\316\304,Emacs在每个汉字的编码前都加 上了一个 \221,正是十六进制的 0x91——gb2312的 leading byte。

 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复] 改正文件的编码如utf-8到gb2312
执行如下命令:

C-x <return> f    输入或按两个<Tab>后选择gb2312

 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复] 清除一个窗口的只读属性
C-x C-q      #清除一个窗口的只读属性

 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复] 矩形模式
Keystrokes Command name Action
C-x r t string Enter string-rectangle 替换选中区块的内容
(none) string-insert-rectangle 块前插入一个新块
C-x r k kill-rectangle Delete a rectangle and store it.
C-x r d delete-rectangle Delete a rectangle and do not store it.
C-x r y yank-rectangle Insert the last rectangle killed
C-x r c clear-rectangle Using spaces, blank out the area marked as a rectangle and do not store it
C-x r o open-rectangle Insert a blank rectangle in the area marked
C-x r r r copy-rectangle-to-register Copy rectangle to register r (where r is any character)
C-x r i r insert-register Insert rectangle from register r (where r is any character).
(none) delete-whitespace-rectangle If a rectangle includes initial whitespace, deletes it, narrowing rectangle



[ 此贴被cnscn在2007-03-06 13:40重新编辑 ]

 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复] 快速选取一行
  快速三次连续点击左键

 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复] 选取括号之间的内容

  如果点取的字符是一个括号的话,那么就会选取这个括号扩住的部分。 例如在 c mode 下 .

for(i=0;i<100;i++){
    printf("Hello World");
}

  点取 “{” 就会选择到另一个 “}” 的部分,同样道理应用于单

  引号双,双引号,中括号,圆括号。


 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复] 双击并拖拉来选取当前行及其他行组成的区块
双击并拖拉来选取当前行及其他行组成的区块,如果是单击的话则可能不行选取当前行,而只是选取当前字符处

 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复] 按鼠标剪切一个区块
ddddddddd
dddddddddd
ddddddddddd
{ 1)在这里点左键
大大大大大大大大大大大大磊








}2)在这里连续按两次右键,则剪切了当前区块

 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复] Ctl+左键   用于显示Buffer菜单
Ctl+左键    用于显示Buffer菜单

 » 相关连接:
Emacs下FTP emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
« 1 2» Pages: ( 1/2 total )
 » 本栏目最新帖:
 » 精华帖:

Powered by PHPWind v6.0 Code © 2003-08