vim初步--将txt文本批量格式化为xml
vim是linux上的编辑器,而gvim是windows上的版本。因为要把数量不少的txt的文本格式化为xml文本,如果手动的话工作量会很大,所以想到了用gvim,因为它可以用命令批量操作。
要格式化的文本资料是下面这个样子:
现在要把它变成如下的xml格式。
<questions>
<question>题目一</question>
<question>题目二</question>
</questions>
<answers>
<answer score='1'>是</answer>
<answer score='0'>否</answer>
</answers>
<description>
<item></item>
<item></item>
</description>
<tip>
</tip>
</scale>
chapter one:相关vim的基本操作
1, 三种模式
可视模式(visual mode)
命令模式(command mode)---能够编辑命令的模式。
插入模式(insert mode)---能够编辑文本的模式
三种模式的转换:
在命令模式和普通模式中按ESC退出模式。
按i,I,a,A,o,O中的一个进入插入模式,四个命令的不同在于
i--光标定位在当前位置前
a--光标定位在当前位置前
I-- 光标定位在当前行的第一个非空白字符前
A--光标定位在当前行的最后一个非空白字符后
o--在当前行的下面新建一行,并光标定位到行首
O--在当前行的上面新建一行,并光标定位到行首
按v或者V进入可视模式。
按冒号进入命令模式。
2,打开文件,新建文件,保存文件
可以用vim软件自带的菜单打开文件,如果不想这样做的话,打开文件的命令是 :e path。 有个技巧就是可以用tab键,它有进行提示的功能,尤其当文件路径名很长的时候,tab键尤其的方便。
对于新建文件同样可以用菜单鼠标操作,命令是 :enew path。
保存文件 :w
3, 浏览文本(普通模式下的操作,不是命令,当做快捷键吧)
j 下一行 k上一行 h前一个字 l后一个字
这样的命令的确很别扭,但是据说这是为了操作更加快速而设计的。还有,可以这样操作,5j,6k,8h,9l,这样是上下走5行,向上走6行,向前走8个字,向后走9个字。
gg 回到文本的最开头
^ 到本行的第一个非空白字符
0 到本行的第一列 (这是阿拉伯数字0)
$ 到本行的结尾
g_ 到本行的最后一非空白字符
o 在当前行的下面插入新的一行
O 在当前行的上面个插入新的一行
w 到下一个词
W 到下一个词,忽略标点
e 到词的结尾
E 到词的结尾,忽略标点符号
b 到词的开头
B 到词的开头,忽略标点符号
ge 到上一个词的结尾
gE 到上一个词的结尾,忽略标点符号
4,编辑
dd 删除当前行
x 删掉当前字符
d.. d后面跟一个命令,比如d^那就删除从当前光标到行首的内容,d$j那就删除当前光标到行末的内容
c.. 意思跟上面的产不多,只是删除之后变为插入模式
x 删除当前位置的字符
X 删除当前位置前面的字符
y.. 复制当前位置到下一个命令之间的内容
p 在当位置后粘贴
P 在当前位置前粘贴(大写p)
r 替换当前字符
s 替换
. 重复上一个插入或编辑操作
dd yy cc对一行进行操作 ,dd删除一行,yy复制一行,cc编辑一行
5, 查找(普通模式下)
/string ,可以用正则表达式,所以很强大。
比如上面的文本中,找每题末尾的□□(不是口,在搜狗拼音下打方框两个字就会出现这个图形)
键盘输入 /□□ 就会如下效果
目标字符被高亮显示出来,可以用n移动。
再来看看每题前面的数字怎么选中,因为它们变化的,所以必须用正则表达式了。
/\d
\d就是选择数字,前面的\是转义字符
\s是一个字符,*同样表示0个或多个,+表示1个或多个
5,替换
命令:s/a/b/ 将a替换为b。可以用字符&代替a。
6,录制宏
qa--录制宏a
q--结束录制
@a 执行a
100@a执行100次
chapter2:操作 把每个测试题目用<question></question>包围。
执行命令:%s/\d\+\s*/<question>/gc
%是全文的意思,/gc是一直替换的意思。s\d\+\s*/<question>就是s/a/b命令,把数字和空白用<question>代替
效果如下:
执行命令:%s/□□/<\/question>。也是替换,把行尾的两个方框用</question>代替,因为/是特殊字符所以用\转义了。
效果如下:
最近放弃windows转向linux,又开始使用vim,下面添加一些学习vim的好教程:
(1)对vim的大概了解,可以使用vim自带的教程,输入vimtutor
(2)vim的帮助手册,在vim中进入:help user-manual
(3) vim经常使用的命令总结
http://coolshell.cn/articles/5426.html
(4)如何打造vim的成IDE
http://blog.csdn.net/wooin/article/details/1858917
(5)vim编程,配置与技巧
(6)vim插件介绍
http://www.cnblogs.com/samwei/archive/2011/04/21/2024355.html
后续继续补充。。。