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 / unix / Perguntas / 731262
Accepted
Daniel Walker
Daniel Walker
Asked: 2023-01-11 06:40:35 +0800 CST2023-01-11 06:40:35 +0800 CST 2023-01-11 06:40:35 +0800 CST

Ctrl-y não está restaurando a linha no zsh

  • 772

Eu tenho o zsh 5.8.1 rodando no Ubuntu 22.04. Quando tenho algum texto no prompt e digito Ctrl+ u, ele limpa a linha conforme o esperado. No entanto, quando eu digito Ctrl+ y, ele exibe apenas

$ ^Y

O que poderia estar fazendo com que o buffer readline não fosse colado?

Aqui está o meu .zshrc:

export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME=""

plugins=(
    colored-man-pages
    colorize
    git
    zsh-autosuggestions
    zsh-interactive-cd
    vi-mode
)

ZSH_AUTOSUGGEST_STRATEGY=(history completion)

source $ZSH/oh-my-zsh.sh
unalias ls
unalias ll
unalias lsa

unalias gst
alias gs='git status'
alias gcob='git checkout -b'

bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word
bindkey "^[." insert-last-word

_sig_array=($(kill -l))

_return_status() {
    ret=$?
    if [ $ret -ne 0 ]; then
        if [ $ret -le 128 ]; then
            echo $ret
        else
            sig=$(( $ret - 128 ))
            desc=$_sig_array[sig]
            if [ "$desc" != INT -a "$desc" != TSTP ]; then
                echo SIG$desc
            fi
        fi
    fi
}

_return_status_formatted() {
    out=$(_return_status)
    if [ -n "$out" ]; then
        echo "%F{red}[$out]%f "
    fi
}

_current_branch_formatted() {
    out=$(current_branch)
    if [ -n "$out" ]; then
        if [ -n "$(git status -s | grep -v '^\?')" ]; then
            color=magenta
        else
            color=cyan
        fi
        echo "%F{$color}(git:$out)%f "
    fi
}

export PS1='%F{blue}%n%f@%F{green}%m%f:%F{red}%~%f $ $(_return_status_formatted)$(_current_branch_formatted)'
zsh
  • 1 1 respostas
  • 26 Views

1 respostas

  • Voted
  1. Best Answer
    Stéphane Chazelas
    2023-01-11T07:44:33+08:002023-01-11T07:44:33+08:00

    zshusará vicombinações de teclas por padrão se a variável $EDITORou $VISUALcontiver vi(então assume que você prefere vi).

    ^Ypara colar é uma ligação de chave emacs (o viequivalente seria p/ P).

    Adicione um:

    bindkey -e
    

    para o seu ~/.zshrcpara indicar que você deseja combinações de teclas do emacs, independentemente de sua escolha de editor (o mesmo que em tcsh). Ou set -o emacs(o mesmo que em ksh).


    Algumas outras notas sobre o seu ~/.zshrc:

    bindkey "^[." insert-last-word
    

    já está lá por padrão no emacsmodo, então você não precisa disso.

    Já existe um $signalsarray embutido (cuidado, ele começa em EXIT== 0, então você precisa $signals[signum+1]pegar o nome do número).

    Comportamento para grep -v '^\?'não especificado. Use grep -v '^?'para remover as linhas que começam com ?, ou grep -v '^\\?'para remover as que começam com \?.

    É um bom hábito declarar variáveis local​​para suas funções se elas não forem globais.

    Veja também [[ $desc = (INT|TSTP) ]] || echo SIG$desc.

    Geralmente, como em outros shells, o -aoperador do [builtin é obsoleto.

    Aqui, você pode usar ((...))consistentemente:

    _return_status() {
        local sig desc ret="$?"
        if (( ret != 0 )); then
            if (( ret <= 128 )); then
                echo $ret
            else
                (( sig = ret - 128 ))
                desc=$signals[sig+1]
                if [[ $desc != (INT|TSTP) ]] echo SIG$desc
            fi
        fi
    }
    
    • 2

relate perguntas

  • Listar arquivos que não possuem outro arquivo com sufixo

  • Em que circunstâncias o executável encontrado primeiro no caminho não será usado

  • Symlinking para todos os arquivos de ponto e diretórios

  • Como incrementar uma variável nomeada dinamicamente em `zsh`

  • Por que não consigo definir uma variável somente leitura chamada path no zsh?

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

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