当前位置: 首页 > 知识库问答 >
问题:

vim - VIM 中 E122 函数 SetTitle已存在,请加!强制替换 ,怎么解决?

沃宇
2024-06-17

VIM 中 E122 函数 SetTitle已存在,请加!强制替换 ,怎么解决?

共有1个答案

薛滨海
2024-06-17

当你在 Vim 的脚本文件中遇到错误 "E122: 函数 SetTitle 已存在,请加 ! 强制替换" 时,这意味着你尝试定义一个已经存在的函数 SetTitle。在 Vimscript 中,你不能重新定义已经存在的函数,除非你在定义时添加 ! 来强制替换现有的函数。

解决这个问题,你有以下几个选项:

  1. 使用 ! 强制替换
    如果你确定要替换现有的函数,你可以在函数定义前添加 ! 来强制替换它。

    function! SetTitle(...)    " 函数体endfunction

注意 function! 中的 !,它告诉 Vim 强制替换现有的函数。

  1. 重命名函数
    如果你不想替换现有的函数,你可以考虑给你的函数起一个新的名字,以避免冲突。
  2. 检查是否有其他脚本文件定义了相同的函数
    有时候,你可能在多个地方或不同的插件中定义了相同的函数。确保你了解哪些脚本定义了 SetTitle 函数,并决定是否需要修改它们。
  3. 检查函数的用途
    如果 SetTitle 函数是由某个插件定义的,并且你不确定是否应该替换它,那么最好先了解这个函数的用途。可能的话,查看插件的文档或源代码以获取更多信息。
  4. 使用 augroupautocmd 管理插件加载顺序
    如果你的自定义脚本需要在特定的插件之后加载,你可以使用 Vim 的自动命令(autocmd)和自动命令组(augroup)来管理加载顺序。这样,你可以确保你的函数定义在尝试使用它的插件之后进行。
  5. 删除或禁用冲突的插件或脚本
    如果冲突来自于某个插件或你不再需要的脚本,考虑禁用或删除它。

选择哪种解决方案取决于你的具体情况和需求。通常,强制替换函数(选项 1)应该谨慎使用,因为它可能会破坏其他依赖于该函数的代码。在大多数情况下,重命名函数(选项 2)或管理加载顺序(选项 5)可能是更好的选择。

 类似资料:
  • 本文向大家介绍vim 保存在Vim中编辑的只读文件,包括了vim 保存在Vim中编辑的只读文件的使用技巧和注意事项,需要的朋友参考一下 示例 有时,我们可能会打开一个文件,如果没有使用,我们将没有权限在Vim中进行写入sudo。 使用此命令保存在Vim中编辑的只读文件。 您可以:w!!在其中映射到.vimrc: 如图所示,系统将提示您。 。 按O,文件将被保存。它在vi / vim中保持打开状态,

  • 文本编辑器最基本的功能就是对文件进行增删改查,前面的小节我们已经讲了增删等相关内容以及操作。这一节我们来看一下修改、查找和替换。 使用过 Word 的人应该很知道,在 Word 中我们使用 ctrl+f 来查找我们需要的内容。但是 Word 的查找功能比较单一,Vim 则提供了更加丰富的查找场景: 高亮查找 大小写敏感查找 重复查找 预览查找 1. 查找 使用查找功能我们需要进入普通模式,普通模式

  • Vim提供了许多寄存器。可以将这些寄存器用作多个剪贴板。使用多个文件时,此功能非常有用。在本章中,将讨论以下主题内容 - 复制寄存器中的文本 粘贴寄存器中的文本 列出可用的寄存器 寄存器类型 1. 复制寄存器中的文本 对于复制,可以使用普通的命令,即并将其存储在寄存器中,可以使用以下语法 - 例如,要复制寄存器中的文本,请使用以下命令 - 2. 粘贴寄存器中的文本 从寄存器粘贴文本 - 例如,下面

  • 本文向大家介绍Vim 强制保存只读类型文件的方法,包括了Vim 强制保存只读类型文件的方法的使用技巧和注意事项,需要的朋友参考一下 发现问题: 在使用vim时,当我们以普通用户去打开一个只有root用户才有权限操作的文件时,我们编辑完成之后,正要保存,却发现,这个文件我们没有权限修改。 每次遇到这样的问题,我都很头疼,好不容易把文件编辑完了,却无法保存,就只能放弃,然后退出,再以root权限打开,

  • Vim

    Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 主要功能 根据设定可以和原始vi完全兼容 多缓冲编辑 任意个数的分割窗口(横,竖) 具备列表和字典功能的脚本语言 可以在脚本中调用 Perl, Ruby, Python, Tcl, MzScheme 单词缩写功能 动态单词补完

  • 寄存器这个概念,在之前的Vim复制、删除章节已经和大家提过。想必大家应该还有印象。我们根据那节场景讲了无名寄存器和复制专用寄存器。本节,我们就更加深入了解寄存器的概念和使用场景。 1. 寄存器概念 Vim 中的寄存器简单来说就是用于保存文本的容器。我们对不同场景划分了不同的寄存器,或者说容器。主要用于 Vim 使用中临时保存一些数据。 之前章节中我们我们提到过这个概念,并且对 Windows 和

  • 环境:win10 中安装的 Windows Subsystem for Linux(WSL),Ubuntu 20.04 LTS vim配置: 输入法按键设置:

  • 我刚刚注意到输入会关闭我当前打开的文件(我通过打字找到了这一点) 基于像< code>2dd(删除两行)或< code>2j(下移两行)这样的命令,我本以为< code>:2q会“退出两个文件”(尽管,如果我用< code > VI-O test file 1 test file 2 打开两个文件,< code>:2q只会关闭其中一个文件,而< code>:q2也是如此)。 < code>:q后面