我不知道如何在Vim模式下将我在IPython中选择/高亮显示的行复制到普通剪贴板(粘贴到IPython shell之外)。通常,在Vim中,我可以使用"+y
拖动文本并将其粘贴到其他地方,但在IPython Vim模式下按这些键似乎不起作用。因此,我最终不得不使用鼠标高亮显示所需的文本,并使用Command-C复制它。
这是一个烦恼,因为如果我在IPython中有多行,将会有许多垃圾字符,我必须过滤掉,如下所示:
In [8]: import numpy as np
...: import math
...:
...: print("hi")
...: while(True):
...: break
...:
...: x = 3
...: y = 4
...:
...:
在这里,我必须过滤掉每行中的In [8]
和...:
,但选择使用v
或V
会适当地忽略这些垃圾字符。
This answer没有说明 * 如何 * 在Vi模式下执行此操作,也没有提到任何关于拖动到系统剪贴板的内容。
2条答案
按热度按时间btqmn9zl1#
如果您在Vim终端内运行ipython,则可以在ipython中键入以下内容:
%history -l 10
这将打印最后10个命令,不带前导点。这可以很容易地复制。
你需要在vim终端中打开ipython.然后,在键入%history命令后(如上),您需要使用组合键
Ctrl-W Shift_N
进入正常模式。然后,使用V复制多行(块可视模型)复制到+
寄存器中。然后,您可以使用"+p
或其他应用程序(如gedit)使用“右键单击,然后粘贴'dxxyhpgq2#
下面是我在深入研究了IPython和prompt-toolkit的文档之后为此目的编写的一个小插件脚本:
y
拖到系统剪贴板,p
在光标 * 后 * 粘贴(这与正常的vi(m)行为不同)。此脚本将添加到IPython配置文件配置目录的startup
子目录中(请参阅IPython文档或example config)