|
|
本帖最后由 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 |
|