JSer们,不管是前后端,文件头的dependency部分堆积了一群犬牙交错的require语句的时候,内心有没有过一个冲动把它们全都捋一遍全对齐了!各种foramtter给平日的眼净心静贡献了不少力量,不过我印象中ST,VIM,Webstorm好像都没有这么个插件,干脆自己写一个吧。
需求
- 以等号对齐require语句
附加需求
- 以等号或冒号对齐语句
平时VIM用的比较多,先下手这个。
VIM有自己强大的DSL插件语言vimscript, 不过各种东西的学习曲线真的是... ( %>_<% ),折腾了一下发现最关键的正则模块我没搞清楚。
想想这个需求很简单,也不需要跟编辑器做很多交互,所以还是用一个顺手的语言实现吧。
VIM具有lua, tcl, perl, ruby, python的编程接口,我就决定用python了,具体接口内容可以看文档:
|
比较关键的几个对象是:
vim.current.buffer
当前缓冲区(也可以理解是存在内存里的当前编辑文件内容)vim.current.buffer.mark
获取当前缓冲区的某个mark信息, 下面我使用的mark('<')和mark('>')是比较特殊的,上一次visual selection的起止位置vim.current.window.cursor
当前窗口下输入光标所在位置
|
这样在normal和visual模式下都可以轻松对齐了。