vim里对程序的自动排版功能
本意是找个能够把程序排版成标准式样的程序的
偶然发现vim居然就自带这个功能
于是就省心了
具体方法是这样的
在浏览模式下输入命令“1G=G”
于是一下子就排好了
本意是找个能够把程序排版成标准式样的程序的
偶然发现vim居然就自带这个功能
于是就省心了
具体方法是这样的
在浏览模式下输入命令“1G=G”
于是一下子就排好了
今天又有个需求
需要在某个文本文件中的第一行后面添加两行内容
本想用前面的文章提到的方法
但是用vim
不知道怎样输入控制字符ESC(vim中敲入”ESC”键能从输入状态返回到正常状态)
于是作罢
再试了下古董编辑器ed
感觉不错,呵呵
又复习了下ed的用法
最后的代码是这样的
ed xxx <
1
a
aaaaaa
bbbbbb
.
w
q
END
这样就搞定了
这里”xxx”是我要编辑的文件名
而” aaaaaa
bbbbbb”则是我要在第一行后面添加的2行文本内容
怎样用shell脚本删除掉文件的最后一行
网上大家多有讨论
方法也多多
比如用sed
用tail
用head
等等等等
但貌似都需要先把输出定向到一个临时文件
然后再删除原有文件
最后再把临时文件mv成原文件
后来找到一种方法
利用vim和重定向
直接在shell里实现
代码是这样的:
vim xxxx.txt 2>/dev/null <
G
dd
:x!
END
如此而已
呵呵
碰到一个问题
只要调用vim,就会出:
“
E575: viminfo: Illegal starting char in line: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx^@
Hit ENTER or type command to continue
”
的错误
退出的时候还报一次
查了下
原来是主目录下文件.viminfo出问题了
只接删掉
问题解决