vim
tem um recurso muito bom que ele utiliza em seus caminhos quando eles são um pouco longos:
Abrevia o caminho para o documento na guia na parte superior. Existe uma maneira de fazer algo semelhante a isso, para que meu prompt do bash não seja assim:
rfkrocktk@work-laptop ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $
rfkrocktk@work-laptop ~/D/P/W/m/src/main/java/com/tkassembled/ $
? Idealmente, usando algum limite para o comprimento máximo do prompt?Respostas:
Tente o seguinte :
ou, bash puro:
então
produz (observe o
~
para${HOME}
):Melhorei minha resposta graças ao @ enzotib's
fonte
$PWD
→~
. Atualmente, seHOME
é/home/ed
ePWD
é/home/edwina
, você entra~wina
na versão Perl e~/ina
na versão shell. (2) Seu código de shell engasga se o diretório atual contiver algum caractere curinga (ou seja, expansão do nome do caminho); por exemplo,PWD
=/abc/*/def
. Você pode corrigir isso adicionandoset -o noglob
ouset -f
. ... (continua)$HOME
(que está dentro de aspas duplas) e$PWD
é bom o suficiente. No comando shell, nos últimos três referências de variáveis shell são bons, mas os três primeiros podem ser"${PWD#$HOME}"
,"$PWD"
e"$p"
. (4) Veja também a resposta de mbentley e meus comentários a respeito.Semelhante à resposta @nicerobot, mas um pouco mais curta:
Isso mostrará o seguinte exemplo de saída:
fonte
Eu gosto
PROMPT_DIRTRIM
de bash ...alterará seu prompt de exemplo para ...
Funciona para mim.
fonte
Adicionando à resposta do enzotib , o seguinte trecho será:
/Path/To/Your/Home/
em~/
(para que um caminho seja em~/a/b/c
vez de/P/T/Y/H/a/b/c
)Use a primeira letra de um 'arquivo de ponto' em vez de mostrar apenas o ponto (
/a/./c/d
se tornará/a/.b/c/d
):Certifique-se de usar aspas simples ou o bash o expandirá prematuramente.
fonte
O formato para uso em seu
PS1
é\W
(consulte aPROMPTING
seção nabash
página de manual).E você pode querer ler as outras opções lá, pode fazer algumas coisas legais com sua linha de comando.
fonte
Adoro a saída do exemplo do nicerobot, mas encontrei um problema. Eu tenho um diretório que tem um hífen
A-E
, e estava vendo-E
como argumentoprintf
quando era meu diretório de trabalho atual. Para corrigir isso, adicionei--
as últimasprintf
e adicionei aspas ao redor da saída, caso não exista nada para a saída:fonte
-
o segundo caractere. Embora seja verdade que essa--
é a solução geral para a questão dos argumentos iniciados por-
, um método melhorprintf
é dizerprintf "%s" "${q:1}"
, pois isso também protege contra argumentos que contenham%
. (Por exemplo, tentePWD
=/home/mbentley/Documents/Projects/Work/maventest/src/main/java/com/abc%def
. (2) Veja também meus comentários sobre a resposta de nicerobot.