flutter git 拉不起来_Flutter 开发 之 vim 环境

工欲善其事,必先利其器。

之前用了挺长时间的 vim,最近接触 flutter,刚开始根据官方推荐在 Android studio 安装了插件,虽然也有 vim 插件,但是操作体验上难免不一致,而且有些操作避免不了要使用鼠标,最后下决心折腾一下 vim 下的开发环境,用了一段感觉还不错,分享一下。

这里默认大家已经安装了 dart SDK,flutter SDK。

先说一下折腾之前我的 vim 环境:

https://github.com/amix/vimrc​github.com

这个是我的基本配置,之前也使用过一些其它配置,但是用起来都感觉不太舒适,自从发现这个 repo 之后才正式走上了折腾 vim 的不归路。

然后就是大名鼎鼎的 YouCompleteMe:

Valloric/YouCompleteMe​github.com
0285c12926f493f02c5a1fb7315c89d1.png

4b57e3eb3786d760d6797674dbee74d4.gif
官方的图直接拿过来

这个插件运气不好要折腾很久,大家自求多福吧。

安装插件也比较方便,使用 pathogen 就可以:

#仍到这个目录下就可以
~/.vim_runtime/my_plugins

插件配置:

~/.vim_runtime/vimrcs/plugins_config.vim

以上就是前提啦,下面就是主菜了

1,dart 语法解析,格式化:

dart-lang/dart-vim-plugin​github.com
4f358c651cadbec617729ab909a33b72.png
natebosch/vim-lsc​github.com
222157a34fd889a5e9b97d2e72caf7b6.png
natebosch/vim-lsc-dart​github.com
222157a34fd889a5e9b97d2e72caf7b6.png
cd ~/.vim_runtime/my_plugins/
git clone https://github.com/dart-lang/dart-vim-plugin.git
git clone https://github.com/natebosch/vim-lsc.git
git clone https://github.com/natebosch/vim-lsc-dart.git

这里可能会出现 snapshots 找不到的情况:

b976a84349d8212d5ab7fb7020ed5fcd.png

确保这两个在一个目录下。

保存时自动格式化:

vim ~/.vim_runtime/vimrc/plugins_config.vim
#添加
autocmd BufWritePre *.dart* DartFmt

20232ab873afa7cd8c710ee3bbba2b0e.gif

2,flutter 调试,运行,热加载:

thosakwe/vim-flutter​github.com
92d5a442c976ea06553ee5b5fe4a7066.png
cd ~/.vim_runtime/my_plugins/
git clone https://github.com/thosakwe/vim-flutter.git

069ee66f35a13d0c1f4e7ea67ddac2e7.gif
flutter run

ebdfbd0e94f77d05b24390a55d198873.gif
热加载

3,最后一个大招,设置 snipper:

honza/vim-snippets​github.com
d5338c082f5bdb8dc4bf400e3476da6c.png

这个在之前的 vimrc 里面已经存在了,只要到 .vim_runtime 目录下更改就可以了。

为了让这个插件 与 YouCompleteMe 共存,需要改一下:

vim ~/.vim_runtime/vimrc/plugins_config.vim

添加(这是从 stackoverflow 上拿到的一段代码):

function

添加 snipper:


cd ~/.vim_runtime/sources_non_forked/vim-snippets/snippets
vim dart.snippers
#添加
snippet stl
	import 'package:flutter/material.dart';
	class ${1:NAME} extends StatelessWidget {
		${0:$1}({Key key}): super(key: key);
		@override
		Widget build(BuildContext context) {
			return new Container();
		}
	}
snippet stf
	import 'package:flutter/material.dart';
	class ${1:NAME} extends StatefulWidget {
		${0:$1}({Key key}) : super(key: key);
		@override
		_${0:$1}State createState() => _${0:$1}State();
	}
	class _${0:$1}State extends State<${0:$1}> {
		dispose(){
			super.dispose();
		}
		initState(){
			super.initState();
		}
		@override
		Widget build(BuildContext context) {
			return new Container();
		}
	}

bced1a37d245feb5195af9b4fef1d87e.gif
最后的运行效果

就这么多了,感觉用起来还是挺爽的。如果是审查元素的话,估计要切回官方推荐的 ide 了,至少现在我还没有发现有什么好的办法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值