Комментарии в командной строке Zsh

Недавно я переключился с Bash на Zsh на Ubuntu, и я очень доволен этим. Однако есть что-то, что я действительно пропустил, и я не нашел, как добиться того же.

В Bash, когда я набирал длинную команду и заметил, что мне нужно было что-то запустить раньше, мне просто нужно было прокомментировать это, как в следующем:

[email protected]> #mysuperlongcommand with some arguments
[email protected]> thecommandIhavetorunfirst #and then: then up up
[email protected]> #mysuperlongcommand with some arguments #I just need to uncomment it!

Однако эту довольно повторяющуюся ситуацию не так просто решить, как с помощью zsh, поскольку #mysuperlongcommand будет выполняться как таковой (и в результате получается: zsh: command not found: #mysuperlongcommand.

Ответ 1

Только что начал пробовать zsh, я столкнулся с этой проблемой. Вы можете сделать setopt interactivecomments, чтобы активировать комментарии bash.

Ответ 2

Я использую

bindkey "^Q" push-input

Из руководства zsh:

Вставьте всю текущую многострочную конструкцию в стек буфера и вернитесь к подсказке верхнего уровня (PS1). Если текущая конструктор синтаксического анализа состоит только из одной строки, это точно так же, как и для push-line. В следующий раз, когда редактор запустится или выйдет с помощью get-line, конструкция будет выскользена из верхней части буфера и будет загружена в буфер редактирования.

Итак, это выглядит так:

> long command
Ctrl+Q => long command disappears to the stack
> forgotten command
long command reappears from stack
> long command

Кроме того, если вы установите параметр INTERACTIVE_COMMENTS (setopt INTERACTIVE_COMMENTS), вы сможете использовать комментарии в интерактивных оболочках, как вы привыкли.

Ответ 3

Я тоже часто это делаю. То, что я делаю, вырезано длинной командой, выполнить команду, которая должна идти первой, а затем снова вставить длинную команду. Это легко: CTRL + U разрезает текущую команду в буфер, CTRL + Y вставляет ее. Работает в zsh и bash.