Learn Emacs in 21 Days: day 5 学习笔记

来源:互联网 发布:深信服广域网优化 编辑:程序博客网 时间:2024/05/31 19:05

子龙山人Learn Emacs in 21 Days: day 5 学习笔记
Youtube
youku

继续上一回

emacs lisp mode不补全单引号

 (sp-local-pair 'emacs-lisp-mode "'" nil :actions nil)

删除scrach buffer

M-x ibuffer

D
x

不在括号的结尾也让括号显示高亮

(define-advice show-paren-function (:around (fn) fix-show-paren-function)  "Highlight enclosing parens."  (cond ((looking-at-p "\\s(") (funcall fn))        (t (save-excursion             (ignore-errors (backward-up-list))             (funcall fn)))))

隐藏/删除windows下保存文件可能存在的^M

(defun hidden-dos-eol ()  "Do not show ^M in files containing mixed UNIX and DOS line endings."  (interactive)  (setq buffer-display-table (make-display-table))  (aset buffer-display-table ?\^M []))(defun remove-dos-eol ()  "Replace DOS eolns CR LF with Unix eolns CR"  (interactive)  (goto-char (point-min))  (while (search-forward "\r" nil t) (replace-match "")))

打造emacs成web开发工具

安装并配置web-mode

(setq auto-mode-alist      (append       '(("\\.js\\'" . js2-mode))        '(("\\.html\\'" . web-mode))       auto-mode-alist))

配置缩进

;; config for web mode(defun my-web-mode-indent-setup ()  (setq web-mode-markup-indent-offset 2) ; web-mode, html tag in html file  (setq web-mode-css-indent-offset 2)    ; web-mode, css in html file  (setq web-mode-code-indent-offset 2)   ; web-mode, js code in html file  )(defun my-toggle-web-indent ()  (interactive)  ;; web development  (if (or (eq major-mode 'js-mode) (eq major-mode 'js2-mode))      (progn    (setq js-indent-level (if (= js-indent-level 2) 4 2))    (setq js2-basic-offset (if (= js2-basic-offset 2) 4 2))))  (if (eq major-mode 'web-mode)      (progn (setq web-mode-markup-indent-offset (if (= web-mode-markup-indent-offset 2) 4 2))         (setq web-mode-css-indent-offset (if (= web-mode-css-indent-offset 2) 4 2))         (setq web-mode-code-indent-offset (if (= web-mode-code-indent-offset 2) 4 2))))  (if (eq major-mode 'css-mode)      (setq css-indent-offset (if (= css-indent-offset 2) 4 2)))  (setq indent-tabs-mode nil))(global-set-key (kbd "C-c t i") 'my-toggle-web-indent)

js-refactor

https://github.com/magnars/js2-refactor.el

occur

popwin

可以安装并配置popwin 具体参考视频
customize-group popwin
right
weith

occur

M-s o 输入要搜索的内容M-x ^occur-edit-mode/e 编辑查找出来的内容C-c C-c 可以将修改的内容同步用buffer里

默认光标的内容作为查找内容

  (defun occur-dwim ()    "Call `occur' with a sane default."    (interactive)    (push (if (region-active-p)              (buffer-substring-no-properties               (region-beginning)               (region-end))            (let ((sym (thing-at-point 'symbol)))              (when (stringp sym)                (regexp-quote sym))))          regexp-history)    (call-interactively 'occur))  (global-set-key "M-s o" 'occur-dwim)

imenu 可以跳转到对应的函数

M-x imenu

expand-region and iedit mode

config

C-=可以选择不断地扩展选中区域

(global-set-key (kbd "C-=") 'er/expand-region)

iedit

iedit可以同时编辑多个区域

C-; 可以激活iedit-mode

iedit和uccor混合使用

M-s o occur-mode打开查找内容e 进入编辑模式c-= 选择需要编辑的内容c-; 激活iedit-mode C-c C-c 使用occur中的修改内容生效

bonus

改变选中区域颜色

M-x customize-face
stackoverflow

org

可以导出org文件

C-c C-e
0 0