如何在Vimrc autocmd中添加或/和修改版本号
我喜欢和维姆一起工作。我在~.vimrc中使用autocmd,如下所示:如何在Vimrc autocmd中添加或/和修改版本号,vim,autocmd,Vim,Autocmd,我喜欢和维姆一起工作。我在~.vimrc中使用autocmd,如下所示: :fun LastMod() : if line("$") > 20 : let l = 20 : else : let l = line("$") : endif : exe "1," . l . "g/Last modified: /s/Last modified: .*/Last modified: " . : \ strftime("%Y %b %d")
:fun LastMod()
: if line("$") > 20
: let l = 20
: else
: let l = line("$")
: endif
: exe "1," . l . "g/Last modified: /s/Last modified: .*/Last modified: " .
: \ strftime("%Y %b %d")
:endfun
问题是:
如何添加或/和修改版本号如:
从
版本:v1.345
到
版本:v1.346
在编写shell脚本时,我喜欢自动修改一些行:
#!/bin/bash
# Last modified: <date time>
# Version: v1.23-<n>
#
#/bin/bash
#上次修改:
#版本:v1.23-
#
(也许这更清楚一点)编辑以匹配您发布的示例:
:%s/\m\%<21l^# Last modified: \zs.*/\=strftime('%Y %b %d')/
:%s/\m\%<21l^# Version: v\d\+\.\d\+-\zs\d\+/\=submatch(0)+1/
:%s/\m\%
我的意思是:在像:#这样的脚本中/bin/bash#上次修改:#版本:v1.23
我认为您想更改shell脚本中的版本。假设您有:
#!/bin/bash
#Last modified: whatever
#Version: v1.234
#other stuff
...
您可以在.vimrc
中使用这一行:
let @v="gg/Version:/\<cr>2E\<c-a>"
let@v=“gg/Version://\2E”
然后每次打开shell脚本时,按@v
将使版本号增加1。例如,1
意味着从v1.1099
到v1.1100
事实上,它创建了一个宏。不清楚!无论如何,这里是对函数的等效重写::%s/\m\%您的缓冲区只有v1.345
?你能展示一些示例文本吗?可能有更简单的方法,我的意思是:在像:#这样的脚本中/bin/bash#上次修改:#版本:v1.23感谢您成功地解释了宏函数。我试过了,效果很好。但是,难道没有办法让它像“上次修改:”-函数一样自动进行吗?@amaz1ng,你可以在一个宏中进行两次修改。啊,太好了。这也行非常好的正则表达式,喜欢;)