篇文章介绍一些 vim 使用技巧:
在 vim 中,可以使用 :r !cmd 命令执行 shell 中的 cmd 命令,并把该命令的打印结果写入到当前光标的下一行。
例如,:r !date 命令执行 shell 的 date 命令,打印当前的时间,把这个打印结果写入到当前光标的下一行。
也可以在 r 命令的前面加上数字指定要写入到哪一行之后,而不是写入到当前光标的下一行。
例如,:2r !date 命令是把打印结果写入到第二行的后面,也就是写入到第三行,原先第三行会挪到第四行,后面的内容依此类推。
注意:如果不加感叹号 ‘!’,那么后面跟着的参数会被认为是文件名,如果存在该文件,会读取该文件内容,写入到当前光标的下一行。如果该文件不存在,则报错提示找不到文件。例如, :r date 命令是读取名为 date 的文件内容,写入到当前光标的下一行。
这里的 :r 是 :read 命令的缩写。
在 vim 中,用 :help :r 命令查看 :r !cmd 和 :r name 命令的帮助说明。部分关键说明如下:
:r[ead] [++opt] [name]
Insert the file [name] (default: current file) below the cursor.
:{range}r[ead] [++opt] [name]
Insert the file [name] (default: current file) below the specified line.
:[range]r[ead] !{cmd}
Execute {cmd} and insert its standard output below the cursor or the specified line.
在 vim 中,可以使用 :TOhtml 命令来将当前文件转换出 html 格式文件。注意这个命令的大小写,不能写为 :tohtml 的形式。
:TOhtml 命令基于整个文件内容转成一个新的 html 文件,拆分新的 vim 水平窗口显示转换后的 html 文件内容。如有需要,可以自行修改文件内容做一些调整。最后,保存该 html 文件即可。
注意:这个 html 文件需要在 vim 中保存后才会生成本地文件,:TOhtml 命令并没有直接生成本地的 html 文件,也不会修改原有文件本身的内容,而是生成新的 html 文件。
如果只是需要转某几行代码(例如30行到42行),则执行 :30,42TOhtml 命令。
如果当前 vim 配置成显示行号,所转换出来的 html 文件中也会带有行号。不想带有行号的话,可以在转换之前,先执行 :set nonu 命令设置为不显示行号。
在计算机科学中,for循环(英语:for loop)是一种编程语言的迭代陈述,能够让程式码反复的执行。
它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器,或是循环变数。这使得for循环能够知道在迭代过程中的执行顺序。今天主要用两个实例来介绍下shell脚本的for循环。
需求:使用for循环在/data目录下批量创建10个html文件,其中每个文件需要包含10个字符,包含3个随机小写字母和3个随机大写字母加固定字符串hwb
#!/bin/bash ############################################################# # File Name: make_file.sh ############################################################# [ -d /data ] || mkdir -p /data rpm -qa |grep pwgen &>/dev/null if [ $? -eq 1 ] then yum install -y expect &>/dev/null fi cd /data &&\ for i in {1..10} do #File_Name=`uuidgen |tr "0-9-" "a-z"|cut -c 1-10` File_Name2=`mkpasswd -l 10 -c 3 -C 3` touch ${File_Name2}_hwb.html done
脚本結果:
将前面结果文件名中的hwb字符串全部改成linux(最好用for循环实现),并且将扩展名html全部改成大写。
#!/bin/bash ############################################################# # File Name: rename_file.sh ############################################################# cd /data &&\ File_name=`ls |sed -r 's#(.*)_hwb.html#\1#g'` for i in $File_name do if [ -f ${i}_hwb.html ] then mv ${i}_hwb.html ${i}_linux.HTML else echo "文件修改完成." exit fi done
结果:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
者:前端小智 来源:大迁世界
.md文件是markdown的一种标记语言,和html比较起来,更简单快捷,主要体现在:标记符的数量和书写上。
方式一:使用i5ting_toc插件
需要先安装npm(安装node.js后会自带npm),然后才能安装i5ting插件:
npm install i5ting_toc -g
执行命令行生成html文件,在输入前要进入到对应根目录下:
i5ting_toc -f **.md
需要注意的是:写md文档的特殊符号时记得添加空格。小技巧:如何快速在当前目录打开cmd?选择当前目录,按住shift,然后鼠标右键在此处打开命令窗口(在此处打开powerShell窗口)。
方式二:使用gitbook
同样先需要安装node,然后运行:
npm i gitbook gitbook-cli -g
生成md文件,这个命令会生成相应的md的文件,然后在相应的文件里写你的内容即可:
gitbook init
md转html,生成一个_doc目录,打开就可以看到你html文件了。
gitbook build
方式三:利用前端代码
实现原理是采用node.js搭建服务器,读取md文件转化为html片断。浏览器发送ajax请求获取片段后再渲染生成html网页。
node代码:
var express = require('express');
var http = require('http');
var fs = require('fs');
var bodyParser = require('body-parser');
var marked = require('marked'); // 将md转化为html的js包
var app = express();
app.use(express.static('src')); //加载静态文件
var urlencodedParser = bodyParser.urlencoded({ extended: false });
app.get('/getMdFile',urlencodedParser, function(req, res) {
var data = fs.readFileSync('src/test.md', 'utf-8'); //读取本地的md文件
res.end(JSON.stringify({
body : marked(data)
}));
} );
//启动端口监听
var server = app.listen(8088, function () {
var host = server.address().address;
var port = server.address().port;
console.log("应用实例,访问地址为 http://%s:%s", host, port)
});
前端html:
<div id="content"> <h1 class="title">md-to-HTML web app</h1> <div id="article"> </div></div><script type="text/JavaScript" src="js/jquery-1.11.3.min.js"></script><script> var article = document.getElementById('article'); $.ajax({ url: "/getMdFile", success: function(result) { console.log('数据获取成功'); article.innerHTML = JSON.parse(result).body; }, error: function (err) { console.log(err); article.innerHTML = '<p>获取数据失败</p>'; } });</script>
*请认真填写需求信息,我们会在24小时内与您取得联系。