在Mac的键盘上实际是没有backspace这个键的。其实Mac的delete就是Windows的backspace,实现的都是向左删除的功能。Mac上如果要实现向右删除的功能需要使用⌘+delete组合键来使用。

原因

网上搜到了很多答案但是现象和解决方案都不同,例如:

  • 使用delete键出现了?
  • 使用delete键,光标移动,但是字符仍然显示。退回normal模式后字符才彻底消失
  • 使用delete键没有反应

博主这里遇到的是第三种情况。每次从normal模式再次进入insert模式后,delete就再也无法向左删除。取而代之的是Mac那蛋疼的duang,duang,duang警告声。

如果你是伸手党,只想知道怎么解决的话,那么通关密码是在~/.vimrc中加上set backspace=2

恭喜!你的问题就此解决。(如果问题还在,建议仔细将自己delete键行为和上述三种情况做比对,点击链接对症下药)

如果你也想知道这个恼人的duang,duang,duang到底是什么原因产生的话,那么让我们往下看。

出现这个问题,基本是因为你的VIM使用了compatible模式,或者把backspace变量设置为空了。

好奇的读者一定会问,这两个配置又代表了什么意思?其实compatible模式是VIM为了兼容vi而出现的配置,它的作用是使VIM的操作行为和规范和vi一致,而这种模式下backspace配置是空的。

即意味着backspace无法删除indentend of linestart这三种字符。

如果你出现了和博主一样的情况,不妨在解决问题前先在VIM中用set backspace?命令查看下自己当前的删除模式。你会看到如下的情况:

效果就相当于delete只能删除本次insert模式中输入的字符。

那么为什么backspace=2又能解决问题呢?其实这个命令是set backspace=indent,eol,start的简化写法,也就相当于把delete键配置成增强模式。具体数值和对应增强模式的对应关系见 vim官方文档,简单摘录如下:

0 same as “:set backspace=” (Vi compatible)
1 same as “:set backspace=indent,eol”
2 same as “:set backspace=indent,eol,start”

Mac的VIM中delete键失效的原因和解决方案的更多相关文章

  1. vim中delete(backspace)键不能向左删除

    MacOS修改为英文语言之后,忽然出现如题问题:delete键不能向左删除,只可以删除本次插入模式下插入的文本.原因: 转载:https://www.smslit.top/2016/11/27/vim ...

  2. Vim中复制粘贴缩进错乱问题的解决方案

    Vim中复制粘贴缩进错乱问题的解决方案 当你把这段缩进优美的代码直接ctrl+c,ctrl+v到Vim的时候,就会出现如下恶心的情况 可以看到,这种直接粘贴的方式会导致代码丢失和缩进错乱等情况. 解决 ...

  3. 在VNC中Xfce4中Tab键失效的解决方法

    说明 在Ubuntu Server 14.04上安装了xfce4桌面环境,但是却发现在终端中Tab键不能自动补齐(但是Ctrl + I 仍然可以用). 出现这种情况的原因是,由于Tab键的功能被窗口快 ...

  4. ubuntu VNC中Xfce4中Tab键失效的解决方法

    转:https://blog.csdn.net/xuezhisdc/article/details/48662435 说明 在Ubuntu Server 14.04上安装了xfce4桌面环境,但是却发 ...

  5. Vim中的键映射【转】

    转自:http://www.cnblogs.com/softwaretesting/archive/2011/09/28/2194515.html http://www.pythonclub.org/ ...

  6. 如何设置vim中tab键缩进---配置初始化设置

    转载自:http://blog.51cto.com/xuding/1725376:加了一些补充说明 问题: Linux系统下,Tab键默认为8个字符,需呀将其修改为4个字符的方式使用 步骤: 1.在用 ...

  7. WPF GridView中的CellTemplate失效的原因

    最近做一个ListView的Style时,发现一个问题, 就是我的GridView的GridViewColumn的CellTemplate无论是用StaticResource还是DynamicReso ...

  8. css中 出现height为100%失效的原因及解决方案

    我们都知道需要给html和body标签设置了高度height:100%之后,再给内部的div设置height:100%的时候,内部div的高度100%才会起到作用.这是由于:%是一个相对父元素计算得来 ...

  9. wpf 绑定失效的原因及解决方案

    有时候,您会发现在程序开始时还能正常运行的绑定失效了.就个人经验而言,绑定的失效主要分为两种情况:对于One-way绑定而言,如果软件开发人员绕过绑定直接更改了目标属性,那么绑定将会失效.而对于Two ...

随机推荐

  1. kongdashboard

    apiVersion: v1kind: Servicemetadata:  name: kong-dashboard  namespace: kongspec:  type: NodePort  po ...

  2. ES2.3.5版本的数据类型

    1,最近使用了2.3.5版本的ES,发现在创建索引的时候出了以下错误. (1)例: POST 192.168.11.166:9200/article3/article/_mapping { " ...

  3. mxgraph初体验

    最近公司让学习了mxgraph,简单总结一下 (1)mxGraph学习路径 1)API:http://jgraph.github.io/mxgraph/docs/js-api/files/index- ...

  4. 【原】python3.6安装python-dev

    [root@ci /usr/lib64/python3.6]# yum -y install python36-devel

  5. proto school tutorial: blog: lesson 1

    https://proto.school/#/blog/01 我们现在希望:把一个post 和他的作者联系起来. 从之前的教程here中,你可以知道, 一个cid 就是代表一个link 比如: { l ...

  6. 重学Linux - 文件处理命令

    文件处理命令 @auther 张念磊 @date 2020/1/29 touch 命令所在路径:/bin/touch 执行权限:所有用户 语法:touch [filename] 功能描述:创建空文件 ...

  7. Spring中@MapperScan注解

    之前是,直接在Mapper类上面添加注解@Mapper,这种方式要求每一个mapper类都需要添加此注解,麻烦. 通过使用@MapperScan可以指定要扫描的Mapper类的包的路径,比如: @Sp ...

  8. SpringBoot+JWT+SpringSecurity+MybatisPlus实现Restful鉴权脚手架

    若图片查看异常,请前往掘金查看:https://juejin.im/post/5d1dee34e51d4577790c1cf4 前言 JWT(json web token)的无状态鉴权方式,越来越流行 ...

  9. VIM学习笔记一

    键位图 转自:链接 永久显示行号: vi ~/.vimrc 加入 :set number 命令 简单说明 :w 保存编辑后的文件内容,但不退出vim编辑器.这个命令的作用是把内存缓冲区中的数据写到启动 ...

  10. CODE 大全网站整站源码分享(带数据库)

    CODE 大全是一个偏向于 JavaEE.JavaWeb,WEB 前端,HTML5,数据库,系统运维,编程技术开发的纯个人学习.交流性质的技术博客,一个很不错的网站,现在我免费分享给大家.对 java ...