Skip to content
Vim commands for Flutter, including hot-reload-on-save and more. πŸ¦‹
Branch: master
Clone or download
thosakwe Merge pull request #5 from paulreimer/use-nvim-chansend
Use chansend for nvim, to send commands to the flutter_job
Latest commit d85bd07 Mar 21, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
autoload Use chansend for nvim, to send commands to the flutter_job Mar 20, 2019
plugin Use BufWritePost for hr-on-save Mar 14, 2019
.gitignore 🎯 Mar 13, 2019
LICENSE Initial commit Mar 13, 2019


Vim commands for Flutter, including hot-reload-on-save and more.

Demo usage GIF


Usage documentation can be found both in this README, as well as via calling :h flutter.


vim-flutter is a Vimscript-only plugin, and makes heavy use of Vim8's async jobs. It can be installed with a package manager like vim-plug , for example.

Though this package doesn't depend on it, having dart-vim-plugin available is recommended, for a betterexperience.

You may also consider combining package:dart_language_server with a Language Server Protocol client, like ale.

Plug 'dart-lang/dart-vim-plugin'
Plug 'thosakwe/vim-flutter'

" Run :PlugInstall to install the plugin.

Ultimately, installation is up to you.


  • g:flutter_command - The Flutter executable path/name; defaults to 'flutter'.
  • g:flutter_hot_reload_on_save - Whether to auto hot-reload when dart files are saved; defaults to 1.

Provided Commands

  • :FlutterRun <args> - calls flutter run <args>
  • :FlutterHotReload - triggers a hot reload on the current Flutter process
  • :FlutterHotRestart - triggers a hot restart on the current Flutter process
  • :FlutterQuit - quits the current Flutter process
  • :FlutterDevices - opens a new buffer, and writes the output of flutter devices to it
  • :FlutterSplit - opens Flutter output in a horizontal split

The following are self-explanatory:

  • :FlutterVSplit
  • :FlutterTab

Menu Support

If you are using a GUI Vim Variant, you can add a Flutter menu by calling call FlutterMenu().

Hot Reload on Save

A convenient feature to have when working with Flutter is to automatically hot-reload an app once a file is saved. By default, whenever a dart file is saved, if and only if a Flutter process is running, it will be hot-reloaded.

You can disable this by setting g:hot_reload_on_save=0, before vim-flutter is loaded.

Example .vimrc

Plug 'thosakwe/vim-flutter'
call plug#end()

" Enable Flutter menu
call FlutterMenu()

" Some of these key choices were arbitrary;
" it's just an example.
nnoremap <leader>fa :FlutterRun<cr>
nnoremap <leader>fq :FlutterQuit<cr>
nnoremap <leader>fr :FlutterHotReload<cr>
nnoremap <leader>fR :FlutterHotRestart<cr>
You can’t perform that action at this time.