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 / 1455110
Accepted
Stonecraft
Stonecraft
Asked: 2019-07-02 17:31:17 +0800 CST2019-07-02 17:31:17 +0800 CST 2019-07-02 17:31:17 +0800 CST

Como configurar o terminal *NIX para funcionar de forma semelhante a um IDE?

  • 772

Eu gostaria de configurar algo em um shell para me dar uma experiência semelhante a IDE usando apenas o shell (sem X). O mais próximo que cheguei foi usando o tmux, com o vim em um painel e a linha de comando no outro. Dessa forma, do vim, posso .w !bashexecutar uma linha.

Mas isso não é satisfatório para mim porque o ambiente não persiste entre os comandos executados separadamente.

Se eu correr:

var1=FOO

e depois

echo $var1

cada um usando .w !bash, FOOnão será repetido.

O que eu realmente quero fazer é passar por um arquivo de texto em um painel e usar um atalho para enviar uma linha para o terminal no outro painel, como parte dessa sessão de terminal. Qual é a combinação certa de ferramentas para conseguir isso? Entendo que o emacs pode ser configurado para fazer algo assim com seu próprio emulador de terminal, mas gostaria de uma solução que funcionasse com as ferramentas de estoque (como em um instalador).

Edit: tmux select-copy-paste não é tão ruim, mas ainda um pouco estranho.

linux terminal
  • 1 1 respostas
  • 188 Views

1 respostas

  • Voted
  1. Best Answer
    Kamil Maciorowski
    2019-07-05T15:17:23+08:002019-07-05T15:17:23+08:00

    Uma solução de protótipo com sh, vime tmux, prova de conceito rápida e suja.

    Your .w !bashexecuta bashe envia a linha atual para seu stdin. Vamos substituir bashpor um script que injeta uma linha de seu stdin em um painel diferente em tmux.

    Este é o roteiro básico:

    #!/bin/sh
    pane="$(tmux list-panes -F '#{pane_active} #D' | awk '$1==0 {print $2;exit}')"
    IFS= read -r line
    tmux send-keys -l -t "$pane" "$line"
    tmux send-keys -t "$pane" 'C-j'
    

    O procedimento, breve explicação:

    1. Identifique um painel que não está ativo.
    2. Leia uma linha de stdin.
    3. Envie a linha para o painel como se tivesse sido digitada.
    4. Enviar Enterpara o painel.

    Salve-o como trun, torne-o executável e acessível via $PATH. Agora, se você tiver dois painéis tmuxe executar trunem um deles, digitar uma linha e clicar Enterem , a linha será injetada no outro painel.

    Em vimvez de .w !bashinvocar .w !trun, deve funcionar. Vincule isso a uma chave para facilitar o acesso.

    Notas:

    • O script não verifica se há exatamente dois painéis.
    • O script não se importa com o que é executado no painel de destino; ele apenas envia as chaves.
    • 2

relate perguntas

  • Como eu faria minha máquina Linux parecer que está executando o Windows?

  • Existe um equivalente a cd - para cp ou mv?

  • execute o contêiner do docker como root

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • Como alterar permanentemente Ctrl + C para Ctrl + K no CentOS 7?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • 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

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 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
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +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
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +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