Terminal: caminho aberto com o clique do meio / menu de contexto?

3

Passo muito tempo copiando os caminhos de saída do grep e os colando depois de um comando que abre um editor visual.

Existe uma maneira de programar um emulador de terminal para abrir o texto selecionado em um editor específico? Talvez um clique do meio no texto selecionado ou uma adição ao menu de contexto?

Isso é talvez uma característica de algum terminal que eu não conheço?

    
por LeeGee 15.04.2015 / 12:23

2 respostas

2

Crie um script:

nano ~/<your_script_folder>/open_selection

Inclua o seguinte código:

#!/bin/bash
selected_text=$(xclip -o)
if [[ "$selected_text" == ~* ]]; then
    file_name=$(readlink -f ${selected_text/\~/$HOME})
else
    file_name="$selected_text"
fi

notify-send "Open selection" "$file_name"
xdg-open "$file_name"

* Você pode substituir xdg-open por outro comando de sua escolha para abrir a seleção com este programa.

Torne o script executável

chmod +x ~/<your_script_folder>/open_selection

Crie um atalho para este script.

Em seguida, selecione apenas um nome de arquivo no seu terminal e use seu atalho. Um desvio através da área de transferência não é necessário.

    
por A.B. 29.04.2015 / 12:34
1

O que você poderia fazer como alternativa é analisar a saída de grep como um argumento para o editor de texto de sua preferência. Por exemplo

COMMAND | grep -i filename | xargs nano

Neste caso, o nano é apenas um marcador de posição. Você pode usar qualquer editor de texto que quiser. O que você pode querer fazer é adicionar um nohup na frente do nome do editor de texto, para que você possa continuar usando o terminal.

Algum tempo atrás eu respondi a uma digite a descrição do link aqui que pediu para "abrir no terminal". A solução que estou usando é vincular um atalho ao script. Você poderia fazer algo semelhante - vincular um atalho a um script simples abaixo:

#!/bin/bash

FILENAME=$(zenity --entry --text="Enter path to file")

if [ $? -eq 0 ] 
   nano $FILENAME
fi

Isso basicamente deve trazer um pop-up pedindo o caminho para o arquivo. O caminho pode ser copiado da linha de comando com Ctrl Desloc C , ou você pode baixar xclip e enviar a saída para xclip -sel clip ( que irá colocar o seu caminho de texto na área de transferência)

    
por Sergiy Kolodyazhnyy 29.04.2015 / 18:46