[英]Standard python interpreter has a vi command mode?
我在 python 解釋器(RHEL 5.3 上的 python 2.4)中工作了一點,突然發現自己處於“vi 命令模式”。 也就是說,我可以使用典型的 vi 鍵綁定編輯以前的命令,用 h 向左,用 x 刪除......
我喜歡它——唯一的問題是,我不知道我是怎么來到這里的(也許是通過我導入的模塊之一:pylab/matplotlib?)。
誰能闡明如何在解釋器中啟用此模式?
Ctrl-Alt-J 在readline 程序中從 Emacs 模式切換到 Vi 模式。
或者將“set editing-mode vi”添加到您的 ~/.inputrc
這一切都取決於幾件事。
首先,python shell 使用 readline,因此,您的~/.inputrc
在這里很重要。 這與 PostgreSQL 命令行解釋器 psql 和 MySQL shell mysql 相同。 所有這些都可以配置為使用 vi 風格的命令綁定,以及歷史記錄等。
<ESC>
將您的編輯模式設置為 vi 后,您將在 python shell 中進入 vi 模式
您可能需要在~/.inputrc
中添加以下定義
set editing-mode vi
操作系統信息
OSX 使用 libedit,它使用 ~/.editrc。 您可以通過man editrc獲取更多信息。
例如,要模仿在您的歷史記錄中搜索的流行組合鍵,您可以將以下內容添加到 your.editrc
bind "^R" em-inc-search-prev
對於 Mac OS X 10.10.3、python2.7,可以通過將bind -v
放在~/.editrc
中來配置vi
模式。 手冊頁的最后幾段暗示了這一點。
使用readline.parse_and_bind方法。 例如,在 python 交互式控制台上嘗試:
import readline
readline.parse_and_bind("set editing-mode vi")
似乎您可以在 .inputrc 中設置的任何命令也可以通過此方法設置。 我在 Python 2.7 和 3.5.1 中嘗試過。
另見man readline
編輯(2019 年 12 月 21 日) :或者也許,要擁有真正的 vim,您可以設法用Athame修補 python 的 readline。 我是用 bash 做的,非常酷。
在帶有Python 3.10的macOS Monterey(12.5)上,我通過將set editing-mode vi
添加到~/.inputrc
(我也創建了),使 vi 綁定在 python 解釋器中工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.