背景

IDE 就是这样一个软件,它为了最大化程序员生产效率,提供了很多编程所需的设施和组件。 IDE 将所有开发工作集中到一个程序中,使得程序员可以编写、修改、编译、部署以及调试程序。

在这篇文章中,我们会介绍如何通过使用 bash-support vim 插件将 ​​Vim 编辑器安装和配置​​ 为一个编写 Bash 脚本的 IDE。

简介

bash-support 是一个高度定制化的 vim 插件,它允许你插入:文件头、补全语句、注释、函数、以及代码块。它也使你可以进行语法检查、使脚本可执行、一键启动调试器;而完成所有的这些而不需要关闭编辑器。

它使用快捷键(映射),通过有组织地、一致的文件内容编写/插入,使得 bash 脚本编程变得有趣和愉快。

安装配置使用

下载地址:​​https://www.vim.org/scripts/download_script.php?src_id=24452​

在你的主目录创建 ​​.vim​​ 目录,进入该目录并提取 bash-support.zip 内容:

$ mkdir ~/.vim $ cd .vim $ unzip ~/Downloads/bash-support.zip

在 ​​.vimrc​​ 文件中激活它

$ vi ~/.vimrc # filetype plug-in on  #很多介绍写的这一行,实测应该是下面这行,可能跟版本相关 filetype plugin on set number   # 可选,增加这行以在 vim 中显示行号

为了简化使用,通常使用的结构和特定操作可以分别通过键映射来插入/执行。 ​​~/.vim/doc/bashsupport.txt​​​ 和 ​​~/.vim/bash-support/doc/bash-hotkeys.pdf​​​ 或者 ​​~/.vim/bash-support/doc/bash-hotkeys.tex​​ 文件中介绍了映射。

重要:

  1. 所有映射(​​\+字符​​​ 组合)都是针对特定文件类型的:为了避免和其它插件的映射冲突,它们只适用于 ​​sh​​ 文件。
  2. 使用键映射的时候打字速度也有关系,引导符 ​​\​​​ 和后面字符的组合要在特定短时间内才能识别出来(很可能少于 3 秒 - 基于假设)。

如何为新脚本自动生成文件头

看下面的示例文件头,为了要在你所有的新脚本中自动创建该文件头,请按照以下步骤操作。

vim使用bash-support插件打造成shell编辑器_vim

首先设置你的个人信息(作者名称、作者参考、组织、公司等)

使用映射 ​​\ntw​​ 启动模板设置向导。

$ vi test.sh

此时是插入模式,点击 esc键,进入命令行模式,快速输入 \ntw 弹出如下设置向导

vim使用bash-support插件打造成shell编辑器_bash_02

选中选项 1 设置个性化文件,然后按回车键。之后,再次输入2个回车键。进入如下页面

vim使用bash-support插件打造成shell编辑器_运维_03

此时可以用vim编辑该文件的基本信息,最后保存退出。

打开另一个脚本来测试新的配置。现在文件头中应该有和下面截图类似的你的个人信息:

vim使用bash-support插件打造成shell编辑器_运维_04

常用快捷键

下面是一些用于插入语句的键映射(​​n​​​ – 普通模式, ​​i​​​ – 插入模式,​​v​​ 可视模式):

\sc – case in … esac (n, i)
\sei – elif then (n, i)
\sf – for in do done (n, i, v)
\sfo – for ((…)) do done (n, i, v)
\si – if then fi (n, i, v)
\sie – if then else fi (n, i, v)
\ss – select in do done (n, i, v)
\su – until do done (n, i, v)
\sw – while do done (n, i, v)
\sfu – function (n, i, v)
\se – echo -e "…" (n, i, v)
\sp – printf "…" (n, i, v)
\sa – 数组元素, ${.[.]} (n, i, v) 和其它更多的数组功能。

运行操作键映射的列表:

\rr – 更新文件,运行脚本(n, i) \ra – 设置脚本命令行参数 (n, i) \rc – 更新文件,检查语法 (n, i) \rco – 语法检查选项 (n, i) \rd – 启动调试器(n, i) \re – 使脚本可/不可执行(*) (n, i)

编写完脚本后,保存它然后输入 ​​\re​​ 和回车键使它可执行。