From 8566b6f6caa693814c5d3119a1910f409dcddef1 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Mon, 23 Nov 2015 19:10:22 -0500 Subject: [PATCH 1/2] Added vi/vim aliases and fixed powershell startup errors --- config/aliases | 1 + vendor/profile.ps1 | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/config/aliases b/config/aliases index 41d71ad..c726204 100644 --- a/config/aliases +++ b/config/aliases @@ -5,3 +5,4 @@ pwd=cd clear=cls history=cat %CMDER_ROOT%\config\.history unalias=alias /d $1 +vi=vim $* diff --git a/vendor/profile.ps1 b/vendor/profile.ps1 index ba9422e..134e4d9 100644 --- a/vendor/profile.ps1 +++ b/vendor/profile.ps1 @@ -27,7 +27,14 @@ if( -not $env:PSModulePath.Contains($CmderModulePath) ){ try { Get-command -Name "vim" -ErrorAction Stop >$null } catch { - $env:Path += ";$env:CMDER_ROOT\vendor\git-for-windows\usr\share\vim\vim74" + # # You could do this but it may be a little drastic and introduce a lot of + # # unix tool overlap with powershel unix like aliases + # $env:Path += $(";" + $env:CMDER_ROOT + "\vendor\git-for-windows\usr\bin") + # set-alias -name "vi" -value "vim" + # # I think the below is safer. + set-alias -name "vim" -value $($ENV:CMDER_ROOT + "\vendor\git-for-windows\usr\bin\vim.exe $1 $2 $3 $4 $5 $6 $7 $8 $9") + set-alias -name "vi" -value $($ENV:CMDER_ROOT + "\vendor\git-for-windows\usr\bin\vim.exe $1 $2 $3 $4 $5 $6 $7 $8 $9") + } try { @@ -78,8 +85,10 @@ if ($gitStatus) { $cmderStartKey = 'HKCU:\Software\cmder' $cmderStartSubKey = 'CMDER_START' -$cmderStart = (Get-Item -Path $cmderStartKey).GetValue($cmderStartSubKey) +$cmderStart = (Get-Item -Path $cmderStartKey -ErrorAction SilentlyContinue) + if ( $cmderStart ) { + $cmderStart = $cmderStart.GetValue($cmderStartSubKey) $cmderStart = ($cmderStart).Trim('"').Trim("'") if ( $cmderStart.EndsWith(':') ) { $cmderStart += '\' @@ -96,6 +105,7 @@ if ( $cmderStart ) { Set-Location -Path "${env:HOME}" } + # Enhance Path $env:Path = "$Env:CMDER_ROOT\bin;$env:Path;$Env:CMDER_ROOT" From 5eff672a4b4d88075f411f449df83aa91f0fd946 Mon Sep 17 00:00:00 2001 From: "Dax T. Games" Date: Mon, 23 Nov 2015 21:58:56 -0600 Subject: [PATCH 2/2] Added lambda prompt for bash/mintty, matches cmder and powershell prompts --- packignore | 1 + scripts/build.ps1 | 7 +++++++ vendor/git-prompt.sh | 22 ++++++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 vendor/git-prompt.sh diff --git a/packignore b/packignore index 538efb3..04025a6 100644 --- a/packignore +++ b/packignore @@ -17,3 +17,4 @@ Cmder.bat vendor\tmp appveyor.yml vendor\cmder.sh +vendor\git-prompt.sh diff --git a/scripts/build.ps1 b/scripts/build.ps1 index c9d10d0..998c442 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -117,4 +117,11 @@ if ( (Test-Path $($SaveTo + "git-for-windows/etc/profile.d") ) ) { Copy-Item $($SaveTo + "cmder.sh") $($SaveTo + "git-for-windows/etc/profile.d/cmder.sh") } +# Replace /etc/profile.d/git-prompt.sh with cmder lambda prompt so it runs when we start bash or mintty +if ( !(Test-Path $($SaveTo + "git-for-windows/etc/profile.d/git-prompt.sh.bak") ) ) { + write-verbose "Replacing /etc/profile.d/git-prompt.sh with our git-prompt.sh" + Move-Item $($SaveTo + "git-for-windows/etc/profile.d/git-prompt.sh") $($SaveTo + "git-for-windows/etc/profile.d/git-prompt.sh.bak") + Copy-Item $($SaveTo + "git-prompt.sh") $($SaveTo + "git-for-windows/etc/profile.d/git-prompt.sh") +} + Write-Verbose "All good and done!" diff --git a/vendor/git-prompt.sh b/vendor/git-prompt.sh new file mode 100644 index 0000000..81aedb0 --- /dev/null +++ b/vendor/git-prompt.sh @@ -0,0 +1,22 @@ +PS1='\[\033]0;$MSYSTEM:${PWD//[^[:ascii:]]/?}\007\]' # set window title +PS1="$PS1"'\[\033[32m\]' # change to green +PS1="$PS1"'\u@\h ' # user@host +PS1="$PS1"'\[\033[33m\]' # change to brownish yellow +PS1="$PS1"'\w' # current working directory +if test -z "$WINELOADERNOEXEC" +then + GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)" + COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}" + COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}" + COMPLETION_PATH="$COMPLETION_PATH/share/git/completion" + if test -f "$COMPLETION_PATH/git-prompt.sh" + then + . "$COMPLETION_PATH/git-completion.bash" + . "$COMPLETION_PATH/git-prompt.sh" + PS1="$PS1"'\[\033[36m\]' # change color to cyan + PS1="$PS1"'`__git_ps1`' # bash function + fi +fi +PS1="$PS1"'\[\033[0m\]' # change color +PS1="$PS1"'\n' # new line +PS1="$PS1"'λ ' # prompt: always λ