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


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

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

me@home> #mysuperlongcommand with some arguments
me@home> thecommandIhavetorunfirst #and then: then up up
me@home> #mysuperlongcommand with some arguments #I just need to uncomment it!

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

3 93

3 ответа:

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

Я использую

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

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

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