• [efficiency] emacs入门


    一。

    没记错的话,这可能是第三次读emacs tutorial了。前两次读的非常慢,也不记得有没有读完了。总之最后都忘光了。

    这次读的很顺畅,利用工作的空闲时间加上今天晚上(周日)。总算是读完了。

    没有链接地址可以附: 打开emacs,启动屏幕上有个超链接写着 EMACS TUTORIAL,点上去就可以了。

    二。

    趁热打铁,随手找了个emacs lisp的快速入门:

    http://smacs.github.io/elisp/

    看到第三章,写的实在不咋地。不看了。

    三。

    info elisp能看见有个手册。

    里边介绍了官方的书

    https://www.gnu.org/software/emacs/manual/html_node/eintr/

    info里边也有这书,叫eintr。

    但是我还不会用info,不知道怎么进去。不过可以在top目录里翻,也是能翻到的。我笨么 --!

    读文档,门槛太高周期太长了。原来读了个tutorial根本就不够,不然从实际需求出发。先搞定眼前的事情,把它用起来再说。

    四。在emacs中启用cscope

    cscope的官网文档里没有任何说明。它说代码本身就是最好的说明了。

    于是,读这个文件: 

    /usr/share/emacs/site-lisp/xcscope.el

    里边说:

    第一步,先把这个文件放到load-path目录下边。因为我是pacman安装的,它当前这个地方,就是load-path的地方了。

    第二步,在配置文件里加上如下这行

    (require ‘xscrope)

    第三步,

    默认情况下。cscope会自动在当前的工作目录下创建和更新数据库文件。我们一般,更倾向于自己手工创建。所以用如下配置,把这个特性关掉。

    (setq cscope-do-not-update-database t)

    第四步。

    在你的工程根目录里,生成数据库文件

    $ cscope -R -k -b -q

    k指kernel工作,不需要生成/usr/include/下文件的索引。

    q指quick,会生成三个文件,symble是分开存储的,适合大工程。查找起来比较快。

    ┬─[tong@T7:~/Src/thirdparty/linux.git]─[06:51:02 PM]
    ╰─>$ ls cscope*
    cscope.in.out  cscope.out  cscope.po.out

    第五步。

    运行的是时候,开始的时候。你打开了源文件之后。要告诉emacs,你的cscopse数据库在什么位置上。

    使用如下命令:ctrl+c, c, a 然后根据提示,指定目录。

    第六步

    操作:

    使用ctrl+c, c, s 进行查找。

    使用ctrl+c, c, u 可以调回上一个栈。

    五。插件管理

    上一节的cscope是通过pacman装的。因为它不仅仅被emacs使用,还会别vim使用。是独立存在的。

    但是呢,我还有装更多的插件。这个时候,比如需要插件的管理。emacs自己集成了插件管理功能。

    可以用M^x, package-list-package 命令进行查看。

    查看库。库的定义,在变量package-archives里边能看查看到。在scratch模式下,使用C^h+v可以查看变量的帮助信息,如下:

    package-archives is a variable defined in ‘package.el’.
    Its value is (("gnu" . "https://elpa.gnu.org/packages/"))

    默认的库,是elpa。我们现在加一个melpa。参考这里

    elpa在这里。https://elpa.gnu.org/packages/

    melpa在这里。http://melpa.org/#/getting-started

    一。

    参照melpa的文档。我们把melpa也加进去,在配置文件中增加如下一行:

    (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages") t)

    二。

    使用命令,更新数据库

    M^x package-refresh-contents

    三。

    查看所有的包

    M^x package-list-packages

    安装需要的包

    M-x package-install

    六。安装目录树插件

    用五中提到的方法安装neotree

    在list package的窗口里选定包的名字。可以打开帮助信息。

    七。安装像VIM里的taglist、tagbar一样的插件

    它的名字叫imenu-list。用五中的方法安装。

    安装好之后,使用如下命令查看一下帮助

    C^h P imenu-list

    帮助里并没有说,需要该配置文件来初始化,所以就可以直接用了。

    使用如下命令,就可以打开一个新的window了。

    M-x imenu-list-minor-mode

    至此。基本上就可以替换vim使用了。

    当然还有很多东西需要学,不过既然可以用起来,就是说已经入了门,之后便可以一边用一边学了。

    终有一天会越用越熟的。

    最后的效果,截个图看一下。

      

  • 相关阅读:
    bzoj1303: [CQOI2009]中位数图
    bzoj1778: [Usaco2010 Hol]Dotp 驱逐猪猡(概率DP+高斯消元)
    bzoj1013: [JSOI2008]球形空间产生器sphere(高斯消元)
    bzoj1857: [Scoi2010]传送带(三分套三分)
    LibreOJ #6221. 幂数 !(数论+dfs+剪枝)
    bzoj1968: [Ahoi2005]COMMON 约数研究(数论)
    bzoj1015: [JSOI2008]星球大战starwar(并查集)
    SRM16 B-2(DP)
    数据库的增、删、改、查 (CURD)
    软件开发
  • 原文地址:https://www.cnblogs.com/hugetong/p/9980098.html
Copyright © 2020-2023  润新知