mirekphd Asked: 2023-12-26 20:08:53 +0800 CST2023-12-26 20:08:53 +0800 CST 2023-12-26 20:08:53 +0800 CST 取消注释先前注释行的命令行快捷方式是什么? 772 Alt+ Shift+3只能注释掉,在后续调用中只需添加多个注释字符(散列),而不是打开/关闭注释。如何取消注释先前注释的行或切换注释? command-line 2 个回答 Voted Best Answer Kamil Maciorowski 2023-12-27T03:04:43+08:002023-12-27T03:04:43+08:00 问题被标记为bash。这个答案是专门针对 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在+上#,根据#命令行中是否存在前导,该函数删除或添加它,并相应地移动插入点。 DrMoishe Pippik 2023-12-26T23:14:40+08:002023-12-26T23:14:40+08:00 使用比终端内置的代码编辑器更强大的代码编辑器,例如Kate。CtrlShiftD删除注释(CtrlD注释该行)。有关更多信息,请参阅ShortcutsWorld 。 有许多代码编辑器,其功能远远超出了终端本身;有些可以作为终端编辑器安装。
问题被标记为bash。这个答案是专门针对 Bash 的。在 GNU Bash 5.2.15 中测试。
定义以下 shell 函数:
并将其绑定到Alt+ #:
(如果您的键盘布局#实际上是Shift+3那么绑定将重新定义您提到的Alt+ Shift+ 3。)
READLINE_LINE
正是READLINE_POINT
为了这种技巧。Alt在+上#,根据#
命令行中是否存在前导,该函数删除或添加它,并相应地移动插入点。使用比终端内置的代码编辑器更强大的代码编辑器,例如Kate。CtrlShiftD删除注释(CtrlD注释该行)。有关更多信息,请参阅ShortcutsWorld 。
有许多代码编辑器,其功能远远超出了终端本身;有些可以作为终端编辑器安装。