首页 > 其他分享 >Debian11.7 配置vi非兼容模式

Debian11.7 配置vi非兼容模式

时间:2023-09-27 09:46:50浏览次数:48  
标签:set vi Debian11.7 tiny vim etc 兼容

对于最小化安装的 Debian11.7 ,起初有一个问题给我造成了困扰:那就是当我使用 vi 编辑文本文件时,我无法通过键入“i”来切换到输入模式,或者说,其实的确进入了输入模式,但是底部行并没有显式进行提示,另外,我无法使用 Backspace 键来删除字符,Delete 键是可以删除字符的,不过这不符合我正常使用 vi 的编辑习惯。我所说的我正常使用的 vi 实际上包含在 vim 中(我不确定这样描述是否恰当),至少在 CentOS7.6/7.8/7.9 是这样的,在 CentOS7.8 中,执行vi -h得到的返回首行是:"VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 15 2020 16:43:23)",在 Debian11.7 中,返回是类似的,不一样的是,Debian11.7 中 /usr/bin/vi 是指向 /etc/alternatives/vi 的软链接,而 /etc/alternatives/vi 又是指向 /usr/bin/vim.tiny 的软链接,不过这不重要,重要的是,vim.tiny 的配置文件 /etc/vim/vimrc.tiny 中设置了兼容模式,也就是说,该 vim.tiny 兼容了 vi,这使得其原本的某些特性不能被使用,这包括了我在开头所说的。为了关闭兼容模式,可以在/etc/vim/vimrc.tiny 文件中添加set nocompatible ,这样会解决一部分问题,但是并没有完全解决我的问题,情况是这样的:再次编辑文件时,我仍然无法按照我的心意使用 Backspace 键进行无限制的删除,我不太好精确地描述这种限制,但是它确实存在。想要解除这种限制,需要在/etc/vim/vimrc.tiny 文件中添加set backspace=2

总结来说,对于最小化安装的 Debian11.7,想要以与 CentOS7.6/7.8/7.9 相同的方式使用 vi,可以在 /etc/vim/vimrc.tiny 中添加两条配置:

set nocompatible
set backspace=2

可以用 echo 的方式添加:

echo "set nocompatible" >> /etc/vim/vimrc.tiny
echo "set backspace=2" >> /etc/vim/vimrc.tiny

或者如果你的 apt 源是可用的,你可以安装 vim,这样 /usr/bin/vi 的最终指向的文件会被更改,上面所述的问题同样可以得到解决。

我认为这属于一个历史遗留问题,如果你没有特别的兴趣,完全没必要探究这究竟是怎么一回事。只需要了解解决办法就足够了。

参考资料

[1] Vim 编辑器的兼容模式.https://linux.cn/article-8224-1.html

[2] Debian11.7 的镜像下载链接.https://cdimage.debian.org/cdimage/archive/11.7.0/amd64/iso-cd/debian-11.7.0-amd64-netinst.iso

标签:set,vi,Debian11.7,tiny,vim,etc,兼容
From: https://www.cnblogs.com/realzhangsan/p/17731930.html

相关文章

  • Visual Studio 2022快捷键
    向上新增一行并跳转:ctrl+Enter向下新增一行并跳转:ctrl+shift+Enter跳到行首:home跳到行尾:end按词移动:Ctrl+ →按词移动:Ctrl+←选中行首到光标之间的代码:shift+home选中行尾到光标之间的代码:shift+end折叠/展开代码:ctrl+m+m[只对函数起作用]调用智能提示:ctrl+j......
  • vite+vue3项目发布到手机
    1.修改vite.config.jsexportdefaultdefineConfig({plugins:[vue(),],resolve:{alias:{'@':fileURLToPath(newURL('./src',import.meta.url))}},server:{hmr:true,host:"0.0.0.0",......
  • 模拟.NET应用场景,综合应用反编译、第三方库调试、拦截、一库多版本兼容方案
    免责声明使用者本人对于传播和利用本公众号提供的信息所造成的任何直接或间接的后果和损失负全部责任。公众号及作者对于这些后果不承担任何责任。如果造成后果,请自行承担责任。谢谢!大家好,我是沙漠尽头的狼。本文首发于Dotnet9,结合前面两篇(如何在没有第三方.NET库源码的情......
  • vite_vite.config.js配置代理与websocket代理
    exportdefaultdefineConfig({server:{proxy:{"/proxy":{target:"http://121.10.140.87",//线上服务器IP地址changeOrigin:true,ws:true,rewrite:(p......
  • 逻辑树(LogicTree)和可视化树(VisualTree)
    遍历逻辑树和可视化树FrameworkElementLevel.(FrameworkElementType).(FrameworkElementName)[DataContextType]publicstaticclassTreeHelper{publicstaticstringgetTree(FrameworkElementcontainer){StringBuildersb=newStringBuilder();......
  • vite中静态资源的处理
    public目录public目录是存放静态资源的一种方式。2.项目初始化时默认public作为静态资源服务的文件夹。我们可以在vite.config.js中修改publicDir。3.该目录中的文件开发期间在/处提供,并在构建期间将public文件夹下的文件(不包含public本身)复制到outDir的根目录。4.public......
  • Measuring Node Contribution to Community Structure With Modularity Vitality
    MeasuringNodeContributiontoCommunityStructureWithModularityVitality用模块性生命力度量节点对社区结构的贡献摘要社区感知中心性是网络科学中一个新兴的研究领域,关注节点在社区结构中的重要性。先前的方法扩展了经典的中心性度量来解释社区结构,而与社区检测理论几......
  • 多线程Review-926-01
    一、进程与线程1、进程:①电脑管家等软件我们运行的应用程序②在内存中正在运行的程序2、线程:①进程中的一个最小执行单元。一个进程最少得有一个线程②软件中的每一个功能,如电脑管家中的清理垃圾、杀毒、软件搜索二、线程的创建方式1、继承Thread类  :优点——代码......
  • 【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
    问题描述启用AppServiceLocalGit部署,在Clone代码库到本地时候,卡在Clone‘xxxxxx’......一动不动的问题? 问题解答因为GitClone没有任何日志输出,所以在其他IDE上也尝试GitAppService的代码库。在intellj的git操作,报错“unabletoaccess,SSLcertificateproblem:una......
  • 【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
    问题描述启用AppServiceLocalGit部署,在Clone代码库到本地时候,卡在Clone‘xxxxxx’......一动不动的问题? 问题解答因为GitClone没有任何日志输出,所以在其他IDE上也尝试GitAppService的代码库。在intellj的git操作,报错“unabletoaccess,SSLcertificateproble......