python 分隔符tab_Python readline自动完成(tab):为什么破折号和问号被视为单词分隔符?...

在使用Python的readline模块实现自动完成功能时,遇到破折号和问号被当作单词分隔符导致的意外行为。当输入'c'并按Tab键,期望显示以'ccc-'开头的值,但实际上显示了所有值。同时,输入'ccc-0'后按Tab键,不应有空格但出现了空格。问题在于readline将某些字符(如破折号和问号)误认为单词分隔符。代码片段展示了自动完成的实现,但未能配置哪些字符作为单词分隔符。
摘要由CSDN通过智能技术生成

你好编码员和勇敢的GNU-readline用户,

几个月前,我开始使用

Python的(2.7.1)readline模块来编写我编写的类似shell的应用程序.该应用程序与文件和文件系统无关 – 它是专有管理软件的定制解决方案.

昨天我发现特定文本会导致意外的自动完成行为,并且在documentation中找不到解决此问题的方法.我在这里拼命地寻求你的帮助.我将从一个示例开始,然后使用一个代码片段来重现不需要的行为.

提供自动完成的值是:

aaa0 aaa1 aaa2 bbb_0 bbb_1 bbb_2

ccc-0 ccc-1 ccc-2 ddd?0 ddd?1 ddd?2

…然后意外行为如下(每个动作后跟结果输出,管道符号代表光标):

>输入’b’.

输入> C |

>按TAB键(在我的配置中绑定到自动完成操作).

输入> bbb_ |

>再次按TAB键.您的文字将保持不变,但您会收到以下提示:

bbb_0 bbb_1 bbb_2

输入> bbb_ |

>键入“0”并按Tab键.

bbb_0 bbb_1 bbb_2

输入> bbb_0 |

注意’0’字符和光标之间的空格(下面的代码片段将解释这一点).

到目前为止一直这么好,并尝试使用’a’将导致类似的输出,只有没有下划线(aaa0,aaa1,aaa2).

>重新开始并输入’c’.

输入> C

>按TAB键.

输入> CCC-

>再次按TAB键.

aaa0 aaa1 aaa2 bbb_0 bbb_1 bbb_2 ccc-0 ccc-1 ccc-2 ddd?0 ddd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值