vim - 为什么这个vim功能不能工作但将其作为cmd运行

标签 vim

它有这个代码:

autocmd BufWritePre,FileWritePre *vimrc  call LastMod()
fun LastMod()
    let l =  min([line('$'), 8]) 
    exe "1," . l . "g/Modified Times:/s/\d\+/\=submatch(0) + 1/"
endfun

当我将其作为 cmd 运行时,它可以工作:

1,8g/Modified Times:/s/\d\+/\=submatch(0) + 1/

但在函数中不起作用。为什么?

最佳答案

您使用的是双引号而不是简单引号。所有的反斜杠都需要加倍。或者更好的是,使用单引号。

参见:https://vi.stackexchange.com/questions/9706/what-is-the-difference-between-single-and-double-quoted-strings

PS:最好能描述一下你所观察到的情况。幸运的是,您的错误会反复出现。

关于vim - 为什么这个vim功能不能工作但将其作为cmd运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50004156/

相关文章:

vim - 从 powershell 运行时如何修复 Vim (win32) 颜色?

perl - 有没有办法告诉 syntastic 使用哪个库来避免 @INC 错误

Vim UltiSnips 插件在插入模式下重新映射 <CR>(回车键),即使我不在片段中

bash - 在 bash -o vi 模式下有没有办法让提示指示正常/命令模式等

vim - 在 vim 中循环遍历字符

vim - YouCompleteme 工作但无法使用 TAB 完成

windows - Vim fugitive 插件无法识别 Windows 上的 git archive

ruby-on-rails-3 - 环绕.vim : deleting embedded ruby tags

macos - Vim copy to system clipboard using register 不工作(Mac 电脑)

search - 用于在 vim 中进行 inc-search 的 Emacs 样式突出显示