热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

配置EmacsFlyMake以使用Rakefile和Makefile-ConfigureEmacsFlyMaketouseRakefileaswellasMakefile

IhavebeenlearningtouseEmacsforalittlewhilenow.Sofarlikingitalot.我一直在学习使用Emacs一段时间。

I have been learning to use Emacs for a little while now. So far liking it a lot.

我一直在学习使用Emacs一段时间。到目前为止喜欢它很多。

My problem is that for little C codes I prefer using Rake instead of Make. However flymake does not seem to want anything else than Make. As it complains that it can not find Makefile. From the command line Rake is used in the same way as Make so I was wondering if there was some emacs configuration I could enter to allow Rake to be used by flymake?

我的问题是,对于小C代码,我更喜欢使用Rake而不是Make。然而,flymake似乎除了Make之外不需要任何其他东西。因为它抱怨它找不到Makefile。从命令行开始,Rake的使用方式与Make相同,所以我想知道是否有一些emacs配置我可以输入以允许flymake使用Rake?

To correct a bit what I am doing. I'm not actually editing a Rakefile. And flymake-ruby does not help at all. I'm working with C code. I just use RAKE to compile the c code using gcc instead of MAKE.

纠正我正在做的事情。我实际上并没有编辑Rakefile。而flymake-ruby根本没有帮助。我正在使用C代码。我只使用RAKE使用gcc而不是MAKE编译c代码。

3 个解决方案

#1


Right, got it now; sorry about the earlier confusion.

对,现在就搞定了;抱歉早先的混乱。

Taking a quick look through flymake.el, for *.c files, the 'make' invocation ultimately comes from here:

快速浏览一下flymake.el,对于* .c文件,'make'调用最终来自这里:

(defun flymake-get-make-cmdline (source base-dir)
  (list "make"
    (list "-s"
          "-C"
          base-dir
          (concat "CHK_SOURCES=" source)
          "SYNTAX_CHECK_MODE=1"
          "check-syntax")))

That gets called by flymake-simple-make-init, which is called because that's what *.c files are mapped to by flymake-allowed-file-name-masks.

这是由flymake-simple-make-init调用的,因为这是由flymake-allowed-file-name-masks映射到的* .c文件。

So, the right answer would be to modify flymake-allowed-file-name-masks to map *.c files to a different init defun, then write that defun to call rake the way you want. There are a bunch of those defuns already written for various things, and most of them are pretty short and sweet -- so even if you don't know Emacs Lisp, you could probably get something to work with a minimum of futzing. (The really really right answer would be to change flymake-simple-make-init so that the command name was read from a defcustom variable, then submit that change back upstream...)

因此,正确的答案是修改flymake-allowed-file-name-masks以将* .c文件映射到不同的init defun,然后编写defun以按照您想要的方式调用rake。有很多已经针对各种事情编写的defuns,其中大多数都非常短而且很甜 - 所以即使你不了解Emacs Lisp,你也可以用最少的东西来处理。 (真正正确的答案是更改flymake-simple-make-init,以便从defcustom变量中读取命令名,然后将该更改提交回上游...)

The quick-and-dirty answer, given that you said all you need to do is call 'rake' with the same args as 'make', would be to grab a copy of flymake.el, stick it early in your load-path, and munge the 'make' string in flymake-get-make-cmdline to read 'rake' instead. That'll at least get you to the next step...

快速而肮脏的答案,假设你说你需要做的就是用'make'来调用'rake',使用与'make'相同的args,就是获取flymake.el的副本,在你的加载路径中尽早贴上它,并使用flymake-get-make-cmdline中的'make'字符串来代替'rake'。那至少会让你进入下一步......

#2


Rake is Ruby syntax, so simply turning on the flymake for rby in the file should do it. This link is to someone's elisp code for doing this. the EmacsWiki has a lot on it as well. (In fact, you should be reading the EmacsWiki in general, lots of useful stuff there.)

Rake是Ruby语法,所以只需在文件中打开rby的flymake即可。此链接指向某人的elisp代码。 EmacsWiki也有很多。 (事实上​​,你应该阅读EmacsWiki,那里有很多有用的东西。)

#3


To continue with what Charlie said, the FlymakeRuby node on EmacsWiki has exactly the code you need, including the bits to enable it on rakefiles.

继续查理所说的,EmacsWiki上的FlymakeRuby节点拥有您需要的代码,包括在rakefiles上启用它的位。


推荐阅读
  • 在稀疏直接法视觉里程计中,通过优化特征点并采用基于光度误差最小化的灰度图像线性插值技术,提高了定位精度。该方法通过对空间点的非齐次和齐次表示进行处理,利用RGB-D传感器获取的3D坐标信息,在两帧图像之间实现精确匹配,有效减少了光度误差,提升了系统的鲁棒性和稳定性。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 深入探索Node.js新框架:Nest.js第六篇
    在本文中,我们将深入探讨Node.js的新框架Nest.js,并通过一个完整的示例来展示其强大功能。我们将使用多个装饰器创建一个基本控制器,该控制器提供了多种方法来访问和操作内部数据,涵盖了常见的CRUD操作。此外,我们还将详细介绍Nest.js的核心概念和最佳实践,帮助读者更好地理解和应用这一现代框架。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • STAR: 转录组数据分析中的高效比对工具介绍
    欢迎关注“生信修炼手册”!STAR 是一款专为 RNA-seq 数据设计的高效比对工具,以其卓越的速度和高灵敏度著称。该软件在处理大规模转录组数据时表现出色,能够显著提高比对效率和准确性。此外,GATK 推荐使用 STAR 进行预处理步骤,以确保后续分析的可靠性。 ... [详细]
  • 在Java编程中,为了提高代码的可读性和执行效率,建议优先使用局部变量来存储方法的返回值,而不是多次调用同一个方法。这样不仅可以减少方法调用的开销,还能避免潜在的性能问题。此外,使用局部变量还可以增强代码的可维护性和调试便利性。 ... [详细]
  • 本书详细介绍了在最新Linux 4.0内核环境下进行Java与Linux设备驱动开发的全面指南。内容涵盖设备驱动的基本概念、开发环境的搭建、操作系统对设备驱动的影响以及具体开发步骤和技巧。通过丰富的实例和深入的技术解析,帮助读者掌握设备驱动开发的核心技术和最佳实践。 ... [详细]
  • iOS开发中常用的设备标识符(IDFA、IDFV、MAC地址、UDID、openUDID)及其应用场景
    在iOS开发过程中,了解并合理使用各种设备标识符对于数据统计和用户分析至关重要。本文详细介绍了几种常用的设备标识符及其应用场景:IDFA(广告标识符)用于广告追踪和归因;IDFV(供应商标识符)适用于同一应用或同一开发者旗下的应用内识别用户;MAC地址和UDID(唯一设备标识符)虽然已被弃用,但在某些历史场景下仍有参考价值;而openUDID作为一种开源解决方案,提供了一种替代UDID的方法。这些标识符各有特点,开发者应根据具体需求选择合适的标识符。 ... [详细]
  • 如何使用 net.sf.extjwnl.data.Word 类及其代码示例详解 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • 在运行时动态获取Entity Framework中的ObjectSet可以通过反射机制实现。这种方法允许开发者在应用程序运行期间根据需要加载不同的实体集合,从而提高代码的灵活性和可扩展性。通过使用`DbContext`类的`Set`方法,结合类型信息,可以轻松地实现这一目标。此外,还可以利用`Type`对象和泛型方法来进一步增强动态性,确保在处理多种实体类型时更加高效和安全。 ... [详细]
  • 从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南
    从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • 开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用
    开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用 ... [详细]
author-avatar
日落月出星不离_887
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有