2012-12-06 65 views
-1

我有一些我想清理的Skype聊天记录。他们看起来像这样:如何使用VIM删除聊天记录中的Skype时间戳?

[12-12-6 下午1:54:53] Xerxes: Bla Bla 
[12-12-6 下午1:55:23] Aron: Bla Bla Bla 
[12-12-6 下午1:55:29] Aron: Bla 

我可以在VIM中使用什么命令删除括号[]中的所有内容(包括方括号本身)?

回答

1

只是一个substitute会做:

:%s/^\[.*\] //g 
+0

你能解释的功能您正在使用的各种符号? – histelheim

+0

如果有人输入了a,这将不起作用。 – Tim

+0

“%” - 适用于所有行,“s” - 替代命令的快捷方式,“g” - 一行中搜索模式的所有出现次数,“^ \ [。* \]” - 搜索模式,“”(空字符串) - 用来替换模式的字符串,“/”是分隔命令部分的分隔符。 – clime

3

另外,从你的光标在第一[你可以这样做:

d%xj 

其中:

  • d%删除操作配套支架
  • x删除尾随空格
  • j下移到下一行

此外,你可以记录它作为一个宏:

qqd%xjq 

,然后在每一行后面迅速地@@播放(或[email protected]@重复99行等)。

6

到替代的替代:

:%norm da]x 

说明:

  • :normal {commands}运行{commands}在正常模式下用于一条线
  • :norm是短期的:normal
  • :%norm运行:normal命令在f的每一行上ILE
  • da]删除在该行
  • x的开始[]块删除下面的]

如需更多帮助,请参阅空间:

:h range 
:h :norm 
:h a] 
:h d 
:h x 
+0

我喜欢在记录宏和9​​99 @@上使用标准命令的解决方案,因为对于大文件,宏播放可能会很慢。 :%标准暂时关闭显示屏,因此速度很快。 – darcyparker