当我通过 SSH 使用腻子(从我的 Windows 7 盒子)连接到我的本地 Ubuntu 开发服务器时,以下组合键无法在单词边界上向前和向后移动光标:
光标一次只能移动一个字符。我正在使用 bash。
这个问题解释了如何.inputrc
使用C-x C-r
. 但是如何使用 bash 脚本中的命令重新加载它呢?
我正在使用 Kubuntu 10.04。我想更改 bash(终端)的一些标准快捷键。
以下是我想设置的快捷方式:
Ctrl-C将终端中选定的文本复制到剪贴板。
Ctrl-V从剪贴板粘贴到终端。
Ctrl-Z撤销对终端当前行的编辑。
Ctrl- Shift- C(甚至更好, Super- C)终止命令。
Ctrl- Shift- Z(或Super- Z)作为后台命令。
Ctrl- Shift- V(或Super- V)成为文字插入命令(或Ctrl-z之前所做的任何事情)。
我如何进行这些更改?
顺便说一句,我喜欢终端在 OS X 上的工作方式。命令键的使用使所有复制/粘贴命令非常一致(与 OS X 中的许多其他东西不同)。
PS我阅读了bash手册页,但没有帮助。它给了我一些想法,但我需要上述组合的具体示例。谢谢。
我在远程机器上的 Linux 帐户带有以下预定义 .inputrc
"\e[1~": beginning-of-line
"\e[4~": end-of-line
“\e[5~”: history-search-backward
“\e[6~”: history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
set completion-ignore-case on
set bell-style visible
set expand-tilde on
set convert-meta off
set input-meta on
set output-meta on
set show-all-if-ambiguous on
set visible-stats on
Run Code Online (Sandbox Code Playgroud)
我读了GNU bash的文档的话题,但我一直没能找到一个部分解释什么字符序列\e[1~
,\e[5C
,\e\e[D
,等意思。
我觉得我读的地方,\e
手段meta character
(我认为这是Alt
在我的键盘),但不明白什么其他控制字符[
,~
,5D
等意思。
有谁知道关于这个主题的一个很好的参考?
我正在尝试做正确的事情并将我的键绑定放入~/.inputrc
.
然而,事实证明我必须改变
bind '"\e\C-j":"\e[1~quiet \e[4~\n"'
Run Code Online (Sandbox Code Playgroud)
进入
"\e\C-j": "\eOHquiet \eOF\n"
Run Code Online (Sandbox Code Playgroud)
现在\eOH
(nav-block-pos1 bound to beginning-of-line
) 和\eOF
(nav-block-end bound to end-of-line
) 本身就是我配置中的绑定,我可能不能总是依赖。
所以主要的问题是为什么绑定到 num-block-pos1 ( \e[1~
) 和 num-block-end ( \e[4~
) 可以使用bind
但在 my 中不行~/.inputrc
?
编辑:
整个事情变得更加复杂,现在我意识到\e\C-j
它只适用于 Gnome 终端(或者可能也适用于 xterm,谁知道...)。
对于我的 TTY,它必须是
"\e\C-m": "\e[1~_quiet \e[4~\n"
Run Code Online (Sandbox Code Playgroud)
那么是不是各种 VT 对如何解释密钥有不同的实现?
我想永久保存我使用和录制的键盘宏。有没有一种简单的方法可以为我新录制的宏“查看源代码”,以便我可以将它绑定到 ~/.inputrc 中的键盘快捷键?C-x (C-x )
我以为dump-macros
会做,但似乎没有...
我的主机最近更新到一个新的 CentOS,我一直在“个性化”它,现在我错过了一些东西。
在我的主页Ubuntu的服务器,我可以forward-word
和backward-word
用ALT+ RIGHT/ LEFT。我没有为此做任何事情。我也可以ALT+BACKSPACE删除一个词。
在我的新 CentOS 上,我可以执行ALT+ BACKSPACE,但我无法让ALT+ RIGHT/LEFT工作!ALT+ B/F工作,但那是不可接受的,因为它只适用于左边,ALT而且我的手指不是那么瘦。(右ALT+ B/F只打印“b”或“f”)
我试过将 /etc/inputrc 的一部分复制到 CentOS,但这没有任何作用。
ALT或者CTRL,我不在乎,但我真的需要一条捷径。最后一个 CentOS 没有它,但自从 Ubuntu 以来,我一直在 CentOS 上缺少它。
我的 CentOS /etc/inputrc
:
"\e[5C": forward-word
"\e[5D": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word
Run Code Online (Sandbox Code Playgroud)
我的 Ubuntu /etc/inputrc
:
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word …
Run Code Online (Sandbox Code Playgroud) 我正在从 Tcsh 转移到 Bash,我想随身携带ESC+p功能。
如果我输入,比如说git cl
,然后按ESC+ p,它应该自动完成到以git cl
(例如git clone something
)开头的最后一个命令,并将光标放在末尾。
我添加了以下两行~/.inputrc
:
"\ep": history-search-backward
"\en": history-search-forward
Run Code Online (Sandbox Code Playgroud)
这给了我我需要的东西,只是光标没有移动到最后。
任何想法如何解决这个问题?
当~/.inputrc
不不存在,击中Ctrl+Left Arrow和Ctrl+Right Arrow上的击命令行移动一个字光标前进和后退,分别。
但是,如果~/.inputrc
存在(无论它是否为空),这两个组合键会导致;5D
并;5C
打印光标所在的位置,而不是移动光标。
我该如何解决?