iTerm2 python api 清空会话当前行后执行命令

1. 问题:

在选择已有会话执行命令时,如果当前会话有用户手动输入,会造成命令执行失败,此时需要删除用户以后输入后执行命令。

2. 解决方法

在执行命令前添加退格转义序列符 \b

注:\b 的 ascii 码 10 进制为 8。

3. 代码示例

# 计算退格数
screen_content = await session.async_get_screen_contents()
current_line = screen_content.line(screen_content.number_of_lines - 1)

# 此处退格数多了没关系
backspaces = '\b' * len(current_line.string)

 # 在会话中执行命令,命令会随着会话结束(tab 关闭, window关闭)而终止
await session.async_run_coprocess(command_line="echo '{}{}'".format(backspaces, command))

4. 参考链接

转义序列符

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容