Vim plugin for compiling, uploading, and debugging arduino sketches.
It makes use of the Arduino IDE's commandline interface (new in 1.5.x).
Plug 'stevearc/vim-arduino'
See documentation for full use of Vim Plug.
cd ~/.vim/bundle/
git clone https://github.com/stevearc/vim-arduino
You also need to download the Arduino
IDE (version 1.5 or newer) and make
sure the arduino
command is in your PATH.
The docs have detailed information about configuring vim-arduino: https://github.com/stevearc/vim-arduino/blob/master/doc/arduino.txt
The main commands you will want to use are:
:ArduinoChooseBoard
- Select the type of board from a list.:ArduinoChooseProgrammer
- Select the programmer from a list.:ArduinoChoosePort
- Select the serial port from a list.:ArduinoVerify
- Build the sketch.:ArduinoUpload
- Build and upload the sketch.:ArduinoSerial
- Connect to the board for debugging over a serial port.:ArduinoUploadAndSerial
- Build, upload, and connect for debugging.
To make easy use of these, you may want to bind them to a key combination. You
can put the following in .vim/ftplugin/arduino.vim
:
nnoremap <buffer> <leader>am :ArduinoVerify<CR>
nnoremap <buffer> <leader>au :ArduinoUpload<CR>
nnoremap <buffer> <leader>ad :ArduinoUploadAndSerial<CR>
nnoremap <buffer> <leader>ab :ArduinoChooseBoard<CR>
nnoremap <buffer> <leader>ap :ArduinoChooseProgrammer<CR>
If you want to add the board type to your status line, it's easy with the following:
" my_file.ino [arduino:avr:uno]
function! MyStatusLine()
return '%f [' . g:arduino_board . ']'
endfunction
setl statusline=%!MyStatusLine()
Or if you want something a bit fancier that includes serial port info:
" my_file.ino [arduino:avr:uno] [arduino:usbtinyisp] (/dev/ttyACM0:9600)
function! MyStatusLine()
let port = arduino#GetPort()
let line = '%f [' . g:arduino_board . '] [' . g:arduino_programmer . ']'
if !empty(port)
let line = line . ' (' . port . ':' . g:arduino_serial_baud . ')'
endif
return line
endfunction
setl statusline=%!MyStatusLine()
If you are using the Vim status line plugin Lightline this plugin will automatically attempt to detect Lightline's presence and add the component.
You can deactivate it with:
let g:arduino_lightline = 0
Everything is under the MIT License except for the wonderful syntax file, which was created by Johannes Hoff and copied from vim.org and is under the Vim License.