使用Emacs来编程

*/-->

code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}

code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}

code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}

code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}

code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}

使用Emacs来编程

看了包昊君的system-config 配置中使用帮助视频 十年Linux,百年Emacs ,感觉非常强大。
还有很多的博客,比如这篇system-config原理与使用的简要说明
这是一种全新的工作操作流和交互模式,将Emacs中一些好用的交互方式应用在bash上,应用在linux系统上(sawfish窗口管理)等。这样打造一整套属于自己的编程环境,非常高效和实用。
可以说,这个对于编程开发人员来说,确实也是一种工匠精神,把编程开发流程和开发工具,做到极致的行为。
也可以看到Emacs的强大,以及Emacs的操作方式和理念与其他的工具和系统结合起来之后,可以产生更加强大的组合。当然,我没有做Android开发,所以体会不到在2G甚至9G的源代码里面找到代码的痛苦。我目前配置和使用的helm-gtags就可以满足代码的查找和定位。当然,目前不够的是,对于函数的定义,函数的调用没有判断,需要自己手动去上下查找。这样可以向他学习一下,把函数定义和调用找出来。

目前,我的编程环境中完成有:

1 项目文件管理

使用helm-projectile来进行项目的文件查找。使用这个插件之后,在一个项目中打开、查询一个文件变得非常方便。只需要按 C-c p f 就可以了,然后输入部分文件名,它就会模糊匹配出相关的文件了。

2 代码跳转

  • 项目级跳转
    目前使用helm-gtags,可以直接查找当前词在整个项目中的定义和调用。由于项目不大,所以,基本上出现的次数都不会太多,可以很方便的预览,或者跳转过去。也可以使用这个插件搜索到结果之后,然后对所有搜索的结果进行编辑,保存之后,会把修改保存到项目的不同文件中去。这样就相当于可以对项目进行快速的重命名或者重构。
  • 文件内跳转
    文件内的跳转,主要使用helm-swoop和helm-imenu。helm-swoop可以找到文件中关键字出现的多个位置,然后,预览和跳转。也可以进行编辑,这样方便将文件中多处函数名或者变量进行重命名。helm-imenu主要是在函数直接进行跳转。

3 代码补全

  • 上下文补全
    代码补全使用company-mode,tcl语言主要使用company-dabbrev和company-keyword就可以了,本来也改写了一个company-gtags-tcl用来及时的上下文自动补全,但发现用gtags来查找补全,如果非常频繁的调用还是有延迟的。所以,另外定义了一个快捷键来单独调用。这样,这个功能就可以在整个项目中去用ctags创建所有的函数和变量的index索引,然后,把库函数补全出来,也可以顺便把函数的参数调用方式显示出来。对于,小型的动态语言的项目还是比较方便的。
  • yasnippet

    定义了一些常用的yasnippet,可以快速的插入一些常见的代码块。

4 代码检查

之前使用过一段时间的flycheck-tcl来对代码进行检查。但发现这个其实用处不大。因为一般的错误用不着代码来提示。而逻辑错误,或者其他的错误,这个也检查不了。所以就关掉了。

5 库函数文档查看

之前写过一篇文章来介绍怎么查看html的文档:emacs-w3m查看html帮助手册

6 mvc

创建了一个mvc的package,用来快速的生成一个基本的模块文件结构。

7 其他的小函数

另外也自己写了一些elisp小函数,用来拷贝当前定义的一个函数,或者当前文件的整个代码,用来在调试窗口中粘贴。

Date: 2017-01-14 14:37

Created: 2017-01-14 周六 16:35

Validate

使用Emacs来编程的更多相关文章

  1. 为了树莓派IIraspberrypi安装emacs+ecb+cedet+session+color-theme+cscope+linum

    类似这篇文章写的不多,为了避免以后大家转来转去而忽略了写文章的时间,这些特别加上是2014年6月28日,省的对不上一些软件的版本号(下文中有些"最新"的说法就相应这个时间).假设转 ...

  2. vim和emacs

    vim和emacs 在编程界一直有两大神器的传说.这两大神器一个是emacs,一个是vim.一个是神的编辑器,一个是编辑器之神. 程序员的圈子里面也一直流传着一个段子,说是世界上的程序员分为三种.使用 ...

  3. 使用C语言实现一个虚拟机

    使用C语言实现一个虚拟机 2015-6-22 21:32| 发布者: joejoe0332| 查看: 2891| 评论: 0|原作者: leoxu, Serval, 社会主义好, lostTemple ...

  4. Emacs 配置 Python 编程环境

    python编程环境设置涉及到:自动完成.语法检查.虚拟环境. 为了不把系统搞乱,在python的虚拟环境中安装相关的插件. 一.安装python虚拟环境 virtualenvwrapper sudo ...

  5. Emacs下scheme编程环境的设置

    Scheme编程环境搭建 1.1 安装Chez Scheme git clone https://github.com/cisco/ChezScheme.git cd ChezScheme ./con ...

  6. 我的.emacs文件,用于C/C++及shell编程。

    1. [代码]我的.emacs文件,用于C/C++及shell编程.;;我的配置;;1.基本配置;;外观配置***************;;禁用启动画面(setq inhibit-startup-m ...

  7. 在Emacs下用C/C++编程(转载)

    转自:http://www.caole.net/diary/emacs_write_cpp.html Table of Contents 版权说明和参考文献 参考文献: 版权说明: 序 基本流程 基本 ...

  8. windows 配置 Scheme + Emacs 编程环境

    软件下载列表: Emacs Racket (这里使用 Racket ,更加方便,便于后面配置 Emacs) 配置 安装好 Emacs 后,在 C:\Users\用户名\AppData\Roaming\ ...

  9. ubuntu 下emacs 配置

    (set-language-environment 'Chinese-GB) (set-keyboard-coding-system 'utf-8) (set-clipboard-coding-sys ...

随机推荐

  1. 《穷爸爸富爸爸——Cashflow》

    读<穷爸爸富爸爸>大约两年前了,当时对理财没什么概念,除了支付宝,就是京东小金库,哪个利率高就存哪个里.记忆中除了感觉这应该是有一定经济基础的人通常做的事,工薪阶级的自己还未达标,工资除了 ...

  2. leetcode.图.785判断二分图-Java

    1. 具体题目 给定一个无向图graph,当这个图为二分图时返回true.如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这 ...

  3. HDU - 2181 C - 哈密顿绕行世界问题(DFS

    题目传送门 C - 哈密顿绕行世界问题 一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市. Input 前20行的第i行有3个数, ...

  4. 【记录】解决前端form表单回车禁止刷新页面

    最近弄前端 有form表单的情况下 按回车会自动刷新当前页面. 现记录解决方案如下: 1.去掉表单 2.不要让表单中只有一个文本框(增加一个隐藏的文本框就行) 3.以上两点都不想使用,那么就还可以在表 ...

  5. Linux用户的基本操作3 (组的基本管理,用户提权)

    目录 组的基本原理 用户身份切换 5.用户身份提权 组的基本原理 组账户信息保存在/etc/group 和/etc/gshadow 两个文件中. /etc/group组账户信息 [root@zls ~ ...

  6. rabbitmq 发送的用户名是什么

    消费的用户名也必须是什么 接收必须单独启动线程——否则mfc会崩溃 Sleep(30000);  //30秒 只要你打开消费队列,只消费1个 队列中所有数据都丢失???????? 断线重连: 知道答案 ...

  7. [HTML知识体系]语义化标签概论

    1.什么是语义化 语义化(Semantic)在HTML5中被大量提起,就是语义化标签向浏览器和开发者展示了它所包裹内容的类型与意思,可是至今我看了好多代码,HTML5新增的语义化标签的使用率还是挺低的 ...

  8. 使用IntelliJ IDEA 15和Maven创建Java Web项目(转)

    转自:https://blog.csdn.net/myarrow/article/details/50824793 1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和 ...

  9. 选择恐惧症的福音!教你认清MVC,MVP和MVVM(转:示例挺好,不太赞同画图)

    转自:http://zjutkz.net/2016/04/13/%E9%80%89%E6%8B%A9%E6%81%90%E6%83%A7%E7%97%87%E7%9A%84%E7%A6%8F%E9%9 ...

  10. Ubuntu下下载使用sublime

    使用Sublime真心很舒服.安装方法很简单,如下 进入官网http://www.sublimetext.com/2下载你的Sublime Text 2,然后解压文件. 把解压后得到的文件移动到/us ...