当前位置: 首页 > 科技观察

Vim编辑器的兼容模式_0

时间:2023-03-12 03:18:29 科技观察

到目前为止,在我们的Vim教程中,我们已经讨论了编辑器的模式行功能以及如何使用插件来扩展Vim的功能集。但正如我们所知,Vim提供了许多内置功能:所以在本教程中更进一步,让我们谈谈编辑器启动时可用的模式。但在我们开始之前,请注意本教程中提到的所有示例、命令和使用说明都是在Ubuntu14.04上测试的,我们测试的Vim版本是7.4。Vim中的兼容模式和不兼容模式为了更好地理解上述Vim模式,您有必要了解编辑器初始化过程的一个重要方面。系统级和本地vimrc文件当Vim启动时,编辑器搜索系统级vimrc文件以进行系统范围的默认初始化。这个文件通常在你系统的$VIM/vimrc路径下。如果不存在,您可以通过在Vim中运行:version命令找到它正确的存储位置。例如,在我的例子中,该命令相关部分的输出如下:......systemvimrcfile:"$VIM/vimrc"uservimrcfile:"$HOME/.vimrc"2nduservimrcfile:"~/.vim/vimrc"userexrcfile:"$HOME/.exrc"fall-backfor$VIM:"/usr/share/vim"...可以看到系统vimrc文件确实在$VIM/vimrc中,不过我查了一下我的机器上没有设置$VIM环境变量。所以在这个例子中——正如你在上面的输出中看到的——$VIM在我的路径/usr/share/vim中,这是一个备用值)。于是我试着在这个路径下找vimrc,结果看到这个文件是存在的。如前所述,上面是我的系统vimrc文件-Vim启动时会读取它。读取和解析系统级vimrc文件后,编辑器将查找用户特定(或本地)的vimrc文件。这个本地vimrc的搜索顺序是:环境变量VIMINIT、$HOME/.vimrc、环境变量EXINIT和一个名为exrc的文件。通常会有$HOME/.vimrc或者~/.vimrc这样的文件,可以认为是本地的vimrc。我们在谈论什么样的兼容性?就像我们谈论Vim的兼容模式和不兼容模式一样,这些模式在打开和关闭时会产生什么样的兼容也是值得了解的。要理解这一点,首先要知道Vim是VIMproved的缩写。顾名思义,Vim编辑器是Vi编辑器的改进版。改进意味着Vim的功能集比Vi的更大。要更好地了解这两个编辑器之间的区别,请单击此处。当谈到Vim的兼容和不兼容模式时,兼容性是指Vim与Vi兼容。Vim的大部分增强和改进在兼容模式下运行时不可用。不管怎样,请记住,在这种模式下,Vim不仅仅是等同于Vi-这种模式只是设置了一些类似于Vi编辑器工作方式的默认选项。不兼容模式-事不宜迟-使Vim使用与Vi不兼容,并使用户可以使用它的所有增强、改进和功能。如何启用/禁用这些模式?尝试在Vim中运行:helpcompatible命令,然后你会看到如下语法:'compatible''cp'boolean(defaultenabled,disabledwhen|vimrc|or|gvimrc|exists)说到兼容模式,默认情况下它是打开的,但是当vimrc文件存在时它会被关闭。但是它在谈论哪个vimrc文件?答案是本地的vimrc。深入研究:helpcompatible命令给出的细节,你会发现下面的内容更清楚:事实上,这意味着当一个|vimrc|或|gvimrc|文件存在,Vim将使用默认的Vim,否则将使用默认的Vi。(注意:如果|-u|参数在系统范围的vimrc或gvimrc文件中,则不会出现这种情况。)那么当Vim启动时,实际的动作是首先解析系统vimrc文件——此时默认启用兼容模式。现在,只要找到用户(或本地)vimrc,就会打开不兼容模式。:helpcompatible-default命令说得很清楚:当Vim启动时,'compatible'选项被打开。这将在Vim开始初始化时应用。但是一旦后面发现了用户级的vimrc文件,或者当前目录下有vimrc文件,或者设置了VIMINIT环境变量,Vim就会被设置为不兼容模式。如果您想覆盖编辑器开始解析系统vimrc文件时打开不兼容模式的默认行为,您可以通过将以下命令添加到该文件的开头来实现。:setnocompatible其他有用的细节以下是关于这些模式的一些更有用的细节:现在通过创建.vimrc文件来设置或重置兼容性有一个副作用:(键盘)映射(Mapping)在解释时会发生冲突。这在使用回车控制字符等时会有所不同。如果映射依赖于特定的兼容性值,请在给出映射之前设置或重置它。可以通过以下方式覆盖上述行为:如果给出-N命令行参数,即使不存在vimrc文件,也会启用“不兼容模式”。如果给出-C命令行参数,即使存在vimrc文件,也会启用“兼容模式”。如果应用-u{vimrc}参数,将启用“兼容模式”。当Vim可执行文件的名称以ex结尾时,这与给定-C参数具有相同的效果:即使有vimrc文件,也会启用'兼容模式',因为当Vim以名称"ex"启动时,它会让Vim像“前辈”一样工作(LCTT译注:意思是Vim像Vi一样工作)。```结论我们都觉得您可能不会遇到需要打开Vim的Vi兼容模式的情况,但这并不意味着您应该不知道Vim编辑器的初始化过程。毕竟,您永远不知道这些知识何时会对您有所帮助。