我使用的是配备 mac os x 10.8.2 的 Macbook Pro
我已经设定:
page up: \033[5~
page down: \033[6~
Run Code Online (Sandbox Code Playgroud)
在终端键盘设置中(按 esc 获取 \033)。
我的 ~/.xinputrc 是:
# Be 8 bit clean.
set input-meta on
set output-meta on
set convert-meta off
# Auto completion options
set show-all-if-ambiguous on
set completion-ignore-case on
# Keybindings
"\e[1~": beginning-of-line # Home key
"\e[4~": end-of-line # End key
"\e[5~": history-search-backward # Page Up
"\e[6~": history-search-forward # Page Down
"\e[3~": delete-char # Delete key
"\e[5C": forward-word # Ctrl+right
"\e[5D": backward-word # …
Run Code Online (Sandbox Code Playgroud) 我可以通过按在 Chrome OS 中的应用程序之间切换alt-N
,其中 N 是我的应用程序在状态栏上的位置。有用!
但是当我在我的 Nitrous.io 盒子的 bash shell 中时,按下alt-N
以跳转到不同的应用程序会给 bash 一个命令:(arg: N)
.
该(arg: N)
命令在 bash 中做什么?五分钟的搜索教会了我很多热键,但没有alt + 数字键。
我可以禁用它吗?
当使用 bash(在终端中)执行很长的命令时,能够使用鼠标将光标设置到任意位置通常很有用。在 Mac-Os 中,alt(Option)键具有此效果(使用 alt+click)。
我开始使用Linux,这个选项不起作用。我相信有某种方法可以更新 ~/.inputrc 来启用此选项。你知道这样的方法吗?
我在 bash 中使用 vi 编辑模式。我在 ~/.inputrc 中将“show-mode-in-prompt”设置为“on”。
显示模式提示(关闭)
如果设置为 On,则在提示开头添加一个字符串,指示编辑模式:emacs、vi 命令或 vi 插入。模式字符串是用户可设置的(例如,emacs-mode-string)。
所以现在我可以在我的提示开头看到编辑模式。
i:$ # This is ins mode
c?$ # This is cmd mode
i:$ cat ~/.inputrc
set editing-mode vi
set show-mode-in-prompt on
set vi-ins-mode-string "\1\e[1;32m\2i:\1\e[0m\2"
set vi-cmd-mode-string "\1\e[1;31m\2c?\1\e[0m\2"
set colored-stats on
i:$ echo $PS1
$
Run Code Online (Sandbox Code Playgroud)
不过,我真的很喜欢在我的提示末尾添加这个,并在当前目录前面加上,即
/current/dir/here $ i:
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否可以实现。我的第一个想法是在 PS1 中使用回车,但不幸的是这会覆盖模式字符串。
i:$ PS1='\r\w $ '
~/projects $
Run Code Online (Sandbox Code Playgroud)
我的第二个想法是以某种方式获取模式字符串并将其插入 $PROMPT_COMMAND,而不是让 readline 将其写入提示。我可以通过以下方式获取当前模式:
i:$ bind -v | grep keymap | awk '{print $3}'
vi-insert
Run Code Online (Sandbox Code Playgroud)
但是 PROMPT_COMMAND 值仅在发出提示之前执行,因此我不会看到模式更改。
第 …
如果我把
"\M-p": previous-history
Run Code Online (Sandbox Code Playgroud)
进入我的 .inputrc 并启动一个终端(urxvt 或 xterm),按 Alt-p 打印一个“:”字符。随后的点击产生 ^[p 像这样:
:^[p^[p^[p^[p^[p
Run Code Online (Sandbox Code Playgroud)
我希望 Alt-p 能够像 Control-p 那样给我历史记录中的上一个命令。我已经通过将以前的历史记录绑定到 Control-t 来验证 .inputrc 正在被读取,并且有效。
"\C-t": previous-history
Run Code Online (Sandbox Code Playgroud)
我也试过
Meta-p: previous-history
Run Code Online (Sandbox Code Playgroud)
没有成功。
其他人遇到过这个问题吗?难道我做错了什么?我在 Debian sid 上使用 xmonad。
我发现这个https://superuser.com/a/488158/458103可以使ctrl+arrow
光标向前和向后移动。现在如何使shift+arrow
选择当前命令字呢?