Smalltalk 如何在pharo或squeak中更改CommandShell窗口中的字体?

Smalltalk 如何在pharo或squeak中更改CommandShell窗口中的字体?,smalltalk,pharo,squeak,Smalltalk,Pharo,Squeak,在Pharo和Squeak中,如果安装了CommandShell,则可以键入CommandShell open。它将打开一个命令窗口,基本上类似于bashshell或终端窗口,但它使用的是一种几乎微小的默认字体。我似乎不知道如何改变它 我发现smalltalk中的一般方法是浏览一个类的实现,看看是否可以找到一些可以对该类说的话来告诉它你想要什么,或者以某种方式修改该类,使其对其他类回答不同的问题,从而达到预期的效果。类似于InstanceOfcommandshell SomeView或Contr

在Pharo和Squeak中,如果安装了CommandShell,则可以键入CommandShell open。它将打开一个命令窗口,基本上类似于bashshell或终端窗口,但它使用的是一种几乎微小的默认字体。我似乎不知道如何改变它

我发现smalltalk中的一般方法是浏览一个类的实现,看看是否可以找到一些可以对该类说的话来告诉它你想要什么,或者以某种方式修改该类,使其对其他类回答不同的问题,从而达到预期的效果。类似于InstanceOfcommandshell SomeView或ControllerThingy setDefaultFont:blahblahblah之类的东西

CommandShell似乎使用ShellWindowMorph,并且它接受一条setFont消息。我不太会说闲话,不知道下一步该怎么办

我正在使用Pharo 2.0,但如果有人知道如何在Squeak中使用它,我相信它也会一样

请注意,我已经找到了pharo的设置,常规设置更改会影响主转录窗口,但不会以任何方式影响特殊CommandShellTranscript或其内容

我用于以编程方式更改其余字体的代码如下所示:

|font codeFont|

font := LogicalFont familyName: 'Consolas' pointSize: 10.
codeFont := LogicalFont familyName: 'Consolas' pointSize: 9.
StandardFonts listFont: codeFont.
...

您可以通过以下方式替代ShellWindowMorp默认文本样式:

textStyle
    " Answer a font for the text morph"

    ^ TextStyle default
该窗口应具有直接从shell菜单右上箭头或设置浏览器设置字体的方法。通过将“光晕”菜单置于感兴趣的变形上,可以修改任何变形属性Alt+Shift+在MS Windows下单击鼠标左键,然后选择红色图标。然后选择调试->探索变形并直接从资源管理器设置文本样式:

self textMorph setTextStyle: TextStyle default

ShellWindowMorph使用系统范围的DefaultFixedTextStyle

在Squeak中,您可以这样更改它:

TextConstants
    at: #DefaultFixedTextStyle
    put: (TextStyle fontArray: {StrikeFont fromUser}).

顺便说一句,在shell窗口中,您可以使用ProtoObject等Smalltalk表达式计算所有子类的大小和命中率,例如在Python IDLE中。这是一种巧妙的混合方法。从风格上来说,这可能比修改代码以删除对DefaultFixedTextStyle的引用要好,我猜?这很管用,而且我感觉很好,因为它感觉这个对象回答的默认文本样式是来自旧世界的Squeak,在Pharo的任何字体/外观设置中都没有出现。