取消注释先前注释的行的命令行快捷方式是什么?

取消注释先前注释的行的命令行快捷方式是什么?

Alt++只能注释掉,在后续调用时只需添加多个注释字符(哈希) Shift3而不是打开/关闭注释。如何取消注释先前注释的行或切换注释?

答案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_LINEREADLINE_POINT正是用于这种技巧。使用Alt+时#,根据#命令行中是否存在前导,该函数会删除或添加它,并相应地移动插入点。

答案2

使用比终端内置更强大的代码编辑器,例如凯特.CtrlShiftD删除注释(CtrlD注释该行)。请参阅捷径世界了解更多信息。

众多代码编辑器其功能远远超出了终端本身的功能;一些可以作为终端编辑器安装。

相关内容