vim 备忘笔记

Posted on Sat 12 August 2017 in Reference

替换

以下命令将文中所有的字符串old替换成new:

:1,$s/old/new/g

通常我们会在命令中使用%指代整个文件做为替换范围:

:%s/search/replace/g

以下命令指定只在第5至第15行间进行替换:

:5,15s/dog/cat/g

以下命令指定只在当前行至文件结尾间进行替换:

:.,$s/dog/cat/g

以下命令指定只在后续9行内进行替换:

:.,.+8s/dog/cat/g

你还可以将特定字符做为替换范围。比如,将SQL语句从FROM至分号部分中的所有等号(=)替换为不等号(<>): :/FROM/,/;/s/=/<>/g

在可视化模式下,首先选择替换范围, 然后输入:进入命令模式,就可以利用s命令在选中的范围内进行文本替换。

在vim中插入时间有几种方法:

1)使用:read !date ,这样会产生一个当前系统时间。(:r !date也行) 但是有缺陷,会新产生一行,而我们常用的是直接在当前光标中插入时间吧。故不受欢迎。

2)使用=来输入命令。可以在插入模式下,输入Ctrl+r,然后输入=号,之后输入如下命令:strftime("%Y-%m-%d %H:%M:%S")即可。 这样会在当前光标插入对应的时间。

这个更好!Sure。

我可不想输入这么大串东西,很讨厌去记忆strftime中的一串时间格式化符号!! 是的,我们要更快捷点?!

使用ab来缩写:使当我们在插入模式输入xtime时即可插入当前时间。 在.vimrc中添加上这一行:

iab 2017-08-17 11:34:32 =strftime("%Y-%m-%d %H:%M:%S")

如此甚好。

vim