原来是使用vscode操作的,最近转移到linux下面来,顺便想转换一下编辑器,有兄弟知道emacs怎么管理工程文件吗,可以不用编译,编辑起来再说。 最好,类似source insight一样就更爽了。
我的是用 CLion 生成 CMake 文件,用 Emacs+lsp-mode编辑,用 CMake 编译,调用 openocd 进行下载
兄弟有无一些安装教程,还有使用教程呀。我感觉是没法在ubuntu工作。但是emacs是必须带回windows10。把vscode砍掉。
我一直只用Emacs做嵌入式开发,用rust和c都写过。
但是这不是Emacs的问题吧,这是单片机的问题。
github上一搜索stm32,一大堆。
用cc-mode,ccls,和lsp,自己写MakeFile(或者用工具导出),用arm-gcc系列工具编译就能很好工作,逐步调试可以用Emacs的gdb,或者有大神写过一个增强的gdb插件。
Rust的话,直接搜Awesome Embedded Rust很多相关的研究。
我想了一下,我需要的是各种跳转,查找函数调用,定义等等。 lsp-mode感觉网上介绍不多呀。 那种etags,gtags,可行吗。
我熟悉vim,最开始的编辑器就是vim,但是更喜欢emacs,后面就全忘vim了,还是打算折腾一下emacs。
lsp-mode很多啊
我没用过etags,gtags,当然也可以,很多人不用lsp。
单片机最重要的是索引硬件库的头文件。
你用工具生成
compile_commands.json
用来跳转。
因为编译如果用到硬件库,最好用厂家自带的工具生成项目,里面会有MakeFile(怎样链接硬件库都在MakeFile里面了),然后用arm-none-eabi-gcc编译就行了。
自己写MakeFile工作量巨大,不建议。
配置Emacs的嵌入式开发环境不容易,需要点时间,文档也不多,但是我配置好后绝对可以取代那些厂家垃圾IDE了,我用了几年了,没有问题,而且我在Mac上做开发的。
ccls配置:
(use-package ccls
:defer t
:config
;; for firmware arm project
(setq ccls-initialization-options '(:clang
(:extraArgs
;; ["-isystem/usr/local/Cellar/arm-none-eabi-gcc/9-2019-q4-major/gcc/arm-none-eabi/include/" "-isystem/Library/Developer/CommandLineTools/usr/include/c++/v1" "-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include" "-isystem/usr/local/include"]
["-isystem/usr/local/Cellar/arm-none-eabi-gcc/9-2019-q4-major/gcc/arm-none-eabi/include/"]
;; :resourceDir "/Library/Developer/CommandLineTools/usr/lib/clang/11.0.0")))
:resourceDir "/usr/local/Cellar/arm-none-eabi-gcc/9-2019-q4-major/gcc/arm-none-eabi/include/"))))
用工具生成compile_commands.json
文件,
然后项目下创建.ccls
和一个空白的.ccls-root
文件,
.ccls
内容
%compile_commands.json
--target=arm-none-eabi
-I/usr/local/Cellar/arm-none-eabi-gcc/9-2019-q4-major/gcc/lib/gcc/arm-none-eabi/9.2.1/include
兄弟可以阿,我持续关注一下,下班就鼓捣,有问题咨询你,我也是因为emacs开发单片机,抡了一轮的度娘,发现有效资料太少
道友,我要是能早几年知道你就好了
不用vim的按键也可以使用我的配置, 把 (require 'init-evil)
这一行从init.el
注释掉就行了.
轻量级开发,可以使用,
company-ctags
提供代码自动完成counsel-etags
代码自动导航.
以上两个插件需要命令行工具ctags(推荐 universal-ctags, 而不是操作系统或emacs可能自带的ctags/etags).
文件文本搜索的话如果已用了git安装counsel
就行了,它提供了两个命令,
counsel-git-grep
搜索文本counsel-git
找文件
兄弟,我现在正点原子的一个库函数的工程文件,怎么生成compile_commands.json呀?有教程么
(并不难找的说,另外使用前记得 clean build
对的 很多工具 自己搜一下
用谷x试试吧
不懂呀,命令是啥, bear – ,我看里面介绍说的命令是这个,然后your-build-command是啥东西呀,纯小白一个。