热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Emacs的一些问题与答案

Emacs的一些问题与答案http:www.chinaunix.net作者:iheain
Emacs 的一些问题与答案

http://www.chinaunix.net 作者:iheaing  发表于:2006-03-02 09:12:14
【发表评论】【查看原文】【C/C++讨论区】【关闭】

对《有关 Emacs 使用技巧的内容请在这个帖子》的整理。如有错误,请跟贴指出。


Emacs资源导引 
2004年 12月23日 
百科全书类:
Manpage of Emacs:http://www.linuxforum.net/books/emacs.html
Emacs 中文化指南:http://zhdotemacs.sourceforge.net/emacs/
Emacs WiKi百科:http://zh.wikipedia.org/wiki/EMACS
Emacs User's Guide:http://www.cbi.pku.edu.cn/chinese/documents/csdoc/emacs/

论坛:
http://www.linuxforum.net/forum/postlist.php?Cat=&Board=vim
http://www.smth.org/bbsdoc.php?board=Emacs

个人主页:
http://learn.tsinghua.edu.cn/homepage/2001315450/emacs.html
http://www.emacswiki.org/cgi-bin/emacs-zh
http://202.38.99.17/~huxw/emacs/daily-emacs/daily-emacs.html
http://www.veripool.com/


-------------------------------
Q:如何使用gdb设置断点的时侯让emacs高亮源代码那一行?

A:设断点是 C-x space 
-------------------------------
ecb可以到这里下载:http://ecb.sourceforge.net/
-------------------------------
Q:编辑c++文件时,现在M-;用的是//形式的注释
我想用/**/的
怎么办 ?

A:[1]M-x c-mode 
[2](defun my-c-comment ()                                                                                      
      (interactive)                                                                                         
      (insert "/* */"                                                                                      
      (backward-char 3))                                                                                    
(global-unset-key "/M-;"                                                                                   
(global-set-key "/M-;" 'my-c-comment) 
-------------------------------
Q:Emacs 和 XEmacs 的区别?

A:http://www.xemacs.org/About/XEmacsVsGNUemacs.html
-------------------------------
最新emacs for windows的下载地址
http://ftp.gnu.org/gnu/windows/emacs/
-------------------------------
Q:想在打开文件的时候就 auto indent ,不要老按 TAB 键,.emacs 怎样写?

A:
(global-set-key "/C-m" 'reindent-then-newline-and-indent)
或者这样:
(add-hook 'c-mode-common-hook
          (lambda ()
            (define-key c-mode-map 
             "/C-m" 'reindent-then-newline-and-indent))) 
-------------------------------
Q:我的是21.3.1,ecb2.27。我的ecb不支持鼠标双击阿,不知道大家的ecb是什么版本的,能不能支持鼠标双击,或者用快捷键切换到ecb窗口?

A:快捷键有啊。好些是C-c , g m 就调到methods窗口。g d  就goto directorey 窗口,
说实话,我觉得ecb窗口跳转很不方便。不如speedbar,只要设置一下speedbar-get-focus的快捷键,这个是可以toggle的。而且speedbar上该有的都有,成员函数列表都在上面。按 f 就跳到 file mode,基本ecb有的它都有了。
-------------------------------
Q:ecb有没有windows版本的? 

这些东西没有什么平台一说,都是elisp语言,用emacs byte-compile一下就可以了。但是我认为ecb的跳转很麻烦。
-------------------------------
Q:我在emscs中打开了几个文件进行编辑,我要关闭缓存中某一个文件应当怎样操作? 

A:1C-x  k
A2:c-x c-b 在要关闭的buffer的那行 d, 在x就ok了
-------------------------------
Q:我想在打开文件的时候就 auto indent 

A:你可以C-x h 选中所有内容,然后C-M / 就可以了。
-------------------------------
Q:不想要emacs de工具栏,怎样让它不显示?

A1:options 里面 show/hide ,关掉 toolbar,然后 options 再选择 一下 save options ,下次就再也不出来了。
A2:也可把(tool-bar-mode nil)加到.emacs中
-------------------------------
Q:emacs的正确发音?

A:一马克思?一卖壳丝?
-------------------------------
Q:在打开文件时如果文件名中有空格,请问我怎么输入这个空格
 发表:

A:在空格前加"/"
-------------------------------
Q:果我不小心按错了键,跑到文件头或者文件尾了,怎么能快速回到刚才光标所在的位置?

A:C-u C-@ 
-------------------------------
Q:编译某行出错时,我想快速把光标定位到此行,我应该如何做?

A:可以使用C-x ' 。注意是 `,也就是F1 下面的那个,不是单引号。
实在不行,M-x next-error 也可以。
-------------------------------
Q:怎样让emacs中复制的 东西可以在系统中使用?好象emacs不和系统使用相同的粘贴板

A1:C-y 不行吗?要不就直接在emacs中干吧。M-x shell 
A2:
M-x gdb 
file xxx.c
run 
-------------------------------
Q:emacs中怎样才能运行.c的程序?我只会编译.c的程序,不会运行。每次只能退出emacs,在shell下运行

A:不用退出啊、直接按C-x C-z 就会进入shell,你然后shell下运行,然后fg回来就可以了。或者你M-x shell,直接在emacs中运行也可以的。
-------------------------------
Q:我的emacs缩进是2两个空格。怎样设置为8个呢?

A:(setq c-basic-offset 8)
-------------------------------
Q:终端下使用Ctrl+x 2/3可以上下左右分屏,默认的是一半对一半。请问可以调整两个窗口的大小吗?

A:M-x enlarge-window (c-x ^)
M-x shrink-window
你可以把他们绑定到你喜欢得键上。 
-------------------------------
Q:请问在emacs里怎么显示日期?

A:(setq display-time-day-and-date t)
(display-time) 
-------------------------------
Q:请问C-s时候如何粘贴要搜的内容?

A1:移动光标到你要查找的东西上(不用粘贴), C-s C-w
A2:M-y 
-------------------------------
Q:不产生备份文件

A:(setq make-backup-files nil)
-------------------------------
Q:请问在emacs中怎么删除从光标位置到行首?

A1:Meta - C-k 
A2:Ctrl-u 0 Ctrl-k
-------------------------------
Q:我在xp中用GNU Emacs 21.3.1...
当按pagedown多次后...emacs就会失去响应...请问怎么回事?

A:因为你设置了scroll-margin
-------------------------------
Q:写程序时经常会遇到一个很长的代码块(用'{}'包起来的)
有什么办法能把一个代码块缩起来,需要的时候再展开

A:
    M-x hs-minor-mode
    * C-c @ ESC C-s show all
    * C-c @ ESC C-h hide all
    * C-c @ C-s show block
    * C-c @ C-h hide block
    * C-c @ C-c toggle hide/show

我重新定义了show block和hide block的键
(add-hook 'c-mode-hook 'hs-minor-mode)
C-c bh    show block
C-c bs    hide block
-------------------------------
Q:每次都语法高亮显示:(global-font-lock-mode t) 加入你的.emacs文件。

-------------------------------
Q:装上ecb,有个color-themes可以调整配色方案,ecb-change-layout可以改变ecb窗口布局
-------------------------------
Q:emacs中,想复制一段文字,或复制一行,应该怎样做
我现在是先cut,(C-SPACE ..... C-w),然后在paste(C-y)一下,有没有更好的操作

A:M-w
-------------------------------
Q:请问谁知道在编译程序的时候,怎样让光标从当前buffer自动跳到正在编译程序的buffer,然后光标一直保持在这个buffer的底部?我现在每一次编译程序后,都是C-x o,然后再C-Shift >;到最底看结果,挺麻烦的,不知道这样一个..........

A:
;; S-F9 调用 compile 并设置编译命令
;; F9 则保存所有文件并编译(无提示)
(defun du/onekey-compile ()
  "Save buffers and start compile"
  (interactive)
  (save-some-buffers t)
  (switch-to-buffer-other-window "*compilation*"
  (compile compile-command)
;  (other-window 1)
)
(global-set-key [S-f9] '(lambda ()
                          (interactive)
                          (switch-to-buffer-other-window "*compilation*"
                          (compile)
                           ; (other-window 1)
                          ))
(global-set-key [f9] 'du/onekey-compile) 
-------------------------------
Q:如何显示ASCII表?

A:http://www.cpqd.com.br/~vinicius/emacs/ascii.el 
-------------------------------
Q:怎样使得 emacs 里面, 选取的区域为矩形,而不是一行行全选上了?

A:Ctrl+空格建,然后把光标移到下几行
ctrl+x r k
ctrl+x r y
-------------------------------
Q:我的tab键被用来做格式化功能了,那我怎样才能键入一个真正的tab呢?

A:C-q TAB 
-------------------------------
Q:如何重新从磁盘里load当前编辑的文件?因为有时候文件可能被别人改了,所以才有这个需求

A:M-x revert-buffer 
-------------------------------
Q:一般我的emacs启动后都是去/usr/share/emacs/site-lisp下面找扩展程序
请问这个目录是否可以指定?
因为我现在要把我的emacs搬家到另一个没有root权限的机器
所以我不能去改他们的/usr/share/emacs/site-lisp,只能在自己的目录干活

A:
在.emacs最前头加一条(setq load-path (cons "/home/bleem1998/.emacs-site-lisp/" load-path))
然后把所有的扩展包都丢在"/home/bleem1998/.emacs-site-lisp/"就可以了
-------------------------------
Q:请问在emacs中如何设置字体和背景的颜色?

A:设置背景颜色 M-x set-background-color
可以写到 .emacs里打开emacs就设置:
(set-face-background 'default "azure") ; azure或者别的颜色
如果只想在window模式下设置背景,终端下不需要,就加上判断:
(if window-system
  (set-face-background 'default "azure"))
-------------------------------
Q:文本方式下,emacs的有些热键被终端的热键代替了。比如:ctrl-h在终端中是退格键,而emacs中是在线帮助,结果在emacs中按ctrl-h就变成了删除光标前面的字符。这种情况还很多。要怎样设置才能用emacs的热键替代终端的..........

A:
(global-set-key "/C-h" 'backward-delete-char-untabify)
(global-set-key [DEL] 'delete-char)
-------------------------------
Q:我用emacs,屏幕显示大约是80行,25列,开多个窗格时,每个窗格显示不了多少字符。
能不能让屏幕显示更多的行和列?

A:不是很清楚你的意思。是emacs窗口不够大?还是emacs编辑时自动换行的列太小?
如果是后者 (setq default-fill-column 85)
如果是前者,可以在开emacs时选择大点的尺寸,或者动动鼠标拉大点 -_-
(if window-system
  (setq default-frame-alist
     (append
        '((top . 0) (left . 0) (width . 120) (height . 60))
        default-frame-alist)))
-------------------------------
Q:fcitx的热建 Ctrol-Space 和 emacs 的 mark-set 重了, 我每次在 emacs里面输入中文,就不能mark-set了,怎么办啊?

A:Mark可以用 C-@
-------------------------------
Q:怎样把所有的/r/n都替换成/n,或者怎样删除所有的/r

A:除了使用一些工具软件(如 dos2unix、tr 等)对文件直接进行转换外,在 Emacs 中有如下两种方法:

[1]、替换法
使用 Emacs 的替换命令 replace-string 将 /r 替换为空以达到删除的目的:
M-x replace-string RETURN          # 执行 replace-string 命令
Replace string: C-q C-m RETURN     # 替换字符串。C-q C-m 为 /r 字符的输入形式
with: RETURN                       # 替换为空字符串

[2]、解码法
如果 Emacs 对文件的自动解码失败,可指定文件的解码方式打开文件。对于本问题来说,指定一种可行的 dos 解码方式即可(如 chinese-euc-dos),Emacs将会自动进行转换,从而能正确显示Window格式的文本文件的内容。在启动 Emacs 之后:
C-x C-m c chinese-euc-dos RETURN    # 指定编码方式为chinese-euc-dos
C-x C-f your_file_name RETURN       # 打开文件 
-------------------------------
Q:>;>; 1.有什么可设置emacs在选定文本后输入时把选定的文本换掉?

A:M-x pending_delete_mode               # 切换到 Delete_Selection 模式
-------------------------------
Q:>;>; 2.如何将一段选定的文字在大小写之间切换??

A:C-x C-l            # 转换为小写文字
C-x C-u           # 转换为大写文字
-------------------------------
Q:emacs中如何设置显示文件字体的大小?

A:可通过修改 Default face 的 Height 属性来实现(customize-face命令或者在菜单中找修改 face 的一项)。
如果是 XEmacs,有菜单选项可直接更改字体大小。
-------------------------------
Q:请问从其他地方copy到emacs的快接键

A:
拷贝一个文件到一个buffer里面用c-x i
拷贝一个buffer到另外一个buffer用c-x c-i
拷贝剪贴板里的用c-y
在linux力,可以直接用鼠标选定要拷贝的东西,再用鼠标中间的键拷贝到buffer里 
-------------------------------
Q:如何让emacs启动后就最大化? 

A:
(setq initial-frame-alist '((top . 0) (left . 0) (width . 97) (height . 49)))
数值自己修改吧。
-------------------------------

原帖子最后一页中有一个安装的配置文件,大家安装时可参考。
http://bbs.chinaunix.net/viewthread.php?tid=546293&extra=page%3D1&page=28

[ 本帖最后由 flw 于 2006-2-17 12:50 编辑 ]



 flw 回复于:2006-02-17 12:51:18

不错,鼓励支持一下!


 herberteuler 回复于:2006-02-17 13:08:05

建议准备使用 Emacs 的人安装 Emacs Lisp Introduction 来阅读一下。学会 Emacs Lisp 才是解决问题的终极方案。
 

推荐阅读
  • Java集合框架特性详解与开发实践笔记
    Java集合框架特性详解与开发实践笔记 ... [详细]
  • 如何使用 net.sf.extjwnl.data.Word 类及其代码示例详解 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 本文深入解析了计算机科学领域中常用的几种排序算法,包括冒泡排序、插入排序、选择排序和希尔排序。通过对这些算法的性能进行详细对比分析,探讨了它们在不同数据规模和分布情况下的优劣。研究结果表明,冒泡排序虽然实现简单,但在大多数情况下效率较低;插入排序在部分有序的数据集中表现较好;选择排序的时间复杂度较为稳定,但空间复杂度较高;而希尔排序通过引入增量序列显著提高了排序效率,适用于大规模数据集。 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 本文深入探讨了数据库性能优化与管理策略,通过实例分析和理论研究,详细阐述了如何有效提升数据库系统的响应速度和处理能力。文章首先介绍了数据库性能优化的基本原则和常用技术,包括索引优化、查询优化和存储管理等。接着,结合实际应用场景,讨论了如何利用容器化技术(如Docker)来部署和管理数据库,以提高系统的可扩展性和稳定性。最后,文章还提供了具体的配置示例和最佳实践,帮助读者在实际工作中更好地应用这些策略。 ... [详细]
  • 本文详细解析了 MySQL 5.7.20 版本中二进制日志(binlog)崩溃恢复机制的工作流程。假设使用 InnoDB 存储引擎,并且启用了 `sync_binlog=1` 配置,文章深入探讨了在系统崩溃后如何通过 binlog 进行数据恢复,确保数据的一致性和完整性。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • 尽管存在唯一列,仍显示“当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用”的消息。 ... [详细]
  • Django框架下的对象关系映射(ORM)详解
    在Django框架中,对象关系映射(ORM)技术是解决面向对象编程与关系型数据库之间不兼容问题的关键工具。通过将数据库表结构映射到Python类,ORM使得开发者能够以面向对象的方式操作数据库,从而简化了数据访问和管理的复杂性。这种技术不仅提高了代码的可读性和可维护性,还增强了应用程序的灵活性和扩展性。 ... [详细]
  • Jedis接口分类详解与应用指南
    本文详细解析了Jedis接口的分类及其应用指南,重点介绍了字符串数据类型(String)的接口功能。作为Redis中最基本的数据存储形式,字符串类型支持多种操作,如设置、获取和更新键值对等,适用于广泛的应用场景。 ... [详细]
  • MarsJava 最新发布了 2.1.7 版本,此次更新带来了多项性能优化和功能增强。新版本在系统稳定性、响应速度和资源管理方面进行了显著改进,进一步提升了用户体验。同时,新增了多个实用功能,满足开发者在复杂应用场景中的需求。 ... [详细]
author-avatar
mobiledu2502927147
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有