我试图将Emacs用作Julia&Python的集成计算环境。ESS
(Emacs Speaks Statistics)是一个插件,我用它来交互式地发送选定的代码进行REPL求值。在
C-c C-c
选择代码并在第一次使用组合时启动Julia
解释器,在随后的执行中,它使用现有的Julia
会话。在
我面临的挑战是Julia
(即使是Python
)的终端窗口出于某种原因只使用80 columns
作为输出。在
例如,下面的代码如果在Julia
会话中执行,将把数据帧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" |
我甚至尝试过在emacsshell中手动启动Julia
会话,M-x shell
甚至这样会导致80列的换行。在
但是如果我在一个运行在常规Mac OSX Terminal
内的Julia
会话中执行相同的代码,则可以正确地使用终端的整个宽度。在
解决方法
如果我在我的OS X Terminal
上执行stty size
,我会得到代表终端实际大小的正确输出,例如24 157
。在
但是如果我在emacsshell中执行stty size
,我得到0 0
。不管Emacs窗口的大小是多少,Emacs中的stty
总是0 0
。在
当我手动更改stty
设置时,比如说stty rows 24 cols 160
,然后执行julia
,我可以从julia那里得到输出来使用所有160列。在
问题
我甚至在Linux机器(CentOS)上也尝试过这种方法,但在那里我也遇到了同样的问题。在
谢谢你的帮助。在
在我看到的emacsm-xshell中,有一个emacs=t的envvar,您可以使用它在.bashrc或等效程序中进行sty设置。在
但是,如果您使用“M-x ansi term”,则完全支持终端大小调整,包括动态调整大小、严重的终端模拟等。更多信息:https://masteringemacs.org/article/running-shells-in-emacs-overview-如果可能的话,我强烈建议您使用此路径(假设没有人知道更好的路径)。在
希望您能够使用ansi术语,但是如果需要M-xshell,那么像这样的.profile或.bashrc行可能会有用。缺点是它会针对每个用户,而且用户在这些脚本中做的事情大不相同。在
相关问题 更多 >
编程相关推荐