AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / 问题

Perguntas[zsh](computer)

Martin Hope
Reyhn
Asked: 2025-03-17 18:04:43 +0800 CST

zsh: Vincular alt+enter à continuação de linha

  • 8

Como mapeio a combinação de teclas alt + enterpara fazer uma continuação de linha (sem executar o comando)?

Quero o seguinte resultado final:

> echo \
"hello"

Depois de digitar o comando echo, quero pressionar alt+entere fazer com que o shell insira a barra invertida e uma nova linha, para que eu possa continuar meu comando na próxima linha.

Descobri que isso bindkey "^[^M" self-insert-unmetainsere uma nova linha, mas não a barra invertida...

zsh
  • 1 respostas
  • 80 Views
Martin Hope
Hubert Kauker
Asked: 2025-01-28 02:44:52 +0800 CST

zsh alternar while-loop saída inesperada

  • 8

Estou online ZSH_VERSION=5.9e tenho este script que funciona como esperado:

integer count=3
while true ; do
    echo $count
    (( count-- ))
    if (( count == 0 )) break
done
echo Finally: $count
echo ok

Ele faz a contagem regressiva de 3até 1e então diz: Finally: 0e ok.

Mas vamos substituir o do ... donebloco por um { ... }como este:

integer count=3
while true ; {
    echo $count
    (( count-- ))
    if [[ $count == 0 ]] break
}
echo Finally: $count
echo ok

Não há absolutamente nenhuma mensagem de erro, mas a saída é confusa:

3
Finally: 2
ok
2
Finally: 1
ok
1

Não tenho a mínima ideia do porquê disso, exceto que o analisador tem um problema. Ou estou usando a sintaxe alternativa while-loop errada? Isso acontece quando estou em um shell recém-iniciado.

zsh
  • 2 respostas
  • 64 Views
Martin Hope
Cyberwiz
Asked: 2024-05-16 17:18:08 +0800 CST

Como faço para o zsh preencher automaticamente ".." em "../"

  • 5

Por exemplo, cd ..<tab>não preenche automaticamente emcd ../

Estou no macOS e tentei executar com um .zshrc completamente vazio.

Também tentei adicionar um compdeffor específico .., mas também não funcionou.

Provavelmente já existe uma resposta para esta pergunta em algum lugar, mas é difícil procurá-la.

zsh
  • 1 respostas
  • 45 Views
Martin Hope
ekr990011
Asked: 2024-03-28 10:48:36 +0800 CST

OhMyZsh faz com que cd seja enviado para a pilha dirs. Como posso revertê-lo ao estado original?

  • 6

Estou usando oh-my-zsh. Com ele habilitado:

source $ZSH/oh-my-zsh.sh

o cdcomando age como pushd em tudo:

~ 
➜ dirsv
0   ~

~ 
➜ cd Projects 

~/Projects 
➜ dirsv
0   ~/Projects
1   ~

~/Projects 
➜ cd Test 

~/Projects/Test 
➜ dirsv
0   ~/Projects/Test
1   ~/Projects
2   ~

~/Projects/Test 
➜ cd ~

~ 
➜ dirsv
0   ~
1   ~/Projects/Test
2   ~/Projects

dirsv é meu próprio alias: alias dirsv="dirs -v"

A parte interessante do meu .zshrc é que o bloco plugins() está comentado. Se eu descomentar esses plug-ins, mas comentar source $ZSH/oh-my-zsh.sh , a pilha de diretórios funcionará conforme o esperado novamente.

Tentei depurar, mas fiquei sem ideias. Obrigado pelo seu tempo.

.zshrc com pushd indesejado do comando cd normal:

# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH
export PATH=$HOME/.local/bin:$PATH

export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt

# Path to doom emacs
export PATH=$HOME/.emacs.d/bin/:$PATH

# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"

# SSH key management for servers
# Start the ssh-agent if it is not already running
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
    eval "$(ssh-agent -s)"
fi

# Add keys to the ssh-agent if it doesn't have them already
if [[ "$(ssh-add -l)" == "The agent has no identities." ]]; then
    ssh-add ~/.ssh/id_ed25519 > /dev/null 2>&1
fi

# Dirs/pushd/popd aliases
alias dirsv="dirs -v"
alias dirsp="dirs -p"
alias dirsc="dirs -c"

# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
# ZSH_THEME="robbyrussell"

# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in $ZSH/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )

# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"

# Uncomment one of the following lines to change the auto-update behavior
# zstyle ':omz:update' mode disabled  # disable automatic updates
# zstyle ':omz:update' mode auto      # update automatically without asking
# zstyle ':omz:update' mode reminder  # just remind me to update when it's time

# Uncomment the following line to change how often to auto-update (in days).
# zstyle ':omz:update' frequency 13

# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS="true"

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder

# Which plugins would you like to load?
# Standard plugins can be found in $ZSH/plugins/
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
# fast-syntax-highlighting 
# plugins=(git aliases zsh-vi-mode asdf zsh-autosuggestions zsh-syntax-highlighting zsh-autocomplete)
# possibly add zsh-vi-mode

# Additional configuration for autosuggestions
# ZSH_AUTOSUGGEST_STRATEGY=(history completion)
# ZSH_AUTOSUGGEST_USE_ASYNC=true

# Accept autosuggestion one word at a time
bindkey -M vicmd '^L' vi-forward-word
bindkey -M viins '^L' vi-forward-word
#

source $ZSH/oh-my-zsh.sh

# User configuration

# export MANPATH="/usr/local/man:$MANPATH"

# You may need to manually set your language environment
export LANG=en_US.UTF-8


export NVIM_APPNAME="nvim-Kickstart"
#vv() {
#  # Assumes all configs exist in directories named ~/.config/nvim-*
#  local config=$(fd --max-depth 1 --glob 'nvim-*' ~/.config | fzf --prompt="Neovim Configs > " --height=~50% --layout=reverse --border --exit-0)
 
#  # If I exit fzf without selecting a config, don't open Neovim
#  [[ -z $config ]] && echo "No config selected" && return
 
#  # Open Neovim with the selected config
#  NVIM_APPNAME=$(basename $config) nvim
#}

# export PATH=$PATH:$HOME/CompiledPrograms/nvim-linux64/bin/
# alias nvim="~/CompiledPrograms/nvim-linux64/bin/nvim"

# Preferred editor for local and remote sessions
if [[ -n $SSH_CONNECTION ]]; then
  export EDITOR='nvim'
else
  export EDITOR='nvim'
fi

# Compilation flags
# export ARCHFLAGS="-arch x86_64"

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# alias ranger=". ranger"

fpath+=${ZDOTDIR:-~}/.zsh_functions

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

eval "$(starship init zsh)"

# . ~/.asdf/plugins/golang/set-env.zsh

export ASDF_GOLANG_MOD_VERSION_ENABLED=true
export PATH=$PATH:/home/doom/.go/bin
export GOPATH=/home/doom/go
export PATH=$PATH:/home/doom/go/bin
# export PATH=$PATH:/home/doom/Programs/zig/zig-linux-x86_64-0.12.0-dev.1344+37295696e/zig
# alias zig=/home/doom/Programs/zig/zig-linux-x86_64-0.12.0-dev.1344+37295696e/zig

# if command -v zoxide > /dev/null; then
#   eval "$(zoxide init zsh)"
# fi

# Source the Lazyman shell initialization for aliases and nvims selector
# shellcheck source=.config/nvim-Lazyman/.lazymanrc
[ -f ~/.config/nvim-Lazyman/.lazymanrc ] && source ~/.config/nvim-Lazyman/.lazymanrc
# Source the Lazyman .nvimsbind for nvims key binding
# shellcheck source=.config/nvim-Lazyman/.nvimsbind
[ -f ~/.config/nvim-Lazyman/.nvimsbind ] && source ~/.config/nvim-Lazyman/.nvimsbind
# Luarocks bin path
[ -d ${HOME}/.luarocks/bin ] && {
  export PATH="${HOME}/.luarocks/bin${PATH:+:${PATH}}"
}
# Bob neovim version manager path
[ -d ${HOME}/.local/share/bob/nvim-bin ] && {
  export PATH="${HOME}/.local/share/bob/nvim-bin${PATH:+:${PATH}}"
}

# Zoxide
# eval "$(zoxide init --cmd cd zsh)"

# Atuin command history manager
# eval "$(atuin init zsh)"

# Alias to start kmonad and store its PID in an environment variable
alias km='kmonad /home/doom/.config/kmonad/first.kbd & export KMONAD_PID=$!'

# Alias to kill kmonad using the stored PID
alias kmd='kill -SIGINT $KMONAD_PID'

[ -f "/home/doom/.ghcup/env" ] && . "/home/doom/.ghcup/env" # ghcup-env
zsh
  • 1 respostas
  • 31 Views
Martin Hope
Pelican Cyber
Asked: 2024-02-27 10:18:48 +0800 CST

Como iniciar o tmux como padrão quando os terminais abertos excluem o terminal no Dolphin

  • 7

Quero definir o tmux como padrão ao abrir terminais (por exemplo, Yakuake, Konsole), mas excluir o terminal no gerenciador de arquivos Dolphin.

Coloquei o seguinte trecho no~/.zshrc

if [[ -x "$(command -v tmux)" ]] && [[ -n "${DISPLAY}" ]] && [[ -z "${TMUX}" ]]; then
    windowname=$(xdotool getactivewindow getwindowname)
    if [[ ${windowname} =~ ".*Yakuake$" ]] || [[ "${windowname}" =~ ".*Konsole$" ]]; then
        exec tmux
    fi
fi

Mas o comando xdotool getactivewindowparece sempre obter a janela ativa errada. Então escrevi este trecho ~/.zshrcpara teste.

xdotool getactivewindow && xdotool getactivewindow getwindowname
sleep 3
xdotool getactivewindow && xdotool getactivewindow getwindowname

Mas obtenho o resultado abaixo quando o Yakuake é aberto por atalhos ctrl+ alt+ Y. Parece que xdotoolo nome da janela ativa está errado, qual a última janela ativada (no exemplo é sublimetext), e deveria ser Yakuake.

94371843
~/.zshrc - Sublime Text
65011722
~ : sleep — Yakuake

Quando Yakuake ou Konsole ativados pelo plasma KDE ou linha de comando apresentam o mesmo fenômeno.

Como posso iniciar o tmux como padrão quando os terminais abertos excluem o terminal no Dolphin?


Atualização : Graças à resposta de Kamil Maciorowski , tudo funciona perfeitamente depois de adicionar este trecho no meu arquivo ~/.zshrc.

if [[ -x "$(command -v tmux)" ]] && [[ -n "${DISPLAY}" ]] && [[ -z "${TMUX}" ]]; then
    if [[ ! "$(readlink -f /proc/${PPID}/exe)" =~ "dolphin" ]]; then
        exec tmux
    fi
fi
zsh
  • 1 respostas
  • 33 Views
Martin Hope
Ferroao
Asked: 2023-09-14 06:43:29 +0800 CST

Como alterar o separador de pasta e o caractere ~ na linha de comando p10k

  • 5

No powerlevel10k (zsh) o caminho para o separador de ramificação pode ser um triângulo ou semicírculo (parte inferior da imagem); no powerline (parte superior da imagem), os "triângulos" também podem separar pasta/subpasta em vez de /, isso é possível em p10k?

Estou usando o Meslo LG S , pois é apropriado para ícones p10k.

insira a descrição da imagem aqui

Imagem externa do prompt p10k com /

EDIT: Para substituir ~por um ícone inicial, adicione isto a.p10k.zsh

  typeset -g POWERLEVEL9K_HOME_FOLDER_ABBREVIATION=$'\uF015'
  typeset -g POWERLEVEL9K_DIR_CLASSES=()
zsh
  • 1 respostas
  • 32 Views
Martin Hope
milkpirate
Asked: 2023-09-05 22:45:15 +0800 CST

gnome-terminal não exibe caracteres UTF-8 corretamente (zsh)

  • 5

Instalei o zsh v5.8.1 no Ubuntu 22.04.3. E meu terminal gnome se parece com isso:

insira a descrição da imagem aqui

os símbolos não parecem estar certos. O que está errado?

zsh
  • 1 respostas
  • 13 Views
Martin Hope
Jim Worrall
Asked: 2023-08-10 08:09:56 +0800 CST

zsh: stdout e stderr ambos para console E log

  • 6

Estou convertendo um script de bash para zsh e estou me debatendo há dias com a saída. Eu quero que o stdout e o stderr vão para o console e para um arquivo de log. Eu tentei de tudo que posso encontrar online, mas sem alegria. Eu li a seção de redirecionamento do manual do zsh, mas não encontrei nada que ajudasse, embora deva admitir que não está claro para mim.

Aqui estão as coisas que tentei perto do início do script, experimentalmente, e seus resultados:

exec 2>&1 | tee -i test.log     # everything in console, log created but empty
exec 2>&1 | tee -i > test.log   # everything in console, log created but empty
exec 1>>$LOG; exec 2>&1         # everything in log, none in console
exec 2>&1; exec 1>>$LOG         # console gets errors only; log stdout only
exec &> >(tee "$LOG")           # works in bash, error in zsh
exec > >(tee -i ${LOG?}) 2>&1   # error
exec |& tee $LOG                # error
exec > >(tee $LOG) 2>&1         # error

Eu também tentei entender os multios da opção zsh, mas não consegui entender muito. Deveria estar ativado por padrão, mas não o encontro na lista de opções quando executo setopt. Nem quando corro setopt multios. Quando corro unsetopt multios, vejo a opção nomultios, mas isso não parece ajudar

Entendo que perguntas semelhantes foram feitas e respondidas, mas as respostas estão principalmente na lista acima e não funcionaram para mim.

Não acho que seja relevante, mas também configurei um log de depuração que obtém o descritor de arquivo 3. É apenas para linhas de saída de depuração que terminam com >&3.

Observação para quem procura essa solução: os testes executivos acima foram feitos com um shebang confuso e os resultados com isso corrigido foram um pouco diferentes. Além da solução de Gairfowl, abaixo, também funcionou:

exec > >(tee $LOG) 2>&1
zsh
  • 1 respostas
  • 54 Views
Martin Hope
Niing
Asked: 2023-03-27 09:49:55 +0800 CST

Como passar a string zsh sem escapar do sinal #?

  • 5

Como título. Sou usuário do zsh e sempre leio postagens dizendo algo assim:

nix profile install nixpkgs#hello

mas preciso adicionar aspas ao último argumento para evitar esse erro:

zsh: no matches found: nixpkgs#hello

É possível usar apenas o comando acima em vez daquele com 'nixpkgs#hello'?

zsh
  • 1 respostas
  • 20 Views
Martin Hope
Fabiano Soriani
Asked: 2022-12-14 20:24:44 +0800 CST

Configurar o Visual Studio Code para compartilhar o mesmo histórico de terminal do zsh?

  • 7

Eu uso o terminal integrado do VScode + terminal (zsh) no Mac. Tenho a impressão de que eles costumavam compartilhar a mesma história, mas não mais.

Idealmente, um comando que eu digitar seria automaticamente anexado ao meu arquivo de histórico usual em /Users/<my-user>/.zsh_history.

Existe uma maneira simples de configurar meu terminal vscode para compartilhar o mesmo histórico do meu zsh?

zsh
  • 1 respostas
  • 63 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve