免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1006 | 回复: 0
打印 上一主题 下一主题

Emacs 初探 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-16 12:50 |只看该作者 |倒序浏览
1. Emacs 基本配置系统: ubuntu 8.04Emacs 22;;-------------------------括号匹配--------------------------;;括号匹配时显示另一端的括号,而不是跳过去(show-paren-mode t)(setq show-paren-style 'parentheses);;-------------------------语法加亮--------------------------(global-font-lock-mode t);;C默认格式为linux(add-hook 'c-mode-hook'(lambda()(c-set-style "linux"))) ;;取消开机画面(setq inhibit-startup-message t);;-------------------------显示列号--------------------------;;(setq column-number-mode t);;display the column number and line number(setq column-number-mode t)(setq line-number-mode t);;-------------------------标题拦显示buffer的名字------------;;(setq frame-title-format "emacs@%b");Emacs title bar to reflect file name;(defun frame-title-string ();"Return the file name of current buffer, using ~ if under home directory";(let;((fname (or;(buffer-file-name (current-buffer));(buffer-name))));;let body;(when (string-match (getenv "HOME") fname);(setq fname (replace-match "~" t t fname)) );   fname)); (defun display-buffer-name ()  ;   (interactive)  ;  (message (buffer-file-name (current-buffer))))  ;;; Title = 'system-name File: foo.bar';(setq frame-title-format '("" system-name " File: "(:eval (frame-title-string))))(defun frame-title-string ()"Return the file name of current buffer, using ~ if under home directory"(let ((fname (or (buffer-file-name (current-buffer)) (buffer-name))));;let body(when (string-match (getenv "HOME") fname)(setq fname (replace-match "~" t t fname)) )fname));;; Title = 'system-name File: foo.bar'(setq frame-title-format '("" system-name " File: "(:eval (frame-title-string))));;-------------------------设置emacs启动时初始化大小-------------------------;;(setq initial-frame-alist '((top . 0) (left . 0) (width . 1280) (height . 1024)));字体设置;(set-default-font "YaHeiConsolas-13");(set-fontset-font "fontset-default";                  'unicode '("YaHeiConsolas-13" . "unicode-bmp"));(setq default-frame-alist;      (append '((font . "YaHeiConsolas-13")) default-frame-alist));解决emacs shell 乱码(setq ansi-color-for-comint-mode t)(customize-group 'ansi-colors)(kill-this-buffer);关闭customize窗口;自定义按键(global-set-key [f1] 'shell);F1进入Shell(global-set-key [f5] 'gdb);F5调试程序(setq compile-command "make -f Makefile")(global-set-key [f7] 'do-compile);F7编译文件(global-set-key [f8] 'other-window);F8窗口间跳转(global-set-key [C-return] 'kill-this-buffer);C-return关闭当前buffer(global-set-key [f10] 'split-window-vertically);F10分割窗口(global-set-key [f11] 'delete-other-windows);F11 关闭其它窗口(global-set-key [f12] 'my-fullscreen);F12 全屏(global-set-key (kbd "C-,") 'backward-page);文件首(global-set-key (kbd "C-.") 'forward-page);文件尾;全屏(defun my-fullscreen ()  (interactive)  (x-send-client-message   nil 0 nil "_NET_WM_STATE" 32   '(2 "_NET_WM_STATE_FULLSCREEN" 0)));最大化(defun my-maximized-horz ()  (interactive)  (x-send-client-message   nil 0 nil "_NET_WM_STATE" 32   '(1 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)))(defun my-maximized-vert ()  (interactive)  (x-send-client-message   nil 0 nil "_NET_WM_STATE" 32   '(1 "_NET_WM_STATE_MAXIMIZED_VERT" 0)))(defun my-maximized ()  (interactive)  (x-send-client-message   nil 0 nil "_NET_WM_STATE" 32   '(1 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))  (interactive)  (x-send-client-message   nil 0 nil "_NET_WM_STATE" 32   '(1 "_NET_WM_STATE_MAXIMIZED_VERT" 0)))(my-maximized);;-------------------------设置Emacs的前景色和背景色(手工设置)-------------------------(setq default-frame-alist'(  (foreground-color . "Wheat")  (background-color . "DarkSlateGray")  (cursor-color . "green1")  ) ls);; -------------------------将文件模式和文件后缀关联起来。append表示追加-------------------------(setq auto-mode-alist    ( append        '(("\\.py\\'" . python-mode)        ("\\.s?html?\\'" . html-helper-mode)        (" \\.asp\\'" . html-helper-mode)        ("\\.phtml\\'" . html-helper-mode)        ("\\.css\\'" . css-mode)        ("\\.pc$" . c-mode)    )auto-mode-alist));;------------------------------------其它设置---------------------------------------;;(setq default-major-mode 'text-mode);一打开就起用 text 模式。(auto-image-file-mode t);打开图片显示功能(fset 'yes-or-no-p 'y-or-n-p);以 y/n代表 yes/no,可能你觉得不需要,呵呵。(display-time-mode 1);显示时间,格式如下(setq display-time-24hr-format t)(setq display-time-day-and-date t);(tool-bar-mode nil);去掉那个大大的工具栏;(scroll-bar-mode nil);去掉滚动条,因为可以使用鼠标滚轮了 ^_^(mouse-avoidance-mode 'animate);光标靠近鼠标指针时,让鼠标指针自动让开(transient-mark-mode t);(setq x-select-enable-clipboard t);支持emacs和外部程序的粘贴(setq default-fill-column 80);默认显示 80列就换行;;(setq-default make-backup-files nil);不要生成临时文件(setq track-eol t);當光標在行尾上下移動的時候,始終保持在行尾。(setq scroll-margin 3 scroll-conservatively 10000);防止頁面滾動時跳動  scroll-margin 3 可以在靠近屏幕边沿3行时就开始滚动,可以很好的看到上下文。(setq mouse-yank-at-point t);中鍵粘貼;;(setq require-final-newline t);; 自动的在文件末增加一新行(prefer-coding-system 'utf-8)(set-terminal-coding-system 'utf-8)(set-keyboard-coding-system 'utf-8)(setq load-path (cons "/home/black/.emacs.d/" load-path))(setq auto-mode-alist      (cons '("\\.py$" . python-mode) auto-mode-alist))(setq interpreter-mode-alist      (cons '("python" . python-mode)            interpreter-mode-alist))(autoload 'python-mode "python-mode" "Python editing mode." t);;; add these lines if you like color-based syntax highlighting;(global-font-lock-mode t);(setq font-lock-maximum-decoration t);(set-language-environment 'Chinese-GB);(set-keyboard-coding-system 'euc-cn);(set-clipboard-coding-system 'euc-cn);(set-terminal-coding-system 'euc-cn);(set-buffer-file-coding-system 'euc-cn);(set-selection-coding-system 'euc-cn);(modify-coding-system-alist 'process "*" 'euc-cn);(setq default-process-coding-system ; '(euc-cn . euc-cn));(setq-default pathname-coding-system 'euc-cn)[color="#0080FF"]2. Emacs + etags另外, 利用emacs看源代码时,可以加etag,以方便多个文件之间的函数跳转。简单的: find ./ -name "*.[ch]" | xargs etags -aatl + . 看函数或者变量定义ctrl + * 跳回上一层ctrl + u alt + . 跳到下一个定义处, 如果有更多的话[color="#0080FF"]3. TO BE DONE加快捷键,如果光标放在函数上,直接有另外一个窗口显示函数的定义,那就更好了, 不需要跳转, 因为有些函数很小,跳转也是比较繁琐, 能直接看到就OK了。利用Emacs看阿拉伯文字,还有收发邮件, 看bbs, 应该要去尝试一下。
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/104794/showart_2071657.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP