Mudei recentemente do Bash para o Zsh no Ubuntu e estou muito feliz com isso. No entanto, há algo de que realmente sinto falta e não encontrei como conseguir o mesmo.
No Bash, sempre que eu estava digitando um comando longo e percebia que tinha que executar outra coisa antes, eu apenas tinha que comentar como o seguinte:
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!
No entanto, esta situação bastante recorrente não é tão fácil de endereço como com zsh
, dado #mysuperlongcommand
será executado como tal (e resultando em: zsh: command not found: #mysuperlongcommand
.
command-line
zsh
Rolf
fonte
fonte
set -k
se for apenas um. Mas eu usaria asetopt
linha desta resposta em meu zshrceu uso
Do manual zsh:
Então fica assim:
Além disso, se você definir a
INTERACTIVE_COMMENTS
opção (setopt INTERACTIVE_COMMENTS
), poderá usar comentários em shells interativos como está acostumado.fonte
read -z
eprint -z
, portanto, com alguns scripts e arquivos temporários você pode. Mas um widget zle personalizado para salvar a linha de comando em um arquivo temporário pode ser mais simples e o histórico compartilhado será ainda mais simples.Eu também faço isso com frequência. O que eu faço é cortar o comando longo, executar o comando que precisa ser executado primeiro e depois colar o comando longo de volta. Isso é fácil: CTRL + U corta o comando atual em um buffer, CTRL + Y cola. Funciona em zsh e bash.
fonte
Além de
setopt interactivecomments
, sugerido por @Lajnold, você também pode querer adicionar algo como o seguinte para evitar que certos comentários sejam gravados no histórico (de /superuser/352788/how-to-prevent-a- command-in-the-zshell-from-being-saved-into-history ):Isso substitui a função interna ZSH zshaddhistory ():
Para referência, este é o zshaddhistory () padrão http://zsh.sourceforge.net/Doc/Release/Functions.html
fonte