ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Emacs终端列宽(julia / python shell)

2019-07-08 07:55:27  阅读:292  来源: 互联网

标签:python shell emacs julia


我正在尝试将Emacs用作Julia&amp ;;的集成计算环境.Python. ESS(Emacs Speaks Statistics)是我用来交互式发送选定代码以进行REPL评估的插件.

C-c C-c选择代码并在第一次使用组合时启动Julia解释器,在后续执行中它使用现有的Julia会话.

我面临的挑战是Julia的终端窗口(即使是Python也是这种情况)由于某种原因仅使用80列作为输出.

例如,如果在Julia会话中执行以下代码,则会将DataFrame df打印在包含80列的三个组中.即使我的窗口大小可以轻松处理超过200个字符.

 using DataFrames
 df=readtable("../../data/titanic/data/train.csv")


 julia> df[1:2, :]
 2x12 DataFrame
 | Row | PassengerId | Survived | Pclass |
 |-----|-------------|----------|--------|
 | 1   | 1           | 0        | 3      |
 | 2   | 2           | 1        | 1      |

 | Row | Name                                                  | Sex      |
 |-----|-------------------------------------------------------|----------|
 | 1   | "Braund, Mr. Owen Harris"                             | "male"   |
 | 2   | "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" | "female" |

 | Row | Age  | SibSp | Parch | Ticket      | Fare    | Cabin | Embarked |
 |-----|------|-------|-------|-------------|---------|-------|----------|
 | 1   | 22.0 | 1     | 0     | "A/5 21171" | 7.25    | NA    | "S"      |
 | 2   | 38.0 | 1     | 0     | "PC 17599"  | 71.2833 | "C85" | "C"      |

我甚至尝试在Emacs shell M-x shell中手动启动Julia会话,甚至会导致80列包装.

但是如果我在常规Mac OSX终端内运行的Julia会话中执行相同的代码,则会正确使用终端的整个宽度.

变通方法/潜在的罪魁祸首

如果我在我的OS X终端上执行stty大小,我得到适当的输出,表示我的终端的实际大小,例如24 157.

但是如果我在Emacs shell M-x shell中执行stty大小,我得到0 0.无论Emacs窗口的大小是什么,stty内部emacs的结果总是0 0.

当我手动更改stty设置时,让我们说stty行24 cols 160然后执行julia我能够从julia获取输出以消耗所有160列.

>如何让Emacs动态调整stty(设置)或任何能够提供预期结果的工具.
>如果#1不可能,这是一个妥协,我必须处理是否可以在.emacs文件中设置静态stty设置,默认情况下将使用.

我甚至在Linux机器(CentOS)上尝试了这个,我在那里遇到了同样的问题.

谢谢您的帮助.

解决方法:

在我正在看的emacs M-x shell中,有一个EMACS = t的envvar,你可以用来从.bashrc或同等的内部进行stty设置.

但是,如果您使用“Mx ansi-term”,则完全支持终端大小调整,包括动态调整大小,严重的终端仿真等.更多信息:https://masteringemacs.org/article/running-shells-in-emacs-overview – 如果您有可能,我强烈推荐此路径(假设没人知道更好的一个).

希望你能够使用ansi-term,但如果需要M-x shell,那么这样的.profile或.bashrc行可能会起作用.缺点是它将是每用户,并且用户在这些脚本中做了截然不同的事情.

[ _"$EMACS" = _t ] && stty cols 160

标签:python,shell,emacs,julia
来源: https://codeday.me/bug/20190708/1399647.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有