重新映射终端中的 Return 键以防止在生产服务器上执行意外命令

重新映射终端中的 Return 键以防止在生产服务器上执行意外命令

我正在寻找一种方法来重新映射在终端中执行命令的密钥(我正在使用 bash),以防止在生产服务器上执行意外命令。返回应该被禁用。

我在 .inputrc 中尝试了以下操作

 RET : "Disabled"
 "\C-e" : "\r"

但这不起作用,因为 Return 被映射回禁用状态。

完整的.inputrc

#set editing-mode vi
TAB: menu-complete
RET: ""
"\C-e": "\C-j"
"\e[Z": menu-complete-backward
"\C-w": forward-word
"\C-g": forward-word
"\C-g": "gd\015"
"\C-o": "h\015"
#"\C-b": backward-word
"\C-3": backward-char


set show-all-if-ambiguous on
set completion-ignore-case on
set meta-flag on
set input-meta on
set convert-meta on
set output-meta on


#"\C-pp": "cd -\015"
"\M-p": "cd -\015"
"\M-o": "ls\015"

"\C-w": forward-word

$if mode=vi
    set keymap vi-command
    "gg": beginning-of-history
    "G": end-of-history
    set keymap vi-insert       #notice how the "jj" movement is
    "jj": vi-movement-mode     #after 'set keymap vi-insert'?
    "\C-w": backward-kill-word
    "\C-p": history-search-backward
$endif

答案1

RET : ""

然后从现在开始使用 Cj 输入命令。

答案2

要禁用 Return 键,您可以将以下内容添加到您的.inputrc

"\C-m":""

现在用于C-j执行命令。

为了避免C-j在增量搜索历史记录时点击两次(例如通过C-r),请另外添加以下行:

set isearch-terminators '\C-['

这使得Esc终止搜索C-j并且accept-line

请参阅man 3 readline了解更多详情。

相关内容