我想在我的wxWidgets GUI中添加一个元素,其行为类似于终端模拟器.不是在执行命令的shell方面,而是在终端中运行的应用程序的输入输出设置方面.
基本上,要求是:
流输入/输出:当您输入一个字符时,它会被添加到输入流中,当某些内容通过管道输送到终端时,它会立即打印出来.
无编辑:输入一个字符后,它永久存在,因为它可能已被终端中运行的应用程序使用.
某种滚动(即使它只是显示几行或其他东西).
如果有一些东西已经做到这一点会很好,但是对于如何用已经存在的控件(如wxTextCtrl)实现它的建议也会受到欢迎.
我想在Python应用程序中运行一个xterm兼容的虚拟终端.我需要在其中运行基于ncurses的应用程序,使用用户的输入提供它并读取其输出.
到目前为止,我已经找到了python-vte,但它只提供了一个GTK +小部件(libvte具有所需的VtePty类,但Python绑定没有)并且具有不可接受的libgtk依赖性.
有没有其他方法可以在Python中执行终端仿真?
我经常使用Guake终端模拟器.这是切片育成IMO以来最好的事情.
但有一件事一直困扰着我,当我想阅读手册页时,输出的默认宽度是终端窗口的宽度,在我的情况下总是全屏,所以它有点难以阅读.
有没有办法让man命令输出的默认宽度为a,阅读愉快,80个字符?
man的手册页有这一部分:
Run Code Online (Sandbox Code Playgroud)MANWIDTH If $MANWIDTH is set, its value is used as the line length for which manual pages should be formatted. If it is not set, manual pages will be formatted with a line length appropriate to the current terminal (using an ioctl(2) if available, the value of $COLUMNS, or falling back to 80 characters if neither is available). Cat pages will only be saved when the default formatting can be used, that is when the terminal …
我想运行此示例https://github.com/Gottox/node-webterm,但是当我执行命令 npm install 时,它显示错误消息。
Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
exechelper.cpp
..\src\exechelper.cpp(3): fatal error C1083: Cannot open include file: 'unistd.
h': No such file or directory [V:\node-webterm-master\node_modules\child_pty\bu
ild\exechelper.vcxproj]
pty.cpp
..\src\pty.cpp(25): error C2027: use of undefined type 'winsize' [V:\node-webte
rm-master\node_modules\child_pty\build\pty.vcxproj]
..\src\pty.cpp(22) : see declaration of 'winsize'
..\src\pty.cpp(25): error C2227: left of '->ws_row' must point to class/struct/
union/generic type [V:\node-webterm-master\node_modules\child_pty\build\pty.vcx
proj]
..\src\pty.cpp(26): error C2027: use of undefined …Run Code Online (Sandbox Code Playgroud) 我写了这个bash脚本,以便在互联网变得可访问时发出通知,但我不了解许多正在发生的事情.这是脚本:
while ! ping 8.8.8.8 -c 1 2&> /dev/null ; do true; done;
Run Code Online (Sandbox Code Playgroud)
-c 1选项告诉ping我只想发送一个数据包.2&> /dev/null是因为我不想看到输出.true是因为bash不接受do;语法.! ping ...因为ping在某些数据包之前没有收到数据包时返回非零状态代码timeout.预期的行为是在ping成功结束时此循环结束,终端仿真器将自动向我发送通知.
ctrl + C不起作用.我认为它会杀死子命令ping而不是整个命令.2&> /dev/null除了将输出写入终端的次要问题之外,只有删除才能使所有事情都有效.ctrl + C?2&> /dev/null使它工作?请注意,我已经有了转机.不过我还想了解bash一点.
f() { while ! ping 8.8.8.8 -c 1 ; do true; done; }; …Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本,它将在终端仿真器窗口中显示一个股票图表作为ASCII艺术.我通常使用OSX/Terminal.app,但基于Linux的解决方案是可接受的替代方案.
我的脚本目前有屏幕宽度和高度的命令行参数(同样,在CHARACTERS中测量,而不是像素),默认值由我自己的发明的环境变量确定.我希望这些脚本确定当前窗口的大小(IN CHARACTERS),并使用THAT作为默认值.我的17英寸Macbook Pro上的大窗口的典型尺寸可能是200 x 68.
这是一个perl脚本,但如果您知道其他语言的解决方案,请告诉我!
TIA.
肯
我在我的Android设备上安装了python 2.7,我尝试通过在终端模拟器中输入命令来执行python脚本.问题是虽然我使用python的完整路径,但会出现以下错误:
link_image[1997]: failed to link ./python CANNOT LINK EXECUTABLE.
我试图在./~bashrc中添加环境变量,但我没有成功.任何的想法 ?
当使用term模式导数(如ansi-term或multi-term)时,我经常想选择一个区域并将其复制到其他地方。如果该区域包括一条在终端窗口边缘处换行的线,则将该区域粘贴到另一个缓冲区中时,总是在换行的位置插入一个硬换行符term。这意味着我经常不得不返回并清理粘贴的文本。有办法避免这样做吗?我都尝试term-line-mode和term-char-mode; 两者都做同样的事情。
我不想编写一个剥离所有换行符的猛勾,因为我想在原始内容中保留现有的硬换行符。
我注意到终端模拟器中的一些 Emacs 键绑定发生了变化 ( xfce4-terminal)。
例如:M-SPC在 TTY 下设置标记,但在其中xfce4-terminal不执行任何操作。
还:
undoTTY 中并且在终端模拟器中不执行任何操作undo在 TTY 和终端模拟器中向后擦除字符有什么解决方案可以避免学习两条规则的负担吗?我只想像往常一样在 TTY 控制台中使用它们。
当我使用鼠标滚轮向上/向下滚动 Linux 终端窗口时,我得到的只是打印出一些控制字符。看起来是这样的..
^[OA^[OA^[OA^[OA^[OA^[OA^[OA^[OB^[OB^[OB^[OB^[OB^[OB^[OA^[OA^[OA^[OA
Run Code Online (Sandbox Code Playgroud)
我怎样才能将其关闭?