vim - 陷入未知模式

时间:2018-01-13 00:06:52

标签: vim

问题陈述

我最近在我的一台服务器上遇到了一个问题,当我从插入模式开始输入时,我总是转到当前行的第二列

实施例

filters     = [
    {
 .gniyonna repus si sih       T
        'Name': 'tag:VPC',
        'Values': [
            'Staging'
        ]
    },
    {
        'Name': 'instance-state-name',
        'Values': [
            'running'
        ]
    }
]

预期输出

filters     = [
    {
        This is super annoying.   # This would not be annoying
        'Name': 'tag:VPC',
        'Values': [
            'Staging'
        ]
    },
    {
        'Name': 'instance-state-name',
        'Values': [
            'running'
        ]
    }
]

何时开始

当我试图节省一些时间并从我的工作站以粘贴(和插入)模式粘贴一个脚本(python)时,就开始了这个脚本或者从我的回购中克隆它就像我应该做的那样。

如果好奇这是我从工作站复制的脚本的内容:

https://github.com/ScriptMyJob/Lambda_ansible/blob/master/Resources/ec2_inventory.py

问题

有没有人知道我在哪种模式以及如何纠正它?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您的问题:

您似乎设置了revins选项。来自vim :help revins

                *'revins'* *'ri'* *'norevins'* *'nori'*
'revins' 'ri'       boolean (default off)
            global
            {not in Vi}
            {only available when compiled with the |+rightleft|
            feature}
    Inserting characters in Insert mode will work backwards.  See "typing
    backwards" |ins-reverse|.  This option can be toggled with the CTRL-_
    command in Insert mode, when 'allowrevins' is set.
    NOTE: This option is reset when 'compatible' or 'paste' is set.

来自:help ins-reverse

o  Typing backwards                 *ins-reverse*
   ----------------
   In lieu of using full-fledged the 'rightleft' option, one can opt for
   reverse insertion.  When the 'revins' (reverse insert) option is set,
   inserting happens backwards.  This can be used to type right-to-left
   text.  When inserting characters the cursor is not moved and the text
   moves rightwards.  A <BS> deletes the character under the cursor.
   CTRL-W and CTRL-U also work in the opposite direction.  <BS>, CTRL-W
   and CTRL-U do not stop at the start of insert or end of line, no matter
   how the 'backspace' option is set.

   There is no reverse replace mode (yet).

   If the 'showmode' option is set, "-- REVERSE INSERT --" will be shown
   in the status line when reverse Insert mode is active.

通过在正常模式下重新映射 i ,这可能是某人对你造成的笑话(或者在正常模式下粘贴时运气很差)。它可能会在nnoremap i :set revins<CR>i中添加类似.vimrc的内容,或者在启动vim时添加另一个vim配置文件。请参阅:scriptnames以查看在vim启动时获取的文件。

解决方案:

仅适用于当前会话

只需在正常模式下运行命令:set norevins即可。 然后使用:map检查您的映射。 如果您看到n i * :set revins<CR>i这样的映射,那就是罪魁祸首! 然后只需运行:nunmap i,它将在正常模式下取消映射 i 。记住:

  

:nunmap也可以在修道院外使用。

现在处于正常模式, i 不应设置revins选项。

对于所有新的vim会话:

我建议grep - ing&#34; revins&#34;在您的.vimrc,您的.vim目录和已加载的脚本(请参阅:scriptnames)中,以防它是同事的笑话。 :)