Emacs 配置文件

news/2024/8/26 16:51:26 标签: 操作系统, shell

以下是我整理的 emacs 配置文件,供刚开始玩 emacs 的同学参考。网上有人说:emacs 是神的编辑器,如果能够用到这样的编辑器,那这个人就是神了。从我个人的经验来看,emacs 是一把利器,用好它,将会事半功倍。我们大多数的编程是受制于语言(程序员是语言的奴隶),而如果能够掌握好 emacs 这一利器,则对于自己是一个质的飞跃——编程是让语言成为程序员的奴隶。这一点,以后详细谈。

;; 常规设置
(menu-bar-mode -1) ;; 不显示菜单
(tool-bar-mode -1) ;; 不显示工具栏
(scroll-bar-mode -1) ;; 不显示滚动条
(column-number-mode 1) ;; 显示行数和列数
(setq default-directory "d:/home/") ;; 设置默认目录
(appt-activate 1) ;; 启动日历提醒
(setq require-final-newline t) ;; 编辑文件的最后一个字符是回车
(setq bookmark-default-file "~/.emacs.d/.emacs.bmk") ;; 书签文件位置
(fset 'yes-or-no-p 'y-or-n-p) ;; 简化确认时的输入
(global-set-key "\r" 'newline-and-indent) ;; 回车默认缩进
(setq inhibit-startup-message t) ;; 不显示启动时的界面
(show-paren-mode 1) ;; 显示括号的对应反括号
(setq show-paren-style 'mixed) ;; 设置显示括号的样式
(mouse-avoidance-mode 'animate) ;; 光标与鼠标重合时,移开鼠标
(setq frame-title-format "%b -- Do It Yourself") ;; 设置标题
(setq default-tab-width 4) ;; Tab 的宽度为 4
(setq-default make-backup-files nil) ;; 不产生备份文件
(set-frame-position (selected-frame) 400 140) ;; 设置初始的窗口宽高

;; 增强 find file 及 switch buffer 功能
(require 'ido)
(ido-mode t)

;; 启动 Emacs 服务,下次打开文件时使用同一个 Emacs
(server-start)

;; 设置环境变量
(setenv "LC_CTYPE" "zh_CN.UTF-8")

;; 设置全局快捷键
(global-set-key "\C-c\C-v" 'view-mode)  ;; 只读模式
(global-set-key "\C-z" 'set-mark-command) ;; Mark
(global-set-key "\C-xz" 'suspend-frame) ;; 将 Emacs 放到后台运行
(global-set-key [f8] 'occur) ;; 在当前 Buffer 中查找
(global-set-key "\C-x\C-b" 'electric-buffer-list) ;; 列出当前所有 Buffer
(global-set-key (kbd "C--") 'undo) ;; 向前恢复
(global-set-key "\C-c\C-z" 'pop-global-mark) ;; 到之前的 Marker
(global-set-key "\M-/" 'hippie-expand) ;; 智能完成
(global-set-key (kbd "C-SPC") 'nil) ;; 将 C+空格 快捷键置空
(global-set-key "\C-ca" 'org-agenda) ;; 启用 Agenda 模式
(global-set-key "\C-\\" 'toggle-truncate-lines) ;; 切换换行模式

;; 设置 Windows 下字体
(setq w32-charset-info-alist
    (cons '("gbk" w32-charset-gb2312 . 936) w32-charset-info-alist))
(setq default-frame-alist
      (append
       '((font . "fontset-gbk")) default-frame-alist))
(create-fontset-from-fontset-spec
  "-outline-Courier New-normal-r-normal-normal-13-97-96-96-c-*-fontset-gbk")
(set-fontset-font
 "fontset-default" nil
 "-outline-新宋体-normal-r-normal-*-14-*-96-96-c-*-iso10646-1" nil 'prepend)
(set-fontset-font
 "fontset-gbk" 'kana
 "-outline-新宋体-normal-r-normal-*-14-*-96-96-c-*-iso10646-1" nil 'prepend)
(set-fontset-font
 "fontset-gbk" 'han
 "-outline-新宋体-normal-r-normal-*-14-*-96-96-c-*-iso10646-1" nil 'prepend)
(set-fontset-font
 "fontset-gbk" 'cjk-misc
 "-outline-新宋体-normal-r-normal-*-14-*-96-96-c-*-iso10646-1" nil 'prepend)
(set-fontset-font
 "fontset-gbk" 'symbol
 "-outline-新宋体-normal-r-normal-*-14-*-96-96-c-*-iso10646-1" nil 'prepend)
(set-default-font "fontset-gbk")

;; 增加 Eshell 命令
;; linux 中 clear
(defun eshell/clear ()
  "to clear the eshell buffer."
  (interactive)
  (let ((inhibit-read-only t))
    (erase-buffer)))

;; 用 Windows 文件浏览器打开
(defun eshell/o (&rest args)
  "open the doc"
  (interactive)
  (if (eq nil args)
      (setq args '("explorer" ".")))
  (apply 'start-process-shell-command "Sub process of Eshell" "*Messages*"
         (car args) (cdr args)))

;; 恢复默认宽高设置
(defun retrive-position ()
  (interactive)
  (set-frame-position (selected-frame) 400 140)
  (set-frame-size (selected-frame) 80 40))

;; 还原最大化窗口
(defun frame-restore ()
  "Restore a minimized frame"
  (interactive)
  (w32-send-sys-command 61728))

;; 最大化窗口
(defun frame-maximize ()
  "Maximize the current frame"
  (interactive)
  (w32-send-sys-command 61488))

;; 关闭 Buffer,支持 Server/Client 模式的关闭
(defun my-kill ()
  "Kill buffer for server-client and not server-client."
  (interactive)
  (cond (server-buffer-clients (server-edit))
        (t (ido-kill-buffer))))

;; 设置关闭 Buffer 的快捷键
(global-set-key "\C-xk" 'my-kill)

;; 加入 package 模块,可以通过 list-package 添加扩展
(require 'package)
(package-initialize)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))

;; 设置假期,在日历中可以看到
(setq calendar-holidays '((holiday-chinese 1 1 "春节")
                          (holiday-chinese 1 15 "元宵节")
                          (holiday-fixed 3 8 "妇女节")
                          (holiday-fixed 5 1 "劳动节")
                          (holiday-fixed 6 1 "儿童节")
                          (holiday-chinese 5 5 "端午节")
                          (holiday-chinese 7 7 "七夕节")
                          (holiday-chinese 7 15 "鬼节")
                          (holiday-fixed 8 20 "纪念")
                          (holiday-chinese 8 15 "中秋节")
                          (holiday-chinese 9 9 "重阳节")
                          (holiday-fixed 10 1 "国庆节")

                          (holiday-chinese 1 1 "张三生日")
                          (holiday-chinese 3 1 "李四生日")))

;; 设置多窗口时的快捷键,Shift+方向可以切换窗口,C-c ← 可以回到前一次窗口设置
(when (fboundp 'winner-mode)
  (winner-mode)
  (windmove-default-keybindings))

在 windows 环境中,添加 emacs 的右键编辑菜单,新建一个 emacs.reg 文件,内容如下:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\emacs]
@="Emacs (&W)"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\emacs\command]
@="D:\\emacs\\bin\\emacsclientw.exe -a \"d:\\emacs\\bin\\emacsclientw.exe\" \"%1\""

编辑完后,双击 emacs.reg 即可将该配置写入到注册表,这样,右键菜单就会有一个 Emacs(W) 的东东。可以通过这个选项使用 emacs 打开任何文件。

转载于:https://www.cnblogs.com/1si2/p/emacs_config.html


http://www.niftyadmin.cn/n/1178023.html

相关文章

通过c程序更改文件的ctime和mtime

通过c程序更改文件的ctime和mtime与某个文件相同 源文件words.txt [rootbogon ~]# ll words.txt ;ll words.txt -u -rw-r--r-- 1 root root 740 7月 14 2007 words.txt -rw-r--r-- 1 root root 740 6月 12 09:33 words.txt 新建测试文件text.txt [rootbogon ~]# touch text.t…

在Android Studio中使用shareSDK进行社会化分享(图文教程)

【前言】 如今的app当中,几乎都包含了社会化分享的功能,来两张图see 一 see: 好在这种分享功能已经有第三方平台帮我们做好了,我们直接调用其SDK即可。市面上做社会化分享平台的比较好平台的有:mob等。 今天我们就用mo…

页游服务器压力测试方案

目的: 为保证单个服务器的在线玩家数量,在项目的初期,应该通过压力测试来预测在线玩家的上限! 工程说明: 我们本着实验主义,认为一切理论皆是假设,而实践实验是检验真理的唯一标准!页…

linux操作系统做服务器配置,Linux操作系统的时间服务器配置方法

时间服务器的IP为:192.168.10.1 1). # rpm -ivh ntp-4.1.2-4.EL3.1.i386.rpm 2). # vi /etc/ntp.conf 注释一行 restrict default ignore 加入一行 restrict 192.168.10.0 mask 255.255.255.0 notrust nomodify notrap 3). # vi /etc/ntp/step-tickers 加入一行 pool时间服务器…

过滤器、绑定事件、动画

一、基本过滤器 语法描述返回值:first选取第一个元素单个元素:last选取最后一个元素单个元素:not(selector)选取去除所有与给定选择器匹配的元素集合元素:even选取索引是偶数的所有元素(index 从0开始)集合元素:odd选取索引是奇数的所有元素(index 从0开始)单个元素:eq(index)选…

Linux系统基础命令

这是看itercast的学习笔记 Linux系统基础命令 日期时间 命令date用以查看、设置当前系统时间:格式化显示时间: %Y--%m--%d命令hwclock(clock)用以显示硬件时钟时间命令cal用以查看日历uptime用以查看系统运行时间输出、查看命令 命令echo用以显示文件内容命令cat用以显示文件内…

linux连接其他机器端口,Linux机器相互登录

在CentOS-02 虚拟机里面连接 CentOS-01在CentOS-01 中查看负载,看哪个设备在连接着#w在CentOS-02 中连接 CentOS-01#ssh 192.168.136.128在CentOS-01 中查看负载#w这个时候就发现多了个 192.168.136.129 也就是CentOS-02严格的写法远程连接 ssh usernameip查看下当前…

转:HTTP协议--- multipart/form-data请求分析

转自:http://blog.csdn.net/five3/article/details/7181521 首先来了解什么是multipart/form-data请求: 根据http/1.1 rfc 2616的协议规定,我们的请求方式只有OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE等,那为为何我们还会有…