zoukankan      html  css  js  c++  java
  • vim中delete(backspace)键不能向左删除

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

     

    MacOS修改为英文语言之后,忽然出现如题问题:delete键不能向左删除,只可以删除本次插入模式下插入的文本。原因:

    转载:https://www.smslit.top/2016/11/27/vim-backspace-invalid/

    MacOS下打开vim编辑文本,进入插入模式,要删除编辑之前的保存过的几个字符,按下delete键删除它们,万万没想到呀!只听到”duang duang duang”,竟然无效!

    有一点先明确一下,在mac的键盘中没有backspace键,有个键叫delete,其实相当于window下的backspace键,编辑文本时按下都具有向左删除字符的功能。

    原因

    网上搜索得知,出现开头说的令人恼火的问题的原因是:

    VIM使用了 compatible 模式,或者把 backspace 变量设置为空了…其实compatible模式是VIM为了兼容vi而出现的配置,它的作用是使VIM的操作行为和规范和vi一致,而这种模式下backspace配置是空的。即意味着backspace无法删除 indent , end of line , start 这三种字符。

    在默认状态下,delete(backspace)按下只会删除本次插入模式下插入的文本,这跟backspace的模式设置有关,其模式可以设置为以下三种模式:

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

    解决

    知道了原因,就好解决了,只需要将backspace的模式设置成2就可以了,在~/.vimrc中添加了一下内容,保存,下次进入vim就可以在插入模式下任意使用delete(backspace)键了:

    " 解决插入模式下delete/backspce键失效问题
    set backspace=2

    参考

    1. Mac 的 Vim 中 delete 键失效的原因和解决方案
    2. Vim

  • 相关阅读:
    ruby计算平方和开方
    Silverlight中DataGrid翻页或者滚动时CheckBox/RadioButton显示的问题
    bat文件设置ip地址
    gcc编译多线程
    TCP Nagle算法
    fork父子进程 信号处理
    Unix守护进程的创建示例
    inline内联函数
    volatile类型
    ioctl获取接口名称、IP地址、MAC地址、广播地址等
  • 原文地址:https://www.cnblogs.com/mouseleo/p/14106578.html
Copyright © 2011-2022 走看看