Я совсем недавно перешел с 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
.
command-line
zsh
Рольф
источник
источник
set -k
если это всего лишь один раз. Но я бы использовалsetopt
строчку из этого ответа в своем zshrcя использую
Из руководства zsh:
Вот так это выглядит:
Кроме того, если вы установите
INTERACTIVE_COMMENTS
параметр (setopt INTERACTIVE_COMMENTS
), вы сможете использовать комментарии в интерактивных оболочках, как вы привыкли.источник
read -z
иprint -z
, поэтому с помощью некоторых сценариев и временных файлов вы могли. Но тогда пользовательский виджет zle для сохранения командной строки во временный файл может быть проще, а общая история будет еще проще.Я тоже часто делаю это. Что я делаю, так это вырезаю длинную команду, выполняю команду, которая должна быть первой, а затем вставляю длинную команду обратно. Это просто: CTRL + U вырезает текущую команду в буфер, CTRL + Y вставляет ее. Работает в zsh и bash.
источник
В дополнение к
setopt interactivecomments
предложению @Lajnold вы также можете добавить что-то вроде следующего, чтобы предотвратить запись определенных комментариев в историю (с /superuser/352788/how-to-prevent-a- command-in-the-zshell-from-being-saved-into-history ):Это отменяет встроенную функцию ZSH zshaddhistory ():
Для справки, это zshaddhistory () по умолчанию http://zsh.sourceforge.net/Doc/Release/Functions.html
источник