冒险岛1职业推荐:使用bash-support插件把Vim变成你的Bash-IDE

来源:百度文库 编辑:中财网 时间:2024/04/29 08:40:45

使用bash-support插件把Vim变成你的Bash-IDE

原作: Ramesh Natarajan on February 19, 2009

翻译:咸超 2010-6-9

水平有限,难免有错误,如有错误请联系:sdxianchao@163.com,欢迎指正。

原文地址:http://www.thegeekstuff.com/2009/02/make-vim-as-your-bash-ide

-using-bash-support-plugin/

同时建议阅读下这哥们的On-going Geek Series系列,可以在他的网站

http://www.thegeekstuff.com/的Best of the Blog中找到。

 

 

 

 

简述
 

 

这篇文章是正在连载的Vi/Vim 提示与技巧系列的一部分。作为一个Linux系统管理员或者程序员,在编写bash shell脚本的时候,你可能一直在做以下重复的工作:

· 添加文件头

· 添加函数/块注释

· 包含固定的代码片段

· 执行代码检查

· 阅读一个函数的文档

· 把一个代码块注释掉,或者取消一个代码块的注释

 

bash-Support Vim 插件提供了最简单的办法来提供上述功能,可以节省大量的时间和击键。

 

该插件由Fritz Mehner编写,他曾这样解释自己编写这个插件的目的:“使用菜单和热键来编写和执行BASH脚本”。

 

这篇文章介绍如何用3步简单的来安装这个插件,并介绍该插件8个强有力的特性。

3 步安装 bash-support 插件

第一步:下载bash-support 插件

从vim.org下载插件:
 

$ cd /usr/src

$ wget -O bash-support.zip http://www.vim.org/scripts/download_script.php?

src_id=9890

第二步: 安装bash-support Vim 插件

$ mkdir ~/.vim # if the directory does not exist already

$ cd ~/.vim

$ unzip /usr/src/bash-support.zip

第三步: 在~/.vimrc中启动这个插件

Add the following line to the ~/.vimrc to enable the plugin for Vim editor.

把下列行添加到~/.vimrc文件来启动这个Vim编辑器的插件。

$ vim ~/.vimrc

filetype plugin on

8个很有用的特性

特性1:自动向sh文件中添加文件头部

当你打开一个以sh为后缀的文件时,文件中会包含以下文件头。然后进入插入状态,光标会移动到DESCRIPTION位置。

#!/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:  ---

#============================================================

可以通过在~/.vimrc中添加以下内容以改变默认的AUTHOR和COMPANY的值。

let g:BASH_AuthorName   = 'SathiyaMoorthy'

let g:BASH_Email        = 'subscribe@thegeekstuff.com'

let g:BASH_Company      = 'Open Source Corporation'


然后,当你新建一个bash-script文件的时候,它将在文件头中显示编辑之后的AUTHOR和COMPANY值,如下所示:

 

#!/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:  ---

#============================================================

注: 要往文件头中添加自定义域,需要编辑 ~/.vim/bash-support/templates/bash-file-header ,添加你自己的自定义域。

特性2: 使用/sfu添加Bash函数

要编写一个子程序,在正常模式下输入/sfu,这样就会弹出function name的提示(如图1所示),然后插入带有默认函数注释的函数(如图2所示)。
 

图1:在shell脚本中键入/sfu来添加一个bash函数

 

图2:在shell脚本中自动添加的Bash函数

特性3:使用/cfu来插入一个函数头

 如果想要插入一个函数头,在正常模式下输入/cfu,这将添加如图3所示的函数头注释。

图 3:在shell脚本中键入/cfu来插入一个函数头

特性4:使用/cfr添加一个块(Frame,不知道翻译的对不对)注释

要添加一个块注释,在正常模式下输入/cfr,这将产生如图4所示的格式化注释。

图4:在shell脚本中输入/cfr来插入一个块注释

特性5: 在shell脚本中插入bash语句模板

语句模板的快捷键如下所示:

· /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”

例子:在shell脚本中自动插入Case语句模板。

   如图5所示,在插入模式下,输入/sc将插入case 语句模板,然后将光标定位到case旁边。以此类推,你可以使用上面提到的快捷键来得到table1中的适当语句。

图5:在shell脚本中输入/sc来插入case语句

特性 6:在Bash脚本中使用/nr插入预先定义的代码片段

代码片段可以分别得使用/nr和/nw分别进行读和写。插件自身带了一些预定义的代码片段以供您插入到您的代码中去。以下是插件默认提供的代码片段:

$ 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


如果要引入check-number-of-command-arguments代码片段,键入/nr之后你将被提示输入一个文件名。输入的文件名将赋给check-number-of-command-line-arguments 并在shell脚本中自动插入下面的代码:

#-----------------------------------------------------------------------

#  Check number of command line arguments

#-----------------------------------------------------------------------

if [ $# -lt 1 ]

then

echo -e "/n/tUsage:  ${0##/*/} File/n"

exit 1

fi


注: 你可以定义自己的代码片段并把它放到~/.vim/bash-support/codesnippets/中,你也可以从现有的代码中建立自己的代码片段——在代码中选中需要作为代码片段的部分,输入/nw,然后命名为一个文件。下一次,输入/nr和文件的名字就可以得到自定义的代码片段了。

特性7:得到Bash内建命令的快速帮助

 当你需要查看鼠标所在位置的Bash内建命令的帮助页时,输入/hh.在接下来的例子(图6所示)中,选中Bash内建命令read,键入/hh,然后可以看到read命令的快速帮助。可以使用同样的方法来得到其他Bash内建命令的快速帮助。
 

图6:输入/hh来得到选中的bash内建命令的快速帮助

特性8: Featured 注释

 下面的命令将添加相应的关键字注释。举例来说,输入/ckb在shell脚本中添加BUG注释行。

· /ckb Keyword BUG

· /ckt Keyword TODO

· /ckr Keyword Tricky

· /ckw Keyword WARNING


输入/cbk来添加带有"#: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.

图7: 在shell脚本中输入/ckb来添加TODO


bash-support插件有很多很有用的特性,你可以通过读取帮助文档来得到更多信息。帮助文档放置在你系统的下述位置:

· README : ~/.vim/README.bashsupport

· PDF : ~/.vim/bash-support/doc/bash-hot-keys.pdf

· bash-support插件在线帮助文档

· 在Vim中通过:h bashsupport 来查看插件所附带的帮助文件(bashsupport.txt)

· 在Vim中通过:helptags ~/.vim/doc, 来生成文档标签,然后输入:h bashsupport 

· 本插件的更多屏幕截图.