Vim ide for shell development
This article is part of the ongoing Vi / Vim Tips and Tricks Series. As a Linux sysadmin or programmer, you may do following repetitive tasks while coding bash shell script:
- Adding file header
- Adding function/frame comment
- Including default code snippet
- Performing syntax check
- Reading documentation about a function
- Converting a code block to comment, and vice versa
The bash-Support Vim plugin offers easiest way to do all of the above, saving lot of time and keystrokes.
The plugin was written by Fritz Mehner, who explains the purpose of the
plugin as: “Write and run BASH-scripts using menus and hotkeys.”
This article explains how to install the plugin in 3 easy steps and 8 powerful features of the plugin.
3 Steps to Install the bash-support plugin
Step 1: Download the bash-support plugin
Download the plugin from vim.org website.
$ cd /usr/src
$ wget -O bash-support.zip http://www.vim.org/scripts/download_script.php?src_id=9890
Step 2: Install the bash-support Vim Plugin
$ mkdir ~/.vim # if the directory does not exist already
$ cd ~/.vim
$ unzip /usr/src/bash-support.zip
Step 3: Enable the plugin in the ~/.vimrc
Add the following line to the ~/.vimrc to enable the plugin for Vim editor.
$ vim ~/.vimrc
filetype plugin on
8 Powerful Features of Bash Vim Plugin
Feature 1: Add Automatic Header to *.sh file
When you open a file with the extension .sh it opens the file with header as shown below. This will also place the cursor in the Description field in Insert mode.
#!/bin/bash
#============================================================
#
# FILE: myscript.sh
#
# USAGE: ./myscript.sh
#
# DESCRIPTION:
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: (),
# COMPANY:
# VERSION: 1.0
# CREATED: 02/14/09 15:42:08 IST
# REVISION: ---
#============================================================
To change the default value of the AUTHOR and COMPANY, add the following lines in ~/.vimrc
let g:BASH_AuthorName = 'SathiyaMoorthy'
let g:BASH_Email = 'subscribe@thegeekstuff.com'
let g:BASH_Company = 'Open Source Corporation'
Now, when you create a new bash script file, it will show the modified values for AUTHOR and COMPANY as shown below.
#!/bin/bash
#============================================================
#
# FILE: myscript.sh
#
# USAGE: ./myscript.sh
#
# DESCRIPTION:
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: SathiyaMoorthy (), subscribe@thegeekstuff.com
# COMPANY: Open Source Corporation
# VERSION: 1.0
# CREATED: 02/14/09 15:39:58 IST
# REVISION: ---
#============================================================
Note: To add custom fields to the header, modify the
~/.vim/perl-support/templates/bash-file-header file and add your own
custom field.
Feature 2: Adding Bash Function Using \sfu
For writing a subroutine, type \sfu in normal mode, which will prompt
for the function name (as shown in Fig1 below) and inserts the
subroutine with default function content (as shown in Fig2 below).

Fig 1: Type \sfu to add a bash function inside a shell script

Fig 2: Bash function added automatically inside shell script
Feature 3: Insert a Function Header Using \cfu
For inserting a function header, type \cfu in normal mode, which shows comments as shown in Fig 3.

Fig 3: Type \cfu to insert a function header inside a shell script
Feature 4: Add a Frame Comment Using \cfr
To add a frame comment, type \cfr in normal mode, which will give the following formatted comment as shown in Figure 4.

Fig 4: Type \cfr to insert a frame comment inside a shell script
Feature 5: Insert Bash Statements Inside Shell Script
Short cut keys to insert statements are:
- \sc case in … esac
- \sl elif then
- \sf for in do done
- \sfo for ((…)) do done
- \si if then fi
- \sie if then else fi
- \ss select in do done
- \st until do done
- \sw while do done
- \sfu function
- \se echo e “\n”
- \sp printf “\n”
Example: Insert the Case Statement inside a shell script automatically
\sc will insert the case statements and places the cursor next to the
case statement in INSERT mode as shown in figure 5. Like this you can
use all the mentioned short cut keystrokes to get the appropriate
statement in the table 1.

Fig 5: Type \sc to insert case statement inside bash shell script
Feature 6: Insert Predefined code-snippet to the Bash Script Using \nr
Code snippets can be read / written by using \nr and \nw
respectively. The plugin comes with few pre-defined code snippets that
you can insert into your code. Following are the default code snippets
that comes with the plugin.
$ ls -1 ~/.vim/bash-support/codesnippets/
assert
basename+pathname
basename-function
check-number-of-command-line-arguments
create-tempfile
create-tempfile-with-trap
free-software-comment
read-and-split-into-array
timestamp
usage-and-command-line-arguments.noindent
use-file-descriptor-read
use-file-descriptor-write
well-behaved-script
To include the check-number-of-command-line-arguments code snippet,
press \nr and you will be prompted for a file name. Give the file name
as check-number-of-command-line-arguments and the following code will be
automatically inserted to the shell-script.
#-----------------------------------------------------------------------
# Check number of command line arguments
#-----------------------------------------------------------------------
if [ $# -lt 1 ]
then
echo -e "\n\tUsage: ${0##/*/} File\n"
exit 1
fi
Note: You can define your own code snippets and place
it under ~/.vim/bash-support/codesnippets/. You can also build your own
code snippets from the existing code – select the part of code need to
be made as code snippet, press \nw, and give a file-name to it. From
next time, type \nr and the file-name to get your custom code snippet.
Feature 7: Get Quick Help on the Bash Builtin Commands
When you need to read help page for the bash builtins use \hh when the cursor is in the word.
In the following example (Fig 6), the read bash builtin command is
selected and \hh is typed, which displayed the quick-help on the read
command. Use the same method to get quick-help on all bash builtin
commands.

Fig 6: Type \hh to get help about the selected bash builtin command
Feature 8: Featured Commenting
Following commands will add the corresponding keyword comments. For
example, type \ckb to add the BUG comment line inside shell-script.
- \ckb Keyword BUG
- \ckt Keyword TODO
- \ckr Keyword Tricky
- \ckw Keyword WARNING
Type \ckt to add a comment line with the keyword “# :TODO: mm/dd/yy:: “.
This is basically a comment line that acts as a TODO, where you can
type the items that you would like to get it done later.

Fig 7: Type \ckt to add TODO inside bash shell script
There are lot of powerful features in the bash-support Plugin. Read the
documentation for more information. The documentation is located in the
following location on your system.
- README : ~/.vim/README.bashsupport
- PDF : ~/.vim/bash-support/doc/bash-hot-keys.pdf
- Online bash-support vim plugin documentation
- This plugin comes with a help file (bashsupport.txt) which can be viewed by :h bashsupport
- [ Generate the help tags by :helptags ~/.vim/doc, and then issue :h bashsupport ]
- Additional Screenshots of this plug-in.
Recommended Reading
Vim 101 Hacks, by Ramesh Natarajan.
I’m a command-line junkie. So, naturally I’m a huge fan of Vi and Vim
editors. Several years back, when I wrote lot of C code on Linux, I used
to read all available Vim editor tips and tricks. Based on my Vim
editor experience, I’ve written Vim 101 Hacks eBook that contains 101
practical examples on various advanced Vim features that will make you
fast and productive in the Vim editor. Even if you’ve been using Vi and
Vim Editors for several years and have not read this book, please do
yourself a favor and read this book. You’ll be amazed with the
capabilities of Vim editor.
Vim ide for shell development的更多相关文章
- lua IDE for cocos2d-x development
原文链接:http://hi.baidu.com/balduc0m/item/648093dad238bd2a39f6f78e lua IDE for cocos2d-x development -- ...
- vim IDE平台-打造属于自己的配置
vim IDE平台-打造属于自己的配置 一.前言 目前工作环境基本以Linux为主,自然用到VIM也很多,很早就对如何提高VIM的使用效率有所研究,限于时间关系,也没做个系统记录和资料积累,时间久了又 ...
- vim中执行shell命令小结
vim中执行shell命令,有以下几种形式 1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如:!ls -l ...
- vim之执行shell命令
vim中执行shell命令,有以下几种形式 (1) :!command 不退出vim, 并执行shell命令command, 将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 (2) ...
- VIM IDE
打造VIM IDE(针对C语言开发者) ================================使用vim打造IDE, 针对C语言开发者建议使用gvim================== ...
- dotfiles for linux/unix users automatically! (python Vim IDE)
Here is a brief introduction and package of dotfiles for linux/unix user. I think there are enough i ...
- Vim编辑器与shell脚本
目录 Vim文本编辑器 Shell脚本 Shell编程变量 流程控制语句 计划任务 ...
- 4.Vim编辑器与Shell命令脚本
第4章 Vim编辑器与Shell命令脚本 章节简述: 本章首先讲解如何使用Vim编辑器来编写.修改文档,然后通过逐个配置主机名称.系统网卡以及Yum软件仓库参数文件等实验,帮助读者加深Vim编辑器中诸 ...
- 一键打造vim ide 支持python golang shell等高级特性
1.vim-for-devops github: https://github.com/yxxhero/vim_for_devops 利用vim插件打造支持python.shell.golang的id ...
随机推荐
- 设置某个ip对mysql服务器有权限,以及mysql定时备份
CREATE USER 'new_username'@'211.68.%.%' IDENTIFIED BY 'password_for_new_username'; GRANT ALL ON * TO ...
- 【原】iOS学习42即时通信之XMPP(1)
1. 即时通信 1> 概述 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷,服务提供商也提供了越来越丰富的通讯服务功能 ...
- BZOJ4527 : K-D-Sequence
先把所有数减去最小值,防止负数出现问题. $d=0$,直接$O(n)$扫过去即可. $d\neq 0$,首先通过双指针求出每个数作为右端点时往左可以延伸到哪里,中间任意两个数差值都是$d$的倍数且不重 ...
- 使用React重构百度新闻webapp前端
http://wangfupeng.coding.me/share/2016/08/06/restruct-bdnews-webapp-by-react.html
- Window.location
1.location 对象 // 假设当前url是 http://localhost/rpc/plugin.php#hash?a=aaa&b=bbb alert(window.location ...
- 开篇&TexturePacker打出图集给UGUI使用
开篇: 前段时间,网上流出了一套手游源码,本想着把服务器端搭一下,给自己认识小伙伴们调试着把这套源码学习一下.于是就买一个阿里云服务器,可是花了几天时间,就是run不起来了啊.还好网上已经有人搭出来了 ...
- C#文字样式
[字体] 中文名称 英文名称宋体 SimSun黑体 SimHei微软雅黑 Microsoft YaHei微软正黑体 Microsoft JhengHei新宋体 NSimSun新细明体 PMin ...
- Net-SNMP是线程安全的吗
原文地址 : http://www.net-snmp.org/wiki/index.php/FAQ:General_19 Net-SNMP是线程安全的吗? 确切的说,不是.不过呢,在多线程管理的应用进 ...
- MongoDB介绍及安装
一.介绍: 1.NoSql(非关系型的数据库)成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.MongoDB是NoSql的其中一种较为热门的非关系型数据库.查阅很多资料.其他博客和网站,借着 ...
- 【原创】windows下搭建vue开发环境+IIS部署
[原创]win10下搭建vue开发环境 如果要转发,请注明原作者和原产地,谢谢! 特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图: 详细的安 ...