在 运行 一个 python 文件之后 Vim 在 bash 中命令 运行ning

Vim commands running in bash after I run a python file

我在 运行 python 单元测试文件后遇到问题。文件退出后,我只能在按下 "i" 并使用其他 vim 键绑定后与我的控制台进行交互。我还注意到,使用箭头键遍历我键入的内容会删除行尾的随机字符数。

EX:

$ ./tests.py -v
<output>
$ <cannot type>
<press "i">
$ I can now type
<press <- >
$ I can no

我正在使用 RHEL 7 和 bash。我已经尝试用谷歌搜索这个问题,但我要么是问题的格式设置不当,要么是一个不常见的问题。

感谢您的帮助。

编辑:

实际test.py包含私有代码,但此示例包含相同的基本代码。

test.py

#!/usr/bin/env python

import unittest

class TestUtil(unittest.TestCase):
    def test_hello_world(self):
        text = "Hello World!"
        self.assertEqual("Hello World!", text)
        print(text)
        pass
if __name__ == '__main__':
    unittest.main()

听起来好像您的 shell 被置于 vi-mode. This is a readline 模式,在该模式下您可以使用 vi 编辑键而不是更常用的 emacs 键。

我知道有两种情况会发生这种情况。

set -o vi

bindkey -v

从技术上讲,要关闭它,您可以使用 set +o vi。但是,这将禁用所有内联编辑。您更有可能希望回到 emacs 模式,这通常是默认模式。为此,请改为执行以下操作:

set -o emacs