Alt++只能注释掉,在后续调用时只需添加多个注释字符(哈希) Shift,3而不是打开/关闭注释。如何取消注释先前注释的行或切换注释?
答案1
问题已加标签狂欢。此答案专门针对 Bash。在 GNU Bash 5.2.15 中测试。
定义以下 shell 函数:
function _toggle_comment {
case "$READLINE_LINE" in
\#* )
((READLINE_POINT--))
READLINE_LINE="${READLINE_LINE###}"
;;
* )
READLINE_LINE="#$READLINE_LINE"
((READLINE_POINT++))
;;
esac
}
并将其绑定到Alt+ #:
bind -x '"\e#":_toggle_comment'
(如果您的键盘布局#实际上是Shift+ 3,那么绑定将重新定义您提到的Alt+ Shift+ 3。)
READLINE_LINE
和READLINE_POINT
正是用于这种技巧。使用Alt+时#,根据#
命令行中是否存在前导,该函数会删除或添加它,并相应地移动插入点。