使用Emacs来编程
使用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小函数,用来拷贝当前定义的一个函数,或者当前文件的整个代码,用来在调试窗口中粘贴。
使用Emacs来编程的更多相关文章
- 为了树莓派IIraspberrypi安装emacs+ecb+cedet+session+color-theme+cscope+linum
类似这篇文章写的不多,为了避免以后大家转来转去而忽略了写文章的时间,这些特别加上是2014年6月28日,省的对不上一些软件的版本号(下文中有些"最新"的说法就相应这个时间).假设转 ...
- vim和emacs
vim和emacs 在编程界一直有两大神器的传说.这两大神器一个是emacs,一个是vim.一个是神的编辑器,一个是编辑器之神. 程序员的圈子里面也一直流传着一个段子,说是世界上的程序员分为三种.使用 ...
- 使用C语言实现一个虚拟机
使用C语言实现一个虚拟机 2015-6-22 21:32| 发布者: joejoe0332| 查看: 2891| 评论: 0|原作者: leoxu, Serval, 社会主义好, lostTemple ...
- Emacs 配置 Python 编程环境
python编程环境设置涉及到:自动完成.语法检查.虚拟环境. 为了不把系统搞乱,在python的虚拟环境中安装相关的插件. 一.安装python虚拟环境 virtualenvwrapper sudo ...
- Emacs下scheme编程环境的设置
Scheme编程环境搭建 1.1 安装Chez Scheme git clone https://github.com/cisco/ChezScheme.git cd ChezScheme ./con ...
- 我的.emacs文件,用于C/C++及shell编程。
1. [代码]我的.emacs文件,用于C/C++及shell编程.;;我的配置;;1.基本配置;;外观配置***************;;禁用启动画面(setq inhibit-startup-m ...
- 在Emacs下用C/C++编程(转载)
转自:http://www.caole.net/diary/emacs_write_cpp.html Table of Contents 版权说明和参考文献 参考文献: 版权说明: 序 基本流程 基本 ...
- windows 配置 Scheme + Emacs 编程环境
软件下载列表: Emacs Racket (这里使用 Racket ,更加方便,便于后面配置 Emacs) 配置 安装好 Emacs 后,在 C:\Users\用户名\AppData\Roaming\ ...
- ubuntu 下emacs 配置
(set-language-environment 'Chinese-GB) (set-keyboard-coding-system 'utf-8) (set-clipboard-coding-sys ...
随机推荐
- Springboot整合Hikari数据库连接池,密码加密
1.application.yml配置 spring: datasource: jdbcUrl: jdbc:mysql://127.0.0.1:3306/jby?serverTimezone=UTC& ...
- iOS 点击按钮截屏
@interface CaptureViewController () @property (nonatomic, strong) UIImageView *backgrounView; //控制器背 ...
- mysql各种join连接查询
最近项目用到了几次sql join查询 来满足银行变态的需求:正好晚上自学时,看到了相关视频,所以记录下相关知识,下次再用时,根据如下图片,便可知道 怎么写sql; 注意点: 在join操作中的 on ...
- codelite配置信息
codelite下编译执行wxwidgets库需要修改链接库如下: 原来的c++ compiler配置-g;-O0;-Wall;$(shell wx-config --cflags --debug) ...
- InnoDB不支持contains等
并非所有引擎都支持全文本搜索MySQL.与所有其他的DBMS一样,MySQL具有一个具体管理和处理数据的内部引擎.在你使用CREATE TABLE语句时,该引擎具体创建表,而在你使用SELECT语句或 ...
- matlab直接运行fig文件时报错
Matlab里面所的程序都是以.m的脚本文件形式保存的,所有运行的都是m文件.所以,对于guide生成的GUI程序,打开的方式有两种: 一:打开.m文件,点击m文件上的运行按钮,会自动弹出figure ...
- 巨好看的xshell配色
推荐字体Lucida console [FlatUI] text=e5e5e5 cyan(bold)=16a085 text(bold)=ecf0f1 magenta=9b59b6 green=2ec ...
- 【leetcode】991. Broken Calculator
题目如下: On a broken calculator that has a number showing on its display, we can perform two operations ...
- 【leetcode】941. Valid Mountain Array
题目如下: Given an array A of integers, return true if and only if it is a valid mountain array. Recall ...
- 推荐五个java基础学习网站,小白必备
不知道去哪找java基础资料?推荐几个学习网站,小白必备 Java经过20多年的发展,仍然是世界上最受欢迎的编程语言之一,有无限多种方法使用Java.拥有庞大的客户群.并且java应用范围很广,基本只 ...