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

关于coursera上Learning How to Learn课程的读书笔记

为了考研累死累活的一年终于过去了,现在在静候15号成绩出来。 在此空闲之际除了打游戏看电影的颓废之外,早早就开始注意到coursera上Learning How to Learn课程,但拖了很久都没有...
  • jixichenghao
  • jixichenghao
  • 2016年02月13日 20:29
  • 2305

C++ Primer(第五版) 学习笔记

C++语言基础: 1. C++11增加了long long 类型,表示最小尺寸为64的整数。 2. 浮点数运算使用double,通常运算速度更快。 3. 超过int容量时使用long long类型,无...
  • zxh2075
  • zxh2075
  • 2016年10月25日 15:56
  • 406

llvm学习笔记(5)

2.2.4.  匹配模板 在Instruction定义的333行,成员Pattern描述了该指令匹配怎么样的SelectionDAG结构。这是一个list类型,因此存在一条指令匹配多个dag结构的可...
  • wuhui_gdnt
  • wuhui_gdnt
  • 2017年03月24日 11:51
  • 339

[机器学习入门] 李宏毅机器学习笔记-21(Transfer Learning part 1 ; 迁移学习 part 1)

[机器学习入门] 李宏毅机器学习笔记-21(Transfer Learning part 1 ; 迁移学习 part 1) PDF VIDEOTransfer Learning 利用与tas...
  • soulmeetliang
  • soulmeetliang
  • 2017年07月05日 14:44
  • 411

C++学习笔记Day 5

在这里,可以学习到全新的IT软件设计开发模式,成为一个软件大牛,你需要以C/C++语言作为主要武器,参与ICT产品的设计开发,包括: (1)根据客户需求进行软件的概要设计和详细设计,学习和使用设计模式...
  • wangjun_huster
  • wangjun_huster
  • 2017年02月20日 22:26
  • 262

Lucene5 学习笔记(1) —— Hello World

这是第1节的内容,让我们对 lucene 全文搜索引擎有一个大概的认识。 对应 孔浩老师 01_lucenc简介和创建索引初步 这1节视频的内容。全文搜索引擎存在的意义:根据索引来查找,提高效率。方...
  • lw_power
  • lw_power
  • 2015年03月01日 22:05
  • 1835

机器学习基础(林軒田)笔记之五

本文为国立台湾大学林軒田老师机器学习基石课程第五讲的笔记。
  • xiong452980729
  • xiong452980729
  • 2016年07月05日 16:10
  • 732

[ExtJS5学习笔记]第六节 Extjs的类系统Class System命名规则及定义和调试

EXT JS 5自带了有超过300的类,到目前为止有200多万的开发者在使用extjs开发,他们来自不同的地方,有不同的背景。所以这样说来,在提供一份公共代码结构上我们就面临着一个巨大的挑战,这些代码...
  • sushengmiyan
  • sushengmiyan
  • 2014年08月11日 01:37
  • 9273

Emacs自带教程的学习笔记

Emacs Tutorial光标的切换 数字参数 安全终止 那些被封印的命令 窗格WINDOWS 插入与删除 召回 撤销UNDO 文件 FILE 缓冲区BUFFER 命令集扩展EXTENDING TH...
  • u012930876
  • u012930876
  • 2017年04月13日 14:41
  • 655

Extjs5.1学习笔记1——提示框等基本组件的使用

1、Extjs的组件配置方式,有两种:使用逗号分隔的参数,或者使用json配置对象,下面是这两种方法的示例代码: ①使用逗号分隔的参数 ②使用json...
  • yubo_725
  • yubo_725
  • 2015年04月29日 10:03
  • 703
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Learn Emacs in 21 Days: day 5 学习笔记
举报原因:
原因补充:

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