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 / 789055
Accepted
treuss
treuss
Asked: 2025-01-04 06:17:54 +0800 CST2025-01-04 06:17:54 +0800 CST 2025-01-04 06:17:54 +0800 CST

Como evitar que o xfce4-terminal passe shift-pgup/pgdown para o vim

  • 772

Após uma atualização recente do Ubuntu, o comportamento de usar o vim dentro de um terminal xfce4 mudou. As teclas de atalho "Shift+Page Up" e "Shift+Page Down" são mapeadas no terminal xfce4 para "Rolar uma página para cima" e "Rolar uma página para baixo" respectivamente, ou seja, elas emulam o comportamento que os terminais UNIX tiveram por décadas.

Infelizmente, quando inicio o vim em um terminal, parece que essas teclas não são mais manipuladas, pois ele não rola o terminal de volta para o conteúdo que estava antes de iniciar o vim. Usando o xterm em vez do xfce4-terminal, tudo funciona como esperado. Existe alguma configuração que me permita restaurar o comportamento antigo do UNIX e não fazer o terminal agir de forma diferente, dependendo do que está sendo executado no shell?

xfce4-terminal é 1.1.3, vim é 9.1.

vim
  • 2 2 respostas
  • 23 Views

2 respostas

  • Voted
  1. Best Answer
    egmont
    2025-01-04T19:33:32+08:002025-01-04T19:33:32+08:00

    Os terminais têm duas telas: a tela normal e a tela alternativa .

    A tela normal é onde você normalmente interage com o shell, executa utilitários que não são de tela cheia. Isso tem um buffer de scrollback.

    A tela alternativa é para onde os utilitários de tela cheia (por exemplo, editores de texto) normalmente, mas não necessariamente, alternam. A tela alternativa não tem um buffer de scrollback.

    Uma maneira de saber que você está na tela alternativa é que, depois que você sai do seu aplicativo, o conteúdo anterior do terminal é restaurado. Isso não pode ser feito se o aplicativo permanecer na tela normal.

    O VTE, o widget de emulação de terminal por trás do Xfce Terminal, tem o mesmo comportamento há pelo menos uma década, e esse comportamento não mudou recentemente: se estiver na tela normal, as teclas rolarão o buffer; se estiver na tela alternativa, o aplicativo em execução dentro dela receberá os eventos de pressionamento de tecla para fazer o que quiser.

    É possível, embora eu ache extremamente improvável, que o Xfce Terminal tente de alguma forma sequestrar esse pressionamento de tecla e fazer algo inteligente, e essa lógica mudou recentemente. Acho muito mais provável que a configuração do seu Vim tenha mudado: agora ele muda para a tela alternativa, enquanto você preferiria que não mudasse. Verifique se o seu Vim realmente muda para a tela alternativa (a tela anterior do terminal é restaurada quando você sai) e desabilite isso na configuração do seu Vim se for isso que você está procurando. Há muitas correspondências de pesquisa na web para "Vim" "tela normal" "tela alternativa" ou palavras-chave nesse sentido, eu acharia inútil tentar repetir a solução aqui.


    (Como observação lateral, deixe-me mencionar que pode haver pequenas diferenças entre os emuladores de terminal. Por exemplo, o Xfce Terminal (VTE), enquanto estiver na tela alternativa, não lhe dá acesso ao buffer de rolagem da tela normal. Correspondentemente, a barra de rolagem ocupa toda a altura do seu slot, como se não houvesse nada para rolar. Ao contrário disso, o Xterm permite que você role de volta para a rolagem da tela normal enquanto estiver na tela alternativa. Ele não permite que você faça isso usando as teclas de atalho mencionadas, pois elas são enviadas para o aplicativo (assim como no VTE), mas permite que você faça isso arrastando a barra de rolagem com o mouse.)

    • 0
  2. Gene
    2025-01-07T03:55:20+08:002025-01-07T03:55:20+08:00

    Eu me deparo com essa situação com frequência: executo um comando e ele me diz muitas "coisas".

    Em vez de tentar editar naquele terminal, eu simplesmente abro um novo e edito nele.

    Uma maneira é a partir de um menu. Posso abri-lo em uma variedade de locais/tamanhos. Se estiver em um local "estranho", executo um script local que chamo de 'kt' e o vinculo a gt e xt.

    
    #!/usr/bin/perl
    #
    # SCCS ID    : @(#) Not in SCCS
    #  xt or kt 
    #   --geometry=120x40-90+230
    #     120 columns
    #      40 lines
    #      90 pixels from right edge
    #     230 pixels down from top
    #    --zoom=1   Multiplies size by 1.2 (1-7 valid)
    #    --color-text=black  Valid colors Single word
    #    --color-bg=white  Valid colors Single word
    #    --font=10   Font point size
    #
    $XCOLS = $ENV{'XCOLS'};
    
    if ( $XCOLS > 0 ) {
    
      $XLINES = $ENV{'XLINES'};
      $arg = "--geometry=${XCOLS}x$XLINES";
    }
    
    foreach $a ( @ARGV ) {
    
      if ( -x $a ) {
    
        $ex = " --execute $a";
    
      } else {
    
        $arg = $arg . " $a";
      }
    }
    
    # The colors and font can be overidden from the command input.
    
    `/usr/bin/xfce4-terminal --color-text=black --color-bg=white --font 10 --hide-menubar  $arg $ex&`;
    
    • 0

relate perguntas

  • Centos7 - instalação mínima: echo $TERM me dá 'linux' e 'tput colors' dá '8'. Como mudar isso?

  • Como se livrar dos avisos "nano não encontrado" sem instalar o nano?

  • Excluir até o final da linha de comando no Vim

  • Como ignorar diretórios usando: e no vim?

  • Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _

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