最近在做一些无聊的客户化OSD,发现结合vim的一些命令更简单。
1、全选:ggVG(V:shift+v)
解释是:gg 让光标移到首行,在vim才有效,vi中无效;V 是进入Visual(可视)模式;G 光标移到最后一行
选中内容以后就可以其他的操作了,比如:
d 删除选中内容
y 复制选中内容到0号寄存器
"+y 复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用
也可以用ggdG将文件所有内容清空;ggyG将所有内容复制;
2、对齐:gg=G
将所有内容自动对齐,当然只是整体上,还需要调试。
用Ctrl+v进入VISUAL BLOCK模式,按上下左右即可选择。选择好了,再用shift+>或shift+<可进行缩进或反缩进。
3、提取字符。
做OSD时需要将strings里的字符提取出来,如:
1 <?xml version="1.0" encoding="utf-8"?> 2 3 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> 4 <string name="settings_label">"System Settings"</string> 5 <string name="network_label_text">"Network"</string> 6 <string name="display_label_text">"Display"</string> 7 <string name="sound_label_text">"Sound"</string> 8 <string name="others_label_text">"Others"</string> 9 10 <string name="wifi_list_title">"Wireless network list"</string> 11 <string name="scanning_ap">"Scanning network,please wait..."</string> 12 <string name="wifi_connected">"Wireless network connected"</string> 13 <string name="wifi_disconnected">"Wireless network disconnected"</string>
首先,在VIM中打开,进入命令模式,
用:%s/^s+/把每行的空格去掉(如果有);
用:%s/<string name="/把每行的<string name="去掉
用:%s/">"/ 把中间的">"替换成table,隔开字符。
再用前面说的选择,复制,就出来了!