极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11798|回复: 2

Ubuntu下使用vim开发arduino

[复制链接]
发表于 2015-1-18 17:29:12 | 显示全部楼层 |阅读模式
本帖最后由 mikewootc 于 2015-1-18 19:33 编辑

Ubuntu下使用vim开发arduino

1 背景

由于是vim的重度使用者, 在试了一下linux下的arduino IDE后, 实在觉得不适应. 所以在网上找了一下配合vim的使用方法, 貌似还不只一种. 本文参考的是该页面:

Using Vim for Arduino development, 文中提到了两种方法, 他描述的旧的方法, 但是据说旧的方法已经不维护了, 所以我按照那篇文中的新方法来做的. 新方法是用的ino这个工具. 项目路径在: https://github.com/tclem/vim-arduino

本文写作的时候, 该方法才只是0.1.0版本, 不过是可以用的. 其实它就是在vim封装了几个ino命令.

本文基于: arduino UNO开发板, 据说如果是其他的型号, 需要自己来配配置文件, UNO可以直接用(确实可以).
2 安装vim-arduino
2.1 安装依赖软件

sudo apt-get install pathogen
sudo apt-get install python-pip
sudo pip install ino

2.2 安装vim-arduino

在这里下载: https://github.com/tclem/vim-arduino

然后将其中的plugin拷贝到vim的插件目录, 一般是~/.vim

注意: 本文写作的时候, 该工具只绑定了几个快捷键, 并没有内置语法高亮, 所以还需要另外再找语法高亮文件(有点坑的说). 本文后面会提供一种高亮下载.
3 使用vim-arduino
3.1 创建arduino(ino)工程

创建空文件夹(如果不是空文件夹, ino不让创建工程):

mkdir blink
cd blink

创建工程:

ino init -t blink

-t 创建一个控制arduino UNO板子上LED灯闪烁的程序. 如果不加参数, 则创建一个空工程.

如果不创建ino工程, ino是不给编译的, 说没有ino工程. 个人试了一下, 所谓的创建工程, 貌似就是得有个src目录, 里面放着个.ino的文件. 作者试了一下, 自己创建个src, 然后把ino文件放进去, 也可以用.
3.2 vim快捷键

`<Leader>ac` - Compile the current sketch. 编译
`<Leader>ad` - Compile and deploy the current sketch. 编译并烧写到arduino
`<Leader>as` - Open a serial port in `screen`. 开启串口

<Leader>as 这条快捷键映射, 貌似是在mac上用的, 我这里linux用不了, 后来发现直接安装screen命令, 然后执行

screen /dev/ttyACM0

就可以了, 其中/dev/ttyACM0是我的arduino UNO的那个设备.
4 语法高亮
4.1 下载高亮文件

http://www.vim.org/scripts/script.php?script_id=2654
4.2 使用高亮

将下载下载的arduino.vim放到高亮目录下. 一般是~/.vim/syntax

编辑 ~/.vim/filetype.vim, 添加如下两行, 使vim能识别.ino和.pde文件:

au BufRead,BufNewFile *.pde set filetype=arduino
au BufRead,BufNewFile *.ino set filetype=arduino

然后就可以看到高亮了.
5 tagbar配置

tagbar是一个taglist的替代品, 比taglist更适合c++使用, 函数能够按类区分, 支持按类折叠显示等, 显示结果清晰简洁, 强烈推荐, 下载地址如下:

http://www.vim.org/scripts/script.php?script_id=3465

更多信息请自行百度google, 再次只贴出我对于arduino的配置. 这个配置是我自己捣鼓出来的, 如果您发现有bug或者更好的配置, 欢迎邮件到页面最下方的邮箱告知.

let g:tagbar_autoclose = 0
let g:tagbar_autofocus = 1
let g:tagbar_sort = 0
let g:tagbar_compact = 1
let g:tagbar_foldlevel = 1
let g:tagbar_type_arduino = {
    \ 'ctagstype' : 'c++',
    \ 'kinds'     : [
        \ 'd:macros:1:0',
        \ 'p:prototypes:1:0',
        \ 'g:enums',
        \ 'e:enumerators:0:0',
        \ 't:typedefs:0:0',
        \ 'n:namespaces',
        \ 'c:classes',
        \ 's:structs',
        \ 'u:unions',
        \ 'f:functions',
        \ 'm:members:0:0',
        \ 'v:variables:0:0'
    \ ],
    \ 'sro'        : '::',
\ }

6 参考文献

http://www.mikewootc.com/wiki/tool/sw_develop/ubuntu_vim_arduino.html
回复

使用道具 举报

发表于 2015-1-18 17:51:14 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-18 19:32:38 | 显示全部楼层
Paderboy 发表于 2015-1-18 17:51
哥们你地址没打全了 http://www.mikewootc.com/wiki/tool/sw_develop/ubuntu_vim_arduino.html

多谢楼上提醒提醒.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 09:02 , Processed in 0.035669 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表