从此编写 Bash 脚本不再难【转】
从此编写 Bash 脚本不再难
在这篇文章中,我们会介绍如何通过使用 bash-support vim 插件将 Vim 编辑器安装和配置 为一个编写 Bash 脚本的 IDE。 -- Aaron Kili
本文导航
-什么是 bash-support.vim 插件? …… 05%
-如何在 Linux 中安装 Bash-support 插件 …… 10%
-如何在 Vim 编辑器中使用 Bash-support 插件 …… 17%
-如何为新脚本自动生成文件头 …… 24%
-添加 Bash-support 插件帮助信息 …… 40%
-如何在 Shell 脚本中插入注释 …… 44%
-如何在 Shell 脚本中插入语句 …… 46%
-插入一个函数和函数头 …… 57%
-更多关于添加 Bash 语句的例子 …… 63%
-如何在 Vi 编辑器中使用运行操作 …… 67%
-使脚本可执行 …… 72%
-如何在 Bash 脚本中使用预定义代码片段 …… 74%
-创建自定义预定义代码段 …… 81%
-在当前光标处查看内建和命令帮助 …… 85%
编译自: http://www.tecmint.com/use-vim-as-bash-ide-using-bash-support-in-linux/
作者: Aaron Kili
译者: ictlyh
IDE(集成开发环境[1])就是这样一个软件,它为了最大化程序员生产效率,提供了很多编程所需的设施和组件。 IDE 将所有开发工作集中到一个程序中,使得程序员可以编写、修改、编译、部署以及调试程序。
在这篇文章中,我们会介绍如何通过使用 bash-support vim 插件将 Vim 编辑器安装和配置[2] 为一个编写 Bash 脚本的 IDE。
什么是 bash-support.vim 插件?
bash-support 是一个高度定制化的 vim 插件,它允许你插入:文件头、补全语句、注释、函数、以及代码块。它也使你可以进行语法检查、使脚本可执行、一键启动调试器;而完成所有的这些而不需要关闭编辑器。
它使用快捷键(映射),通过有组织地、一致的文件内容编写/插入,使得 bash 脚本编程变得有趣和愉快。
插件当前版本是 4.3,4.0 版本 重写了之前的 3.12.1 版本,4.0 及之后的版本基于一个全新的、更强大的、和之前版本模板语法不同的模板系统。
如何在 Linux 中安装 Bash-support 插件
用下面的命令下载最新版本的 bash-support 插件:
$ cd Downloads
$ curl http://www.vim.org/scripts/download_script.php?src_id=24452 >bash-support.zip
按照如下步骤安装;在你的主目录创建 .vim 目录(如果它不存在的话),进入该目录并提取 bash-support.zip 内容:
$ mkdir ~/.vim
$ cd .vim
$ unzip ~/Downloads/bash-support.zip
下一步,在 .vimrc 文件中激活它:
$ vi ~/.vimrc
并插入下面一行:
filetype plug-in on
set number # 可选,增加这行以在 vim 中显示行号
如何在 Vim 编辑器中使用 Bash-support 插件
为了简化使用,通常使用的结构和特定操作可以分别通过键映射来插入/执行。 ~/.vim/doc/bashsupport.txt 和 ~/.vim/bash-support/doc/bash-hotkeys.pdf 或者 ~/.vim/bash-support/doc/bash-hotkeys.tex 文件中介绍了映射。
重要:
所有映射(\+字符 组合)都是针对特定文件类型的:为了避免和其它插件的映射冲突,它们只适用于 sh 文件。
使用键映射的时候打字速度也有关系,引导符 \ 和后面字符的组合要在特定短时间内才能识别出来(很可能少于 3 秒 - 基于假设)。
下面我们会介绍和学习使用这个插件一些显著的功能:
如何为新脚本自动生成文件头
看下面的示例文件头,为了要在你所有的新脚本中自动创建该文件头,请按照以下步骤操作。
脚本示例文件头选项
首先设置你的个人信息(作者名称、作者参考、组织、公司等)。在一个 Bash 缓冲区(像下面这样打开一个测试脚本)中使用映射 \ntw 启动模板设置向导。
选中选项 1 设置个性化文件,然后按回车键。
$ vi test.sh
在脚本文件中设置个性化信息
之后,再次输入回车键。然后再一次选中选项 1 设置个性化文件的路径并输入回车。
设置个性化文件路径
设置向导会把目标文件 .vim/bash-support/rc/personal.templates 拷贝到 .vim/templates/personal.templates,打开并编辑它,在这里你可以输入你的信息。
按 i 键像截图那样在单引号中插入合适的值。
在脚本文件头添加信息
一旦你设置了正确的值,输入 :wq 保存并退出文件。关闭 Bash 测试脚本,打开另一个脚本来测试新的配置。现在文件头中应该有和下面截图类似的你的个人信息:
$ vi test2.sh
自动添加文件头到脚本
添加 Bash-support 插件帮助信息
为此,在 Vim 命令行输入下面的命令并按回车键,它会创建 .vim/doc/tags 文件:
:helptags $HOME/.vim/doc/
在 Vi 编辑器添加插件帮助
如何在 Shell 脚本中插入注释
要插入一个块注释,在普通模式下输入 \cfr:
添加注释到脚本
如何在 Shell 脚本中插入语句
下面是一些用于插入语句的键映射(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) 和其它更多的数组功能。
插入一个函数和函数头
输入 \sfu 添加一个新的空函数,然后添加函数名并按回车键创建它。之后,添加你的函数代码。
在脚本中插入新函数
为了给上面的函数创建函数头,输入 \cfu,输入函数名称,按回车键并填入合适的值(名称、介绍、参数、返回值):
在脚本中创建函数头
更多关于添加 Bash 语句的例子
下面是一个使用 \si 插入一条 if 语句的例子:
在脚本中插入语句
下面的例子显示使用 \se 添加一条 echo 语句:
在脚本中添加 echo 语句
如何在 Vi 编辑器中使用运行操作
下面是一些运行操作键映射的列表:
\rr – 更新文件,运行脚本(n, i)
\ra – 设置脚本命令行参数 (n, i)
\rc – 更新文件,检查语法 (n, i)
\rco – 语法检查选项 (n, i)
\rd – 启动调试器(n, i)
\re – 使脚本可/不可执行(*) (n, i)
使脚本可执行
编写完脚本后,保存它然后输入 \re 和回车键使它可执行。
使脚本可执行
如何在 Bash 脚本中使用预定义代码片段
预定义代码片段是为了特定目的包含了已写好代码的文件。为了添加代码段,输入 \nr 和 \nw 读/写预定义代码段。输入下面的命令列出默认的代码段:
$ .vim/bash-support/codesnippets/
代码段列表
为了使用代码段,例如 free-software-comment,输入 \nr 并使用自动补全功能选择它的名称,然后输入回车键:
添加代码段到脚本
创建自定义预定义代码段
可以在 ~/.vim/bash-support/codesnippets/ 目录下编写你自己的代码段。另外,你还可以从你正常的脚本代码中创建你自己的代码段:
选择你想作为代码段的部分代码,然后输入 \nw 并给它一个相近的文件名。
要读入它,只需要输入 \nr 然后使用文件名就可以添加你自定义的代码段。
在当前光标处查看内建和命令帮助
要显示帮助,在普通模式下输入:
\hh – 内建帮助
\hm – 命令帮助
查看内建命令帮助
更多参考资料,可以查看文件:
~/.vim/doc/bashsupport.txt #在线文档的副本
~/.vim/doc/tags
访问 Bash-support 插件 GitHub 仓库:https://github.com/WolfgangMehner/bash-support
在 Vim 网站访问 Bash-support 插件:http://www.vim.org/scripts/script.php?script_id=365
就是这些啦,在这篇文章中,我们介绍了在 Linux 中使用 Bash-support 插件安装和配置 Vim 为一个 Bash-IDE 的步骤。快去发现这个插件其它令人兴奋的功能吧,一定要在评论中和我们分享哦。
作者简介:
Aaron Kili 是一个 Linux 和 F.O.S.S 爱好者、Linux 系统管理员、网络开发人员,现在也是 TecMint 的内容创作者,她喜欢和电脑一起工作,坚信共享知识。
via: http://www.tecmint.com/use-vim-as-bash-ide-using-bash-support-in-linux/
作者:Aaron Kili[3] 译者:ictlyh 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
[1]: 集成开发环境 - http://www.tecmint.com/best-linux-ide-editors-source-code-editors/
[2]: Vim 编辑器安装和配置 - http://www.tecmint.com/vi-editor-usage/
[3]: Aaron Kili - http://www.tecmint.com/author/aaronkili/
转自
将 Vim 编辑器打造成一个 Bash 脚本专属 IDE - 今日头条(www.toutiao.com)
http://www.toutiao.com/i6415421228072305153/
从此编写 Bash 脚本不再难【转】的更多相关文章
- vim编写Bash脚本
vim编写Bash脚本,可以说是类unix系统下的原生应用啊,想到初vi编辑器可是每个unix自带的哦. 缩进:在.vimrc中添加 filetype plugin indent on 未完待续,以后 ...
- Linux中编写Bash脚本的10个技巧
Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式.尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能. 本文中,我们将分享 ...
- Python测试进阶——(7)动手编写Bash脚本启动Python监控程序并传递PID
如下: #./cf_workload_functions.sh function timestamp(){ # get current timestamp sec=`date +%s` nanosec ...
- 如何写出安全的、基本功能完善的Bash脚本
每个人或多或少总会碰到要使用并且自己完成编写一个最基础的Bash脚本的情况.真实情况是,没有人会说"哇哦,我喜欢写这些脚本".所以这也是为什么很少有人在写的时候专注在这些脚本上. ...
- 学习 Linux,101: 自定义或编写简单脚本【转】
转自:http://www.ibm.com/developerworks/cn/linux/l-lpic1-105-2/index.html 学习如何使用标准的 shell 语法.循环和控制结构,以及 ...
- 一个很不错的bash脚本编写教程
转自 http://blog.chinaunix.net/uid-20328094-id-95121.html 一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂! 建立一个脚本 Lin ...
- 在ubuntu linux 中编写一个自己的bash脚本
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pm为例(play music)),来实现音乐的播放.注:本人ununut中安装了audacious ...
- Bash脚本编写初体验
上周例会的时候,冷不丁的接到了维护原有的安装脚本和编写升级.卸载脚本的任务,PM和几个同事一本正经的说,一天甚至30分钟就可以精通shell脚本编写,哪怕没有语言基础也可以. 当然,作为有着C++.P ...
- bash脚本编写基础
bash脚本编程 命令的堆砌 脚本程序:解释器解析执行 shell:交互式接口,编程环境 shell:能够提供一些内部命令,并且能通过PATH环境变量找到外部命 ...
随机推荐
- BZOJ3329 Xorequ(数位dp+矩阵快速幂)
显然当x中没有相邻的1时该式成立,看起来这也是必要的. 于是对于第一问,数位dp即可.第二问写出dp式子后发现就是斐波拉契数列,矩阵快速幂即可. #include<iostream> #i ...
- 腾讯下载的视频qlv格式转化为MP4格式
最近在看腾讯视频的时候发现下载下来的视频格式都是qlv格式,且不能用其他播放器播放,甚是恼怒,网上找了很多方法都很繁琐,于是自己写了一个小程序来处理这个问题.把下载下来的qlv格式转化为MP4格式 首 ...
- 015 反射中的 Class.forName() 与 ClassLoader.loadClass() 的区别
作者:nnngu GitHub:https://github.com/nnngu 博客园:http://www.cnblogs.com/nnngu 简书:https://www.jianshu.com ...
- python中文档IO的读写
首先明确一点,现代计算机的操作系统都不允许程序直接操作磁盘的,所以读取文件和写入文件都是有操作系统提供的提供的接口完成的,每一种编程语言都会把操作系统提供的低级C接口封装起来方便使用,Python也不 ...
- 【刷题】洛谷 P3834 【模板】可持久化线段树 1(主席树)
题目背景 这是个非常经典的主席树入门题--静态区间第K小 数据已经过加强,请使用主席树.同时请注意常数优化 题目描述 如题,给定N个正整数构成的序列,将对于指定的闭区间查询其区间内的第K小值. 输入输 ...
- JDK中的SimpleDateFormat线程非安全
在JDK中使用SimpleDateFormat的时候都会遇到线程安全的问题,在JDK文档中也说明了该类是线程非安全的,建议对于每个线程都创建一个SimpleDateFormat对象.如下面一个Case ...
- 学习Spring Boot:(四)应用日志
前言 应用日志是一个系统非常重要的一部分,后来不管是开发还是线上,日志都起到至关重要的作用.这次使用的是 Logback 日志框架. 正文 Spring Boot在所有内部日志中使用Commons L ...
- Java并发编程中线程池源码分析及使用
当Java处理高并发的时候,线程数量特别的多的时候,而且每个线程都是执行很短的时间就结束了,频繁创建线程和销毁线程需要占用很多系统的资源和时间,会降低系统的工作效率. 参考http://www.cnb ...
- vi写完文件保存时才发现是readonly😂
在MAC上编辑apache配置文件,老是忘记sudo…… readonly的文件保存时提示 add ! to override, 但这仅是对root来说的啊! 百毒了一下竟然还有解决方案!! :w ! ...
- 洛谷 P4292 [WC2010]重建计划 解题报告
P4292 [WC2010]重建计划 题目描述 \(X\)国遭受了地震的重创, 导致全国的交通近乎瘫痪,重建家园的计划迫在眉睫.\(X\)国由\(N\)个城市组成, 重建小组提出,仅需建立\(N-1\ ...