欢迎使用CSDN-markdown编辑器

My emacs config

emacs 快捷键

快捷键功能
文件操作
C-x C-f打开文件,出现提示时输入/username@host:filepath可编辑FTP文件
C-x C-v打开一个文件,取代当前缓冲区
C-x C-s保存文件
C-x C-w存为新文件
C-x i插入文件
C-x C-q切换为只读或者读写模式
C-x C-c退出Emacs
编辑操作
C-f前进一个字符
C-b后退一个字符
M-f前进一个字
M-b后退一个字
C-a移到行首
C-e移到行尾
M-a移到句首
M-e移到句尾
C-p后退一行
C-n前进一行
M-xgoto-line 跳到指定行
C-v向下翻页
M-v向上翻页
M-<缓冲区头部
M->缓冲区尾部
C-M-f向前匹配括号
C-M-b向后匹配括号
C-l当前行居中
M-n or C-u n重复操作随后的命令n次
C-u重复操作随后的命令4次
C-u C-u重复操作随后的命令8次
C-x ESC ESC执行历史命令记录,M-p选择上一条命令,M-n选择下一条命令
C-d删除一个字符
M-d删除一个字
C-k删除一行
M-k删除一句
C-w删除标记区域
C-y粘贴删除的内容 注意:C-y可以粘贴连续C-k删除的内容;先按C-y,然后按M-y可以选择粘贴被删除的内容
C-@标记开始区域
C-x h标记所有文字
C-x C-x交换光标位置和区域标记区开头
M-w复制标记区域
C-_ or C-x u撤消操作 执行SHELL命令
M-x shell打开SHELL
M-!执行SHELL命令 (shell-command)
M-1 M-!执行SHELL命令,命令输出插入光标位置,不打开新输出窗口
M-¦针对某一特定区域执行命令(shell-command-on-region), 比如 C-x h M-¦ uuencode 窗口操作
C-x 0关闭本窗口
C-x 1只留下一个窗口
C-x 2垂直均分窗口
C-x 3水平均分窗口
C-x o切换到别的窗口
C-x s保存所有窗口的缓冲
C-x b选择当前窗口的缓冲区
C-x ^纵向扩大窗口
C-x }横向扩大窗口
缓冲区列表操作
C-x C-b打开缓冲区列表
d or k标记为删除
~标记为未修改状态
%标记为只读
s保存缓冲
u取消标记
x执行标记的操作
f在当前窗口打开该缓冲区
o在其他窗口打开该缓冲区
目录操作
C-x d打开目录模式
s按日期/文件名排序显示
v阅读光标所在的文件
q退出阅读的文件
d标记为删除
x执行标记
D马上删除当前文件
C拷贝当前文件
R重命名当前文件
+新建文件夹
Z压缩文件
!对光标所在的文件执行SHELL命令
g刷新显示
i在当前缓冲区的末尾插入子目录的内容
[n]m标记光标所在的文件,如果指定n,则从光标所在的文件起后n个文件被标记
[n]u取消当前光标标记的文件,n的含义同上
t反向标记文件
%-m正则标记
q退出目录模式 说明:在目录模式中,如果输入!,在命令行中包含或者?,有特殊的含义。匹配当前光标所在的文件和所有标记的文件,?分别在每一个标记的文件上执行该命令。
程序编译
M-x compile执行编译操作
M-x gdbGDB排错
M-x dbxDBX排错
M-x xdbXDB排错
M-x sdbSDB排错
搜索模式
C-s key向前搜索
C-s查找下一个
ENTER停止搜索
C-r key反向搜索
C-s C-w以光标所在位置的字为关键字搜索
C-s C-s重复上次搜索
C-r C-r重复上次反向搜索
C-s ENTER C-w进入单词搜索模式
C-r ENTER C-w进入反向单词搜索模式
M-x replace-string ENTER search-string ENTER替换
M-% search-string ENTER replace-string ENTER交互替换
C-r在进入查找/替换模式后,该命令进入迭代编辑模式
C-M-x退出迭代编辑模式,返回到查找/替换模式
C-M-s向前正则搜索
C-M-r向后正则搜索
C-M-%正则交互替换
SHELL模式
C-c C-c相当于Bash下的C-c
C-c C-z相当于Bash下的C-z
C-c C-d相当于Bash下的C-d
M-p执行前一条命令
C-n执行下一条命令
C-c C-o删除最后一条命令产生的输出
C-c C-r屏幕滚动到最后一条命令输出的开头
C-c C-e屏幕滚动到最后一套命令输出的结尾
C-c C-p查看前一条命令的输出
C-c C-n查看后一条命令的输出
打印资料
M-x print-buffer先使用pr,然后使用lpr
M-x lpr-buffer直接使用lpr
M-x print-region
M-x lpr-region
收发邮件
M-x mail发送邮件, C-c C-s 发送,C-c C-c 发送并退出

效果

效果图

基本配置(Basic Config)

;; 支持emacs和外部程序的粘贴
(setq x-select-enable-clipboard t)
;; 一打开就起用 text 模式
(setq default-major-mode 'text-mode)
;; 显示括号匹配
(show-paren-mode t)
(setq show-paren-style 'parentheses)
;; 语法高亮
(global-font-lock-mode t)
;; 回车缩进
(global-set-key "\C-m" 'newline-and-indent)
(global-set-key (kbd "C-<return>") 'newline)
;; 以 y/n代表 yes/no
(fset 'yes-or-no-p 'y-or-n-p)
;; 设置默认tab宽度为2
(setq tab-width 2
indent-tabs-mode t
c-basic-offset 2)
;; 显示列号
(setq column-number-mode t)
(setq line-number-mode t)

(add-to-list 'load-path "~/.emacs.d/elpa/linum-relative")
(require 'linum-relative)
(global-linum-mode t)
(linum-relative-toggle)

插件管理平台(Melpa)

(require 'package) ;; You might already have this line
(add-to-list 'package-archives
             '("melpa" . "http://melpa.org/packages/"))
(when (< emacs-major-version 24)
  ;; For important compatibility libraries like cl-lib
  (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize) ;; You might already have this line

1.M-x call list-packages.
2.Find the package you want,move cursor to the line press Enter.
3.press Tab to the “Install” button and press Enter.
4.The,you can start to use the package.

Install Packages

Useful Keys:
Enter Describe the package under cursor.(describe-package)
i mark for installation.(package-menu-mark-install)
u umark.(package-menu-mark-unmark)
d mark for deletion(removal of a installed package).(package-menu-mark-delete)
r refresh the list from server.(package-menu-refresh)
x for “execute”(start install/uninstall of marked items).(package-menu-execute)

Update Packages

To update packages,just press U x.
package-menu-mark-upgrades U For any package that has a new version, the installed one will be marked “D” (for delete), and new one will be marked “I” (to install).
package-menu-execute x run the marked commands on packages

自动补全工具(auto-compelete)

(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories
             "~/.emacs.d/elpa/auto-complete/dict")
(ac-config-default)

自动补全头文件(auto-compelete-clang && auto-complete-c-headers)

(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete-clang") 
(require 'auto-complete-clang)
(setq ac-clang-auto-save t)
(setq ac-auto-start t)
(setq ac-quick-help-delay 0.5)
;; (ac-set-trigger-key "TAB")
;; (g++ -v -x c++ -E - )
;; (define-key ac-mode-map  [(control tab)] 'auto-complete)
(define-key ac-mode-map  [(control tab)] 'auto-complete)
(defun my-ac-config ()
  (setq ac-clang-flags
        (mapcar(lambda (item)(concat "-I" item))
               (split-string
                " /usr/include/c++/4.9 /usr/include/x86_64-linux-gnu/c++/4.9 /usr/include/c++/4.9/backward /usr/lib/gcc/x86_64-linux-gnu/4.9/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/include ")))
  (setq-default ac-sources '(ac-source-abbrev ac-source-dictionary ac-source-words-in-same-mode-buffers))
  (add-hook 'emacs-lisp-mode-hook 'ac-emacs-lisp-mode-setup)
  ;; (add-hook 'c-mode-common-hook 'ac-cc-mode-setup)
  (add-hook 'ruby-mode-hook 'ac-ruby-mode-setup)
  (add-hook 'css-mode-hook 'ac-css-mode-setup)
  (add-hook 'auto-complete-mode-hook 'ac-common-setup)
  (global-auto-complete-mode t))
(defun my-ac-cc-mode-setup ()
  (setq ac-sources (append '(ac-source-clang ac-source-yasnippet) ac-sources)))
(add-hook 'c-mode-common-hook 'my-ac-cc-mode-setup)
;; ac-source-gtags
(my-ac-config)
;;补全头文件
(add-to-list 'load-path "~/.emacs.d/elpa/auto-complete-c-headers")
(require 'auto-complete-c-headers)
(add-to-list 'ac-sources 'ac-source-c-headers)
(defun my:ac-c-header-init ()
  (require 'auto-complete-c-headers)
  (add-to-list 'ac-sources 'ac-source-c-headers)
  (add-to-list 'achead:include-directories '"/usr/include/c++/4.9"))
(add-hook 'c++-mode-hook 'my:ac-c-header-init) 
(add-hook 'c-mode-hook 'my:ac-c-header-init) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值