2016-09-14 60 views
0

這是我的ConsoleZ powershell,我希望擁有一個posh-git環境,但不起作用。將PowerShell提示功能(例如ConsoleZ與posh-git)結合使用

ConsoleZ power-shell

這行代碼是微軟PowerShell配置

Write-Host "Setting up GitHub Environment" 
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1") 

Write-Host "Setting up Posh-Git" 
. (Resolve-Path "$env:github_posh_git\profile.example.ps1") 



function prompt { 
    $p = Split-Path -leaf -path (Get-Location) 
    "$p> " 
} 

我一直在努力,現在一對夫婦的時間內,豪華,git會不會上集成到我的consoleZ。

問題是在將$ profile中所需的所有腳本放入後,它不會運行posh-git。

我不能這樣做。

Example consoleZ with posh-git running

UPDATE

Burt_Harris評論是正確的,這是因爲與posh_git搞亂提示功能的,現在我的問題是如何讓兩個功能工作?

更新2

我的腳本兩個提示功能結合起來。只要給我PS>代替文件夾目錄>

# Prompt for shortened link on command line 
function myPrompt { 
    $p = Split-Path -leaf -path (Get-Location) 
    "$p> " 
} 

$myPrompt = $function:myPrompt 

# Set up a simple prompt, adding the git prompt parts inside git repos 
function posh_gitPrompt { 
    $realLASTEXITCODE = $LASTEXITCODE 
    Write-Host($pwd.ProviderPath) -nonewline 
    Write-VcsStatus 
    $global:LASTEXITCODE = $realLASTEXITCODE 
    return "> " 
} 

# Combine myPrompt & posh_gitPrompt 
function global:prompt { 
    "myPrompt`n$(&$posh_gitPrompt)" 
} 

SOLUTION

而不是在posh_git示例性配置文件使用此

Write-Host($pwd.ProviderPath) -nonewline 

的,我把它修改爲

Write-Host(Split-Path -leaf $pwd.ProviderPath) -nonewline 

那個伎倆,不需要再做另一個fu nction。

+0

我的問題是我的$ profile文件有什麼問題。我似乎無法使用consoleZ運行posh-git。 git環境與consoleZ協同工作,但posh-git不會在consoleZ上顯示。 – juscuizon

+0

也許posh-git(我從來沒有用過)通過替換提示函數來操作,而你的腳本用它自己替換它的提示函數。嘗試在腳本的開頭放置'function prompt'。 –

+0

@Burt_Harris完全正確,你知道如何使兩個提示功能同時工作嗎?有什麼建議麼。 – juscuizon

回答

0

代替在posh_git示例性配置文件使用此

Write-Host($pwd.ProviderPath) -nonewline 

,我把它修改爲

Write-Host(Split-Path -leaf $pwd.ProviderPath) -nonewline 

是沒有的伎倆,也沒必要再拍功能。

0

保存舊的提示功能,並在您的重寫版本中調用它,將不同的信息連接在一起。例如:

$previousPrompt = $function:prompt 

function prompt() { 
    "MyPrompt`n$(&$previousPrompt)" 
    } 
+0

function global:prompt { 「myPrompt'n $(&$ posh_gitPrompt)」 } – juscuizon

相關問題