sublimetext格式化bash插件

  1. 1. Dev
  2. 2. 使用方法

SublimeBashTidy

一直很喜欢Sublime Text,也有非常多的插件,对于Coder来说,代码规范看着就会觉得赏心悦目,所以很喜欢那些tidy的插件,可以自动将代码格式化,但是没有找到bash的tidy插件

做运维的bash绝对不会少写,一些简单的脚本可以直接在一行命令里搞定,但是比较复杂的,还是喜欢在编辑器里写,没有tidy插件让我很不爽,最后忍不住自己去写一个插件

自己完整的写一套bash的格式化逻辑还是有点折腾的,于是在github上搜有没有类似的project,找到了beautify_bash,也是Python的project,这就简单了

Sublime text也是Python开发的,提供了Python的API,找了下其他tidy插件的写法,格式化代码只需要调用API获取文件内容或者选中区域内容,然后将获取到字符串处理完,再次调用API把处理完的内容替换掉原来的内容

Dev

简单的文本处理插件只需要创建一个sublime_plugin.TextCommand类,类名叫XXCommand就行

原本想吧beautify_bash作为submodule加到git库里,但是submodule总是有一堆问题,最后还是选择把beautify_bash的func直接引用到插件代码里,readme里说明了来源,beauatify_bash也没有说没使用什么协议共享,放在github public project里,应该不侵权

1
sublime.Region(0, self.view.size())

通过上面代码获取到文件内容,然后把格式化后的文本通过下面方法替换原文件的内容

1
2
self.view.replace(
edit, xmlRegion, result.replace("\r", ""))

然后在touch一个sublime-keymap来定义快捷键,command就是类名XXCommand中的XX

1
2
3
4
5
6
[
{
"keys": ["super+shift+alt+b"],
"command": "bashtidy"
}

]

一个简单的插件就这么完成了,比我想象的简单,sublime text提供的API非常方便

使用方法

打开Sublime Text的Package文件夹

  • OS X: ~/Library/Application Support/Sublime Text (2/3)/Packages/
  • Windows: %APPDATA%/Sublime Text (2/3)/Packages/
  • Linux: ~/.Sublime Text (2/3)/Packages/

将插件clone到Package目录,插件repo地址如下:

1
https://github.com/joysboy/SublimeBashTidy.git

安装完成后,可以通过右键菜单里选择Prettify Bash对代码格式化

或者通过ctrl + shift + P调出命令窗口,输入bashtidy对代码格式化

还可以通过快捷键调用

  • OSX: super + shift + alt + b
  • Win: ctrl + shift + alt + b
  • Linux: ctrl + shift + alt + b

如果使用有问题或者建议欢迎留言

声明: 除非注明,小峰网络遨游记文章均为原创,转载请以链接形式标明本文地址

本博客原创文字只代表本人某一时间内的观点或结论,与本人所在公司没有任何关系。

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

第三方若用于商业用途的转载,须取得本人授权。

本文作者:

本文地址:http://xfeng.me/sublime-text-plugin-pretty-bash/

你可能还对下面文章感兴趣: