今天开始编写emacs的学习笔记

###20180522
转载自http://sunhang09.blogspot.com/2017/12/emacs.html
从2015年后半年到2017年底,反反复复把emacs,vim,lisp,spacemacs研究了一下。有时后悔emacs太坑人花了太多时间在上面,给自己立原则;有时觉得emacs太神妙,想去折腾一把。

为何不放飞自己,just do it。随心所欲,去好好地把emacs,vim,spacemacs彻底折腾一把呢。

2015-12-21 22:43———————————————————————
博客来源于:http://www.cnblogs.com/sunhang09/p/5023220.html

(os x 10.10.5 emacs24.5.1)

在软件包库中搜索flymake-google-cpplint,并且下载安装它。然后在.emacs中输入

1
2
3
4
5
6
(defun my:flymake-google-init ()
(require 'flymake-google-cpplint)
(flymake-google-cpplint-load)
)
(add-hook 'c-mode-hook 'my:flymake-google-init)
(add-hook 'c++-mode-hook 'my:flymake-google-init)

然后在终端中输入pip search cpplint,终端提示pip:command not found。所以需要安装pip,安装pip的方式是,我用wget命令获取get-pip.py,

1
wget https://bootstrap.pypa.io/get-pip.py

然后使用如下命令来安装pip

1
sudo python get-pip.py

然后,敲入命令sudo pip search cpplint,此时terminal会显示对cpplint的介绍。

然后,敲入命令sudo pip install cpplint,进行安装cpplint

But…特么的cpplint安装到哪里了,机器也不告诉我!!!

突然想起了which命令,终于找到cpplint的安装路径了,于是在.emacs中函数my:flymake-google-init中添加语句

1
2
(custom-set-variables
'(flymake-google-cpplint-command "/usr/local/bin/cpplint"))

2015-12-16 23:55———————————————————————–

(os x 10.10.5 emacs24.5.1)

不甘心,决定再尝试一下emacs的c/c++配置。于是,在事先下载好了yasnippet和autocomplete时,在.emacs中添加函数

1
2
3
4
(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 '" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include"))

其中类库的地址是通过如下命令得到

1
gcc -xc++ -E -v -

然后还需要加入hook

1
2
(add-hook 'c++-mode-hook 'my:ac-c-header-init)
(add-hook 'c-mode-hook 'my:ac-c-header-init)

于是,我打开c文件,输入include和表达式,它果然可以显灵了。

然后,我又再elpa中加载了iedit,在.emacs中添加

1
2
;; fix iedit bug in Mac
(define-key global-map (kbd "C-c ;") 'iedit-mode)

之后,我就可以在c文件中,把光标移动到一个变量上时,输入命令C-c ;,编辑窗口会高亮显示在所有地方的该变量。再输入C-c ;取消高亮。

2015-12-15 21:48———————————————————————–

(os x 10.10.5 emacs24.5.1)

每次修改.emacs文件后,要重启emacs才能使它生效。现在找到一个好方法。

1
2
3
You can use the command load-file (M-x load-file, then press return twice to accept the default filename, which is the current file being edited).

You can also just move the point to the end of any sexp and press C-x C-e to execute just that sexp. Usually it's not necessary to reload the whole file if you're just changing a line or two.

2015-12-12 11:51————————————————————————

(os x 10.10.5 emacs24.5.1)

在.emacs中添加语句

1
(setq jde-help-remote-file-exists-function '("beanshell"))

确实解决了找不到wget的问题,然后emacs提示“Package sregex is obsolete!”。

特么的我是不是要单独写个日记来记录怎么配置jdee呀,看来碰到的问题太特么多了,又特么不知道提示的是什么意思?

2015-12-12 11:22————————————————————————-

(os x 10.10.5 emacs24.5.1)

fuck!当我把jdee放到~/.emacs.d/中后,在.emacs中添加了以下语句

1
2
3
4
5
;; jdee

(add-to-list 'load-path "~/.emacs.d/jdee-2.4.1/lisp")

(load "jde")

但是,启动emacs时,提示

1
error: Cannot find wget. You might want to use the beanshell resolver instead.

然后我用brew install wget命令,安装wget成功(控制台显示:/usr/local/Cellar/wget/1.16.3: 9 files, 1.5M)。

但是重启emacs后,依然提示cannot find wget。

2015-12-12 10:49————————————————————————–

当配置java环境时,emacs被搞坏了。从mac上删除掉emacs,重装emacs-24.5-1,此时我的心情你懂得。。。

2015-12-11 ——————————————————————————–

今天我去往emacs24中添加cedet,但是查看emacswiki时,上面解释说:In Emacs 23.2, CEDET was merged into the main Emacs distribution

而且上面给出提示:TODO: please explain what code you need to load the most useful IDE tools provided by CEDET

于是我在.emacs中添加了基础配置:

1
2
3
(global-ede-mode 1)
(require 'semantic/sb)
(semantic-mode 1)

2015-12-11之前————————————————————————-

scratch是草稿缓冲区,你可以在其中乱写东西,但不会被保存

1
2
3
4
5
6
7
;; ----------------------------- 
;; 屏幕一行一行滚动光标不动
(global-set-key [(meta down)] (lambda (&optional n) (interactive "p")
(scroll-up (or n 1))))

(global-set-key [(meta up)] (lambda (&optional n) (interactive "p")
(scroll-down (or n 1))))