相关疑难解决方法(0)

如何在提示后自动插入字符串

我有一个bash终端窗口,我在其中执行一个命令foo。因此,我希望每一行(当然在提示之后)都以“foo”开头,这样我只需输入函数的选项和参数,而不是循环函数名称。当然,能够更改自动插入的字符串也很好,但这对我来说不是必需的。

例子

当我打开终端时,不输入任何内容,我想看到的是:

user@host:~/ $ foo 
Run Code Online (Sandbox Code Playgroud)

然后我输入--option argument,当我按下Enter该函数时foo,将使用给定的--optionand调用该函数argument

我试过的

我试图摆弄$PS1$PROMPT_COMMAND使用xdotool type "foo "并且令人惊讶的是它确实有效,但不幸的是它也在提示之前打印了“foo” ,这非常难看:

user@host:~/ $ PROMPT_COMMAND='xdotool type "foo "'
foo user@host:~/ $ foo 
Run Code Online (Sandbox Code Playgroud)

我还发现并尝试了Ryan Caloras 的 bash-preexec script 中preexec函数,但它有完全相同的问题。

如何将 (a (executable-)string) 回显到提示中,使光标在行尾闪烁?是相关的,但那里的答案无法--option argument向要执行的命令添加某些内容 ( )。不过我没有测试zsh——bash对于这么简单的事情应该有一个解决方案,你不觉得吗?

command-line bash prompt

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

如何模拟通过终端程序发送击键?

我需要将按键虚拟发送到终端程序(如viemacs)。

我想做这样的事情:

echo -e 'iHello, world!\e' | vi
Run Code Online (Sandbox Code Playgroud)

然后使用此缓冲区打开一个vi会话:

Hello, world!
~
~
~
~
~
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为vi不通过stdin读取击键。

我收到此错误:

ex/vi: Vi's standard input and output must be a terminal
Run Code Online (Sandbox Code Playgroud)

如何将一些文本字符串发送到终端程序,就像直接在键盘上键入字符串一样?

terminal keyboard input input-method

2
推荐指数
1
解决办法
5053
查看次数

标签 统计

bash ×1

command-line ×1

input ×1

input-method ×1

keyboard ×1

prompt ×1

terminal ×1