Настроить подсказку CSH для Git-репо - PullRequest
2 голосов
/ 02 апреля 2012

Я хочу получить персонализированное приглашение CSH, когда я в репозитории Git.Я хочу, чтобы приглашение выглядело так, если я не в git-репо

host_name>$ 

Но когда я в Git-репо, оно должно превратиться в нечто подобное

host_name [GIT REPO ROOT DIR]>$ 

Я простохочу отобразить корень репозитория Git (GIT REPO ROOT DIR), чтобы я знал, в каком репо я сейчас нахожусь. Вместо того, чтобы каждый раз использовать «pwd».

У вас, ребята, есть какие-либо предложения по достижениюэтот?Спасибо за помощь

-Anish

Ответы [ 2 ]

5 голосов
/ 26 октября 2012

Вот как я это сделал для tcsh. Поместите этот скрипт в свой путь куда-нибудь; назовите это cgb:

#!/bin/bash
git branch 2> /dev/null | grep '^*' | awk '{ print $2; }'

В вашем .tcshrc,

alias precmd 'set cgb=`cgb`'
set prompt='...your-prompt-string... (%$cgb) % '

precmd запускается перед каждым приглашением. Если вы хотите, чтобы он запускался до изменения каталогов, используйте вместо этого псевдоним cwdcmd. Я предпочитаю precmd, так как он запускается, например, при выполнении git checkout.

1 голос
/ 03 апреля 2012

Я все еще твердолобый пользователь tcsh, но я, наконец, разочаровался в raw csh и переключился на tcsh по многим причинам, включая ужасную поддержку csh для таких вещей. (И я могу в конечном итоге сдаться и переключиться на bash, даже. :-)) Тем не менее, можно сделать, как заметил @KeithThompson, псевдонимы:

alias cd 'chdir \!:* && update_prompt'
alias update_prompt 'set prompt="...stuff here... "'

где "... вещи здесь ..." могут включать использование обратных кавычек для запуска чего-либо, например, сценария для генерации части [GIT REPO ROOT DIR]. (Напишите скрипт в чем-то отличном от csh!)

Обратите внимание, что в то время как я псевдоним от cd до chdir ..., вы можете просто использовать саму команду в псевдониме, который вам понадобится с pushd и popd.

...