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

原创 2017年05月09日 01:59:23

子龙山人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

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

子龙山人Learn Emacs in 21 Days: day 5 学习笔记 继续上一回 occur-mode expand-region and iedit mode bonus...
  • killerpro
  • killerpro
  • 2017-05-09 01:59:23
  • 192

Emacs 学习地址

Master Emacs in 21 Days 一年成为 Emacs 高手 (像神一样使用编辑器)
  • wdd1324
  • wdd1324
  • 2017-12-05 11:34:35
  • 69

spacemacs org-mode配置GTD

org-mode的GTD 来自spacemacs大神-子龙山人的配置个人可根据需求修改 spacemacs的org-mode快捷键org-mode的GTDGTD,getting thing done。...
  • u011729865
  • u011729865
  • 2017-01-08 20:27:08
  • 3825

Windows10下安装emacs25.1及spacemacs

安装emacs最新版251 编辑emacs配置文件 安装spacemacs spacemacs真正的启动还需要很多设置步骤 emacs和initel的区别1. 安装emacs最新版25.1步骤: 1...
  • u011729865
  • u011729865
  • 2017-01-07 21:44:23
  • 13213

Mac 播放器mpv 安装

Mac MVP brew
  • killerpro
  • killerpro
  • 2016-11-18 02:15:29
  • 398

一枝穿云箭,千军万马来相见——致2015届电子科大信软学院新生

虽然我成绩差,智商低,又丑又懒,但我踩过的坑多啊。所以把踩过的坑分享给下一届学弟学妹   序       首先欢迎各位报考电子科技大学 !      如果你在高中获得NOIP的金牌,或者你很小的时...
  • f452465964
  • f452465964
  • 2015-06-14 19:53:50
  • 1867

Day 9: TextBlob——对文本进行情感分析

又是“30天学习30种新技术”的一天,我打算暂时把JavaScript放一放,然后学下用Python进行文本处理。本文的重点是情感分析。我在几年前就对情感分析产生了兴趣,当时我想写一个分析与电影有关的...
  • GarfieldEr007
  • GarfieldEr007
  • 2015-12-04 10:57:07
  • 1825

progit总结

1 版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 可以对任何类型的文件进行版本控制。 版本控制系统(Version Control Systems(VCS...
  • u011956172
  • u011956172
  • 2015-03-10 16:47:55
  • 1071

GitHub上深度学习Caffe开源程序代码

Caffe   Caffe is a deep learning framework made with expression, speed, and modularity in mind...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-05-26 14:39:02
  • 2046
收藏助手
不良信息举报
您举报文章:Learn Emacs in 21 Days: day 5 学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)