";E20:标记未设置”字样;当尝试在VIM中更新信息时

";E20:标记未设置”字样;当尝试在VIM中更新信息时,vim,Vim,我在用函数更新VIM中的信息时遇到问题。我的代码如下: map:调用UpdateTitle() “更新最新的修改时间和文件名 函数UpdateTitle() 正常m' 执行“/#*上次修改:/s@:.*$@\=strftime(:%Y-%m-%d%H:%m”)@” 正常的“ 正常mk 执行“/#*文件名:/s@:.*$@\=”:“。展开(“%:t”)@” 执行“noh” 正常'k echohl WarningMsg | echo“成功更新版权。”| echohl无 端功能 当我在VIM中按F4

我在用函数更新VIM中的信息时遇到问题。我的代码如下:

map:调用UpdateTitle()
“更新最新的修改时间和文件名
函数UpdateTitle()
正常m'
执行“/#*上次修改:/s@:.*$@\=strftime(:%Y-%m-%d%H:%m”)@”
正常的“
正常mk
执行“/#*文件名:/s@:.*$@\=”:“。展开(“%:t”)@”
执行“noh”
正常'k
echohl WarningMsg | echo“成功更新版权。”| echohl无
端功能
当我在VIM中按F4时,它确实起作用。但它总是显示一条错误消息,如
E20:Mark not set
。我以为错误发生在最后两行。但我找不到解决方法。
我试过了
echoorr
。它可以工作,但不是我想要的。 我单独尝试了
echomsg
echo
,但不起作用。没有消息输出。但错误消息显示为
E20:Mark not set

此外,即使我删除了整个回音线,同样的错误也会再次出现

VIM版本是7.0.237

E20: Mark not set
通常这意味着你试图跳转到一个不存在的标记

看看你的地图:

map <F4> :call UpdateTitle()<cr>'s
map:调用UpdateTitle()
结尾的
是什么?你有标记
s

  • 此错误消息将清除您的消息(在函数中回显)。这就是您无法看到它的原因
  • 该函数之所以有效,是因为它发生在您的“输入错误”之前

如果您看到
E20:Mark not set
bycontract,您可以继续执行尝试运行的命令

例如,点击
i
进入编辑模式,消息将消失


我试图键入一个倒勾,后面跟着字母,以为我处于编辑模式,这恰好是跳转到标记的方式(请参阅)。

Vim 7.0是2006年的,非常过时。应该可以安装最新版本的7.3;如果您找不到适合发行版的软件包,也不难安装(例如,来自Mercurial的源代码)在Linux上。这是一个崩溃还是陷入了某种vim IDE状态?