Mac的VIM中delete键失效的原因和解决方案
在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
无法删除indent
,end of line
,start
这三种字符。
如果你出现了和博主一样的情况,不妨在解决问题前先在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键失效的原因和解决方案的更多相关文章
- vim中delete(backspace)键不能向左删除
MacOS修改为英文语言之后,忽然出现如题问题:delete键不能向左删除,只可以删除本次插入模式下插入的文本.原因: 转载:https://www.smslit.top/2016/11/27/vim ...
- Vim中复制粘贴缩进错乱问题的解决方案
Vim中复制粘贴缩进错乱问题的解决方案 当你把这段缩进优美的代码直接ctrl+c,ctrl+v到Vim的时候,就会出现如下恶心的情况 可以看到,这种直接粘贴的方式会导致代码丢失和缩进错乱等情况. 解决 ...
- 在VNC中Xfce4中Tab键失效的解决方法
说明 在Ubuntu Server 14.04上安装了xfce4桌面环境,但是却发现在终端中Tab键不能自动补齐(但是Ctrl + I 仍然可以用). 出现这种情况的原因是,由于Tab键的功能被窗口快 ...
- ubuntu VNC中Xfce4中Tab键失效的解决方法
转:https://blog.csdn.net/xuezhisdc/article/details/48662435 说明 在Ubuntu Server 14.04上安装了xfce4桌面环境,但是却发 ...
- Vim中的键映射【转】
转自:http://www.cnblogs.com/softwaretesting/archive/2011/09/28/2194515.html http://www.pythonclub.org/ ...
- 如何设置vim中tab键缩进---配置初始化设置
转载自:http://blog.51cto.com/xuding/1725376:加了一些补充说明 问题: Linux系统下,Tab键默认为8个字符,需呀将其修改为4个字符的方式使用 步骤: 1.在用 ...
- WPF GridView中的CellTemplate失效的原因
最近做一个ListView的Style时,发现一个问题, 就是我的GridView的GridViewColumn的CellTemplate无论是用StaticResource还是DynamicReso ...
- css中 出现height为100%失效的原因及解决方案
我们都知道需要给html和body标签设置了高度height:100%之后,再给内部的div设置height:100%的时候,内部div的高度100%才会起到作用.这是由于:%是一个相对父元素计算得来 ...
- wpf 绑定失效的原因及解决方案
有时候,您会发现在程序开始时还能正常运行的绑定失效了.就个人经验而言,绑定的失效主要分为两种情况:对于One-way绑定而言,如果软件开发人员绕过绑定直接更改了目标属性,那么绑定将会失效.而对于Two ...
随机推荐
- 微信小程序开发调试阶段不校验请求域名
在微信小程序开发官网上有说明: 在开发者工具的右上角有详情选项,可以勾选不校验合法域名,之后就可以与本地ip进行通信了!
- JavaScript 深度遍历对象的两种方式,递归与非递归
递归遍历: 基本问题: 当前属性值不为对象时,打印键和值 递归过程:当前属性值为对象时,打印键,继续递归 var o = { a: { b: { c: { d: { e: { f: 1, g:{ h: ...
- 对list集合的内容分组
/** * 把list集合里的内容按照len大小分组 * @param list * @param len * @return */ private static List<List<St ...
- bootstrap中col-xs-*和col-sm-* 和col-md-*是怎么样对应的
在做布局时,有时窗体大小变化会出现非想要的效果. 栅格系统中的列是通过指定1到12的值来表示其跨越的范围 所以不会有col-**-15 最大也就是12<div class="col-s ...
- HA: Armour-Write-up
下载地址:点我 bilibili:点我 信息收集 nmap扫存活找到IP为:192.168.116.140 ➜ ~ nmap -sn 192.168.116.1/24 Starting Nmap 7. ...
- c# 分页 PaginatedList<TResult>
using System; using System.Collections.Generic; using System.Linq; namespace Microestc.PaginatedList ...
- mysql之内连接,外连接(左连接,右连接),union,union all的区别
内连接,外连接,左连接,右连接,全连接 测试数据: CREATE TABLE `a_table` ( `a_id` int(11) DEFAULT NULL, `a_name` varchar(10) ...
- 吴裕雄--天生自然ORACLE数据库学习笔记:管理控制文件和日志文件
alter database add logfile ('D:\OracleFiles\LogFiles\REDO4_A.LOG', 'E:\OracleFiles\LogFiles\REDO4_B. ...
- FCN训练注意事项
1.如果是类别受两类,需要把标签图二值化为0,1
- 32 commons-lang包学习
maven依赖 <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lan ...