标签: terminal-emulator

终端模拟器中的 Emacs 键绑定发生变化

我注意到终端模拟器中的一些 Emacs 键绑定发生了变化 ( xfce4-terminal)。

例如:M-SPC在 TTY 下设置标记,但在其中xfce4-terminal不执行任何操作。

还:

  • C--undoTTY 中并且在终端模拟器中不执行任何操作
  • C-/undo在 TTY 和终端模拟器中向后擦除字符

有什么解决方案可以避免学习两条规则的负担吗?我只想像往常一样在 TTY 控制台中使用它们。

emacs key-bindings terminal-emulator

5
推荐指数
1
解决办法
2353
查看次数

行与终端中的行

在终端仿真器中似乎有一些行与行的概念,我想知道更多.

演示我的意思是行与行

下面的Python脚本显示三行'a'并等待,然后有三行'b'.

import sys, struct, fcntl, termios

write = sys.stdout.write
def clear_screen(): write('\x1b[2J')
def move_cursor(row, col): write('\x1b['+str(row)+';'+str(col)+'H')
def current_width(): #taken from blessings so this example doesn't have dependencies
    return struct.unpack('hhhh', fcntl.ioctl(sys.stdout.fileno(), termios.TIOCGWINSZ, '\000' * 8))[1]

clear_screen()
for c in 'ab':
    #clear_screen between loops changes this behavior
    width = current_width()
    move_cursor(5, 1)
    write(c*width+'\n')
    move_cursor(6, 1)
    write(c*width+'\n')
    move_cursor(7, 1)
    write(c*width+'\n')

    sys.stdout.flush()
    try: input() # pause and wait for ENTER in python 2 and 3
    except: pass
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果在此休息期间将终端窗口宽度缩小一个字符,您会看到

在此输入图像描述

这似乎很合理 - 每条线都是单独包裹的.当我们再次点击进入打印b …

python terminal ansi-escape terminal-emulator

5
推荐指数
1
解决办法
1428
查看次数

Android:如何从命令行(终端模拟器或shell脚本)创建通知?

我想从我在Android设备上运行的shell脚本创建一个通知(通知栏中的图标和通知抽屉中的消息).我有CyanogenMod11,它附带BusyBox v1.22.1 bionic.

我已经发现了如何创建一个祝酒词(http://forum.xda-developers.com/showthread.php?t=773232),但我需要的是一个通知.有关吐司和通知之间的区别,请参阅此优秀主题:https://android.stackexchange.com/questions/52789/popups-dialogs-notifications-toasts-whats-the-difference

谁能指出我正确的方向?我猜这将涉及Android活动管理器(上午),但我搜索了互联网的每个角落,并且找不到从android命令行创建通知的方法.

notifications command-line android terminal-emulator

5
推荐指数
1
解决办法
4588
查看次数

Shift键在我的emacs中不起作用

我使用-nw选项在gnome-terminal中运行emacs,除了包含shift密钥的一些关键快捷方式外,它运行良好.例如,当我执行C-M-S-v(滚动 - 其他 - 窗口向下)时,C-M-vEmacs 只能识别键,而Emacs又会向上滚动另一个窗口.

我在GUI Emacs中尝试了这些关键快捷方式,一切正常.

我想gnome-terminal或其他终端模拟器一定有问题,比如Mac OS上的iTerm我遇到了同样的问题.

如何在gnome-terminal中启用包含shift键的快捷键?

emacs ubuntu terminal-emulator

5
推荐指数
1
解决办法
318
查看次数

用于tmux控制模式的Linux终端仿真器

是否有支持tmux控制模式的Linux终端仿真器?

我正在寻找相当于iterm2的东西.iterm2在Mac OSX下完成工作.

linux terminal-emulator tmux

5
推荐指数
0
解决办法
1210
查看次数

终端仿真器和 TTY 设备之间有什么关系?

我发现这篇很棒的文字解释了很多有关 TTY 设备的内容。它重点关注 TTY 设备和 shell(及其衍生的作业)之间的关系。但它很少提及终端仿真器和 TTY 设备之间的关系;现在我想知道这一点。我用谷歌搜索,但找不到答案......

1)终端仿真器负责什么样的输入逻辑?它只是将每个字符代码(通过窗口事件接收)发送到 TTY 设备,还是在传输到 TTY 之前/期间进行更复杂的处理?这些字符代码是如何发送到TTY设备的呢?通过文件?

2) 前台进程调用write()TTY 设备文件(又名stdout/ )后stderr,会发生什么?这些数据如何到达终端仿真器进程并进行渲染?再次,通过文件?

3) 终端仿真器是否负责“分配”TTY 设备?TTY 设备可以由内核“即时”创建,或者内核可以管理的可用 TTY 设备数量是否有限?

linux tty terminal-emulator

5
推荐指数
1
解决办法
1781
查看次数

适用于Windows 10的Neovim终端仿真器配置

我正在尝试为Windows配置Neovim.这种配置的关键之一是访问终端仿真器(切换和使用Vim终端非常方便).但我无法让它发挥作用.我使用Neovim二进制文件/ Neovim-qt.我可以!毫无问题地运行shell命令.

我也尝试过使用shell和shellquote vars进行实验,但它也没有用.

我试图使用Bash(MSYS2)而不是cmd.exe,但仍然没有运气.(!仍然有效)

问题可能是shell变量或一些权限.

我非常感谢任何帮助!

vim shell terminal-emulator neovim

5
推荐指数
1
解决办法
1696
查看次数

用于折叠/折叠文本的 ANSI 转义序列(可能是分层的)

例如,在Travis 中,通过打印travis_fold:start:<section-name>travis_fold:end:<section-name>,其行为类似于 Travis 的转义码,它将折叠文本。请参阅此处有关 Travis 折叠的信息。例如,请参阅此输出

对于 Linux/Unix 终端,这通常非常有用。是否有任何ANSI 转义序列/代码扩展可以做这样的事情(当然还有相应的终端模拟器来处理这些)?


现有的转义码(和扩展):

linux terminal ansi-escape terminal-emulator

5
推荐指数
1
解决办法
331
查看次数

编写 Linux 终端模拟器

我想编写一个 x11 终端模拟器,但我不知道我应该如何生成并与 shell 通信,是否有任何基本的(伪或 C)代码?比如要创建什么样的 PTY,如何将 shell 绑定到它,我必须捕捉或发送什么信号,等等。并不是真的想对整个 xterm 源进行排序。

编辑:哦,我想实现一种与其中的任何应用程序进行通信的方式,我该如何进行功能发现?“客户端”中有一些隐藏的ansi序列,希望它不会与其他终端模拟器冲突?一些环境变量,希望它不会与“客户端”发生冲突或被 shell 删除?

linux tty pty terminal-emulator

4
推荐指数
2
解决办法
7952
查看次数

libcaca - 将 ascii 字形更改为片假名

我正在创建一个视频效果,它应该看起来像“矩阵”电影,但有点不同(类似“矩阵”的视频输出将与真实视频的改变 alpha 通道混合,所以它看起来一半真实,一半带数字)。我只是使用带有 caca 驱动程序的 mplayer (mplayer -vo caca video.mp4) 以及屏幕录制,然后在其他软件中混合视频。为此,我需要更改文件dither.c 中的“静态 uint32_t ascii_glyphs[]”数组(来自此处发布的 caca 库的代码:https//github.com/cacalabs/libcaca/blob/master/caca/ dither.c ) from: ' ', '.', ':', ';', 't', '%', 'S', 'X', '@', '8', '?'包含所有片假名符号。但问题是看起来它们不可打印。所以视频的终端输出只包含阴影块。我应该说 bash 代码:

str123="???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????"

for i in $(seq 0 ${#str123}); do echo -n "'${str123:i:1}',"; done
Run Code Online (Sandbox Code Playgroud)

在我的终端中正常工作(用几个终端程序检查,正确打印),还设置了语言环境:

$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

新数组的结果:

/* List of glyphs */
static uint32_t ascii_glyphs[] …
Run Code Online (Sandbox Code Playgroud)

c ascii-art non-ascii-characters mplayer terminal-emulator

4
推荐指数
1
解决办法
77
查看次数