Questions tagged «readline»

GNU Readline是一个库,为Bash和其他交互式命令行程序提供命令行编辑和历史搜索功能。使用此标签可解决有关在Bash和其他软件中使用Readline功能的问题。

2
在终端中意外按下Ctrl-S后如何解冻?
这种情况在我身上经常发生:当我(以不同的意图)按下Ctrl-S终端后,与之的交互(输入或输出)被冻结。这可能是一种“滚动锁定”或其他任何一种。 此后如何解冻终端? (这一次,我一直在apt-shell内部进行bash内部处理- urxvt不确定其中哪个对特殊处理负责Ctrl-S:我C-r像往常一样使用readline 向后搜索命令的历史记录,但是后来我想返回“向前通过与通常的历史-在Emacs--至少C-s(1,2,3),但导致该终端冻结那么,滚动/寻呼查看过去的事情还工作在终端,但没有相互作用。流程在那里运行。)



1
执行没有键绑定的readline函数?
我刚读了readline手册页,发现了一堆我不知道的好命令。但是,有些没有默认的键绑定。有没有办法从外壳执行未绑定的命令? 我不是在问如何在〜/ .inputrc中绑定命令,而是如何从外壳或bash脚本中以“一次性”执行命令。 例如,“转储变量”命令。是否有一些命令可以将“ dump-variables”作为参数执行?
26 bash  shell  readline  inputrc 

9
如何在bash控制台上重复当前键入的参数?
我只是在输入以下内容: mv foo/bar/poit/zoid/narf.txt 突然意识到,该死,我不得不再次输入该参数的大部分内容 mv foo/bar/poit/zoid/narf.txt foo/bar/poit/zoid/troz.txt 即使有Tabcompletion,也相当痛苦。我知道我可以通过鼠标选择文本和Middleclick复制粘贴参数,但这还不够好。我想留在键盘上。 那么有没有办法使用键盘复制粘贴行的当前参数呢?



2
Alt-Left跳过单词在终端仿真器中不起作用
在上一份工作的Debian Wheezy机器上,我习惯了Alt + Left和Alt + Right来在活动命令行中的单词之间跳跃(以bash表示)。 但是,由于在家里,我已经升级到Jessie(Debian 8.0,测试分支),因此不再起作用:Alt-Left不会跳到上一个单词,而是打印类似D或的内容[D。OTOH,如果我打开ssh并连接到无头的Debian Wheezy,它的确运行良好。 此外,我刚刚在新工作中安装了Fedora 20,这里的行为是相同的。这适用于bash,csh和ksh(在下开始env -i),以及rxvt-unicode和xfce4-terminal,因此它必须在这些级别之外。 我应该在堆栈中的其他地方找到区别吗?

4
如何在readline中切换到vi编辑模式?
我想在readline环境中切换到vi编辑模式。但是我不想使用'set -o vi'。我想使用键盘快捷键临时切换。手册页上说我可以用M-C-j。但这对我不起作用。 我正在使用Ubuntu和xterm。在gnome-terminal下也不起作用。
16 bash  readline 


3
〜/ .inputrc文件无法正确来源
我有为某些按键绑定创建的〜/ .inputrc文件。 # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving "\e[1;5C":forward-word "\e[1;5D":backward-word "\e[5C":forward-word "\e[5D":backward-word "\e\e[C":forward-word "\e\e[D":backward-word 每当我尝试运行时source ~/.inputrc,都会出现以下错误: \ e [1; 5C:forward-word:找不到命令。\ e [1; 5D:向后单词:找不到命令。\ e [5C:forward-word:找不到命令。\ e [5D:向后单词:找不到命令。\ e \ e [C:forward-word:找不到命令。\ e \ e [D:后退单词:找不到命令。 当我打开新终端时,它也不起作用,我没有收到错误,但我的ctrl组合键在新终端中也不起作用。我自己创建了该文件,因为我没有root权限来更改/ etc / inputrc。有人可以帮我吗?谢谢。 编辑:我也尝试了冒号(:)后的空格文件。没用 我也尝试过使它可执行(chmod + x〜/ .inputrc),没有用。 编辑:我意识到此过程仅适用于'bash',而我正在运行'tcsh'。对于'csh',请使用.bindingsfile而不是.inputrcfile并使用bindkey语法。
14 bash  tcsh  readline 

2
Ctrl-R反向搜索后向前搜索的单个快捷方式
我一直都在使用Ctrl+ R,但是当我如此快速地按下它时,我常常会越过我要遵循的命令。 要向前搜索,Ctrl+ S可以用来提供它不使用终端第一(konsole中在我的情况,其中stty -ixon在~/.bashrc修复它)。 但是,我必须按两次:一次进入模式i-search后似乎进入,reverse-i-search第二次实际后退。 有没有一种方法可以消除两次​​按下快捷键的需要?

2
如何在外壳中以不同的方式显示控制字符(^ C,^ D,^ [,…)
当您在外壳中键入控制字符时,它们将使用所谓的“插入符号”显示。例如,转义^[符用插入符号表示。 我喜欢自定义bash shell,使其看起来很酷。我已经例如改变了我PS1,并PS2成为着色。我现在希望控制字符也具有独特的外观,以使其与常规字符更具区别。 $ # Here I type CTRL-C to abort the command. $ blahblah^C ^^ I want these two characters to be displayed differently 有没有办法让我的shell突出显示控制字符? 是否可以使其以粗体显示或以不同于常规文本的颜色显示? 我在这里使用bash shell,但是我没有用这个标签标记问题,bash因为也许有一种适用于许多不同shell的解决方案。 请注意,我不知道在什么级别突出显示控制字符。我首先以为它在外壳本身中。现在,我听说是readline控制bash之类的 shell中控制字符的方式。因此,该问题现在带有标记,readline而我仍在寻找答案。

1
在当前bash命令行中删除整个参数
使用^W(unix-word-rubout),我可以轻松地从bash shell中的当前命令中删除单个“单词”。 但是,当处理包含空格的带引号的引数(或包含反斜杠转义的空格的无引号的引数)时,这样做效果不佳,因为它只会删除一个单词而不是整个参数。 因此,我正在寻找一种删除整个参数的方法。 示例(光标始终在末尾): $ foo --bar "foo bar" meow [black magic] $ foo --bar "foo bar" [black magic] $ foo --bar [black magic] $ foo
13 bash  readline  inputrc 

2
如何撤消命令历史记录中的更改?
在UNIX系统中,您可以按上下箭头浏览先前的命令。这非常方便。 有时,我会上去查找要再次使用的命令,但是会有一些变化。如果我做了这样的更改,那么除非我签入,否则我将无法取回原始命令history。 有什么方法可以“撤消”通过键访问的历史记录中的命令更改? 我当前的解决方法是#在命令前添加a 。这样,当前命令将作为注释执行,因此没有任何反应。然后,我可以再次通过按键浏览命令。问题是我使用的命令可能在列表中距离很远,因此再次向上执行200次会有点麻烦。Control + R也不是解决方案,因为我可能不记得确切要找什么。 例 我输入了以下“ 50个命令之前”: ls -l /etc/httpd/conf/ 现在我走到那条线并将其更改为 ls -l /etc/init.d/ 但没有按Enter。现在,我想ls -l /etc/httpd/conf/再说一遍。 我的环境 $ echo $SHELL /bin/bash $ echo $TERM xterm

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.