No Powershell no Windows 10, como posso remover / não exibir a cadeia de nome de arquivo longo no meu prompt?

1

Como faço para remover toda ou parte da cadeia de nome de arquivo grande que aparece antes de cada prompt no PowerShell no Windows 10? Eu estou usando o Gitshell com o ConsoleZ e o posh git. Eu caço por todas as suas configurações e não encontrei nada.

Eu circulei em vermelho na imagem abaixo da parte que eu quero dizer.

    
por Caleb Jay 20.09.2016 / 17:43

2 respostas

2

Aqui estão as propriedades que controlam a exibição do prompt: Prompt do PowerShell . Basicamente, tudo depende de uma função chamada prompt, que é modificável pelo usuário.

function prompt { 'PS ' + ($pwd -split '\')[0]+' '+$(($pwd -split '\')[-1] -join '\') + '> ' }

O uso dessa função exibe apenas o diretório atual sem o caminho, mas parece que você precisará combiná-lo com as configurações de posh git definindo um perfil personalizado, como o exemplo em profile.example.ps1 no código do posh-git

EDIT: Usando esta informação (que não é uma solução por si só) komali_2 foi capaz de encontrar a seguinte solução:

DrNoone's answer provides a lot of great background to why this works, and I highly recommend reading through his material.

In order to achieve my question, do the following:

  1. Open up the profile.example.ps1 file in the posh-git install directory in a text editor.

  2. Edit it to look like below:

.

Push-Location (Split-Path -Path $MyInvocation.MyCommand.Definition -Parent)

# Load posh-git module from current directory
Import-Module .\posh-git

# If module is installed in a default location ($env:PSModulePath),
# use this instead (see about_Modules for more information):
# Import-Module posh-git


# Set up a simple prompt, adding the git prompt parts inside git repos
function global:prompt {
    $realLASTEXITCODE = $LASTEXITCODE

    Write-Host(($pwd -split '\')[0]+' '+$(($pwd -split '\')[-1] -join '\')) -nonewline

    Write-VcsStatus

    $global:LASTEXITCODE = $realLASTEXITCODE
    return "> "
}

Pop-Location

Start-SshAgent -Quiet

This will result in your prompt looking like:

enter image description here

    
por 20.09.2016 / 18:03
1

A resposta do DrNoone fornece uma ótima base para o porquê de isso funcionar, e eu recomendo muito ler o material dele.

Para alcançar minha pergunta, faça o seguinte:

  1. Abra o arquivo profile.example.ps1 no diretório de instalação posh-git em um editor de texto.

  2. Edite-o da seguinte forma:

.

Push-Location (Split-Path -Path $MyInvocation.MyCommand.Definition -Parent)

# Load posh-git module from current directory
Import-Module .\posh-git

# If module is installed in a default location ($env:PSModulePath),
# use this instead (see about_Modules for more information):
# Import-Module posh-git


# Set up a simple prompt, adding the git prompt parts inside git repos
function global:prompt {
    $realLASTEXITCODE = $LASTEXITCODE

    Write-Host(($pwd -split '\')[0]+' '+$(($pwd -split '\')[-1] -join '\')) -nonewline

    Write-VcsStatus

    $global:LASTEXITCODE = $realLASTEXITCODE
    return "> "
}

Pop-Location

Start-SshAgent -Quiet

Isso fará com que seu prompt seja parecido com:

    
por 20.09.2016 / 19:40