Autor Thema: Kleine Frage zur zsh  (Gelesen 1000 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline focmb

  • Sr. Mitglied
  • ****
  • Beiträge: 356
  • Dankeschön: 10 mal
  • Desktop: Gnome Shell
  • Grafikkarte: ATI HD 7650
  • Grafikkartentreiber: free (video-ati)
  • Kernel: 4.5
  • Prozessor: i5
  • Skill: Durchschnitt
  • Zweig: stable
Kleine Frage zur zsh
« am: 11. Februar 2016, 11:01:25 »
Hi,

ich benutze seit einer Zeit zsh als Shell. Ich habe mir die Shell so angepasst, wie ich sie brauche. Nur eins gelingt mir nicht: Die Anzeige des Git-Status eines Repositories erfolgt immer ganz rechts in der Shell (siehe Screenshot). Ich hätte den Git-Status aber gerne direkt hinter dem Prompt. Weiß jemand, wo die Ausrichtung des Git-Status in zsh definiert ist? Ich habe schon versucht, die Theme-Definition auszukommentieren, aber leider ohne Erfolg.

Meine zshrc:

# Path to your oh-my-zsh installation.
# export ZSH=/home/focmb/.oh-my-zsh
export ZSH=/usr/share/oh-my-zsh

#Disable oh-my-zsh auto update (when installed via yourt)
DISABLE_AUTO_UPDATE="true"

# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="mh"

# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"

# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git adb archlinux cp sudo)

# User configuration

  export PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/android-sdk/platform-tools:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl"
# export MANPATH="/usr/local/man:$MANPATH"

source $ZSH/oh-my-zsh.sh

# You may need to manually set your language environment
export LANG=de_DE.UTF-8

# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
#   export EDITOR='vim'
# else
#   export EDITOR='mvim'
# fi

# Compilation flags
# export ARCHFLAGS="-arch x86_64"

# ssh
# export SSH_KEY_PATH="~/.ssh/dsa_id"

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
alias ls='ls --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias ll='ls -lah --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias la='ls -la --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'
alias grep='grep --color=tty -d skip'
alias cp="cp -i"                                        # confirm before overwriting something
alias df='df -h'                                        # human-readable sizes
alias free='free -m'                                    # show sizes in MB
alias np='nano PKGBUILD'
alias update='sudo pacman -Syyu'                        # Sync Pacman with Online-Repos
alias yupdate='yaourt -Syua --noconfirm'                # Sync Yaourt with Online-Repos
alias install='sudo pacman -S '                         # install paket with Pacman
alias remove='sudo pacman -R '                          # remove paket with Pacman
alias clean='sudo pacman -Sc'                           # simplae CLean Pacman-Cache
alias cclean='sudo pacman -Scc'                         # complete clean Pacman-Cache
alias ccclean='sudo pacman -Rs $(pacman -Qdtq)'         # verwaiste pakete entfernen
alias yinstall='yaourt '                                # install paket with Yaourt
alias unblockwifi='rfkill unblock 0'
alias unblockbt='rfkill unblock 1'
alias unblockall='rfkill unblock all'
alias dd='dd status=progress'

# ex - archive extractor
# usage: ex <file>
ex ()
{
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2)   tar xjf $1   ;;
      *.tar.gz)    tar xzf $1   ;;
      *.bz2)       bunzip2 $1   ;;
      *.rar)       unrar x $1   ;;
      *.gz)        gunzip $1    ;;
      *.tar)       tar xf $1    ;;
      *.tbz2)      tar xjf $1   ;;
      *.tgz)       tar xzf $1   ;;
      *.zip)       unzip $1     ;;
      *.Z)         uncompress $1;;
      *.7z)        7z x $1      ;;
      *)           echo "'$1' cannot be extracted via ex()" ;;
    esac
  else
    echo "'$1' is not a valid file"
  fi
}

export HH_CONFIG=hicolor         # get more colors
export HISTCONTROL=ignorespace   # leading space hides commands from history
export HISTFILE=~/.zsh_history
export HISTFILESIZE=10000        # increase history file size (default is 500)
export HISTSIZE=${HISTFILESIZE}  # increase history size (default is 500)
bindkey -s "\C-r" "\eqhh\n"

source /usr/share/zsh-git-prompt/zshrc.sh

#colorful prompt
NEWLINE=$'\n'
PROMPT="%{$fg[white]%}% ┌─[%{$fg[cyan]%}%n%{$reset_color%} %{%F{yellow}%}%~%{$fg[white]%}% ]${NEWLINE}└─▶"
precmd() { print "" }

source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
ZSH_HIGHLIGHT_STYLES[globbing]='fg=yellow'
ZSH_HIGHLIGHT_STYLES[path]='bold'
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor)

Willst Du einen Tag lang glücklich sein, saufe.
Willst du ein Jahr glücklich sein, heirate.
Willst Du ein Leben lang glücklich sein, fahre Yamaha.

Offline gosia

  • Held Mitglied
  • *****
  • Beiträge: 1346
  • Dankeschön: 254 mal
  • Desktop: Openbox + xfce
  • Grafikkarte: Intel HD 4000
  • Grafikkartentreiber: i915 (free)
  • Kernel: 4.18 Artix
  • Prozessor: Intel Core i5-3210M
  • Skill: Durchschnitt
  • Zweig: stable
Re: Kleine Frage zur zsh
« Antwort #1 am: 11. Februar 2016, 11:34:17 »
Hallo focmb,
ich habe keine Ahnung von der zsh  :( vielleicht hilft dieser Link trotzdem weiter:
http://de.gitready.com/advanced/2009/01/28/zsh-git-status.html

Viele Grüße gosia

Offline klesk

  • Held Mitglied
  • *****
  • Beiträge: 1194
  • Dankeschön: 142 mal
  • Desktop: herbstluftwm
  • Grafikkartentreiber: nvidia 3.40xx
  • Kernel: 4.2
  • Prozessor: Intel Core2 Quad Q9550 (-MCP-)
  • Skill: Durchschnitt
  • Zweig: unstable
Re: Kleine Frage zur zsh
« Antwort #2 am: 11. Februar 2016, 11:49:57 »
Ich denke das mit dem Theme auskommentieren wird nicht klappen weil du später die Prompt selber definierst.

Müsstest du dann selber anpassen. Hier z.b das robbyrussel Theme

Code: Bash
  1. local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)"
  2. PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
  3.  
  4. ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}"
  5. ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
  6. ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
  7. ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"

Die Funktion $(git_promt_info) dafür bekommt er aus /usr/share/oh-my-zsh/lib/git.zsh

Offline focmb

  • Sr. Mitglied
  • ****
  • Beiträge: 356
  • Dankeschön: 10 mal
  • Desktop: Gnome Shell
  • Grafikkarte: ATI HD 7650
  • Grafikkartentreiber: free (video-ati)
  • Kernel: 4.5
  • Prozessor: i5
  • Skill: Durchschnitt
  • Zweig: stable
Re: Kleine Frage zur zsh
« Antwort #3 am: 11. Februar 2016, 12:25:07 »
Wenn ich meine eigene Prompt auskommentiere und die vom Theme nehme, dann habe ich den git status doppelt drin (siehe anhang)
Willst Du einen Tag lang glücklich sein, saufe.
Willst du ein Jahr glücklich sein, heirate.
Willst Du ein Leben lang glücklich sein, fahre Yamaha.

Offline klesk

  • Held Mitglied
  • *****
  • Beiträge: 1194
  • Dankeschön: 142 mal
  • Desktop: herbstluftwm
  • Grafikkartentreiber: nvidia 3.40xx
  • Kernel: 4.2
  • Prozessor: Intel Core2 Quad Q9550 (-MCP-)
  • Skill: Durchschnitt
  • Zweig: unstable
Re: Kleine Frage zur zsh
« Antwort #4 am: 11. Februar 2016, 12:34:38 »
Dann nimm mal das Git Plugin raus. Oder ich hab was in der Config übersehen.
« Letzte Änderung: 11. Februar 2016, 12:46:44 von klesk »

Offline focmb

  • Sr. Mitglied
  • ****
  • Beiträge: 356
  • Dankeschön: 10 mal
  • Desktop: Gnome Shell
  • Grafikkarte: ATI HD 7650
  • Grafikkartentreiber: free (video-ati)
  • Kernel: 4.5
  • Prozessor: i5
  • Skill: Durchschnitt
  • Zweig: stable
Re: Kleine Frage zur zsh
« Antwort #5 am: 11. Februar 2016, 13:32:20 »
Es lag tatsächlich am git plugin. Ich hatte das vorher schon mal rausgenommen und mit einem :
source ~/.zshrc
die .zshrc neu eingelesen, aber das Problem blieb bestehen. Hier war ein Aus- und wieder Einloggen notwendig, um die Änderungen zu aktivieren.
Willst Du einen Tag lang glücklich sein, saufe.
Willst du ein Jahr glücklich sein, heirate.
Willst Du ein Leben lang glücklich sein, fahre Yamaha.

Offline klesk

  • Held Mitglied
  • *****
  • Beiträge: 1194
  • Dankeschön: 142 mal
  • Desktop: herbstluftwm
  • Grafikkartentreiber: nvidia 3.40xx
  • Kernel: 4.2
  • Prozessor: Intel Core2 Quad Q9550 (-MCP-)
  • Skill: Durchschnitt
  • Zweig: unstable
Re: Kleine Frage zur zsh
« Antwort #6 am: 11. Februar 2016, 15:23:41 »
Und schon versucht es in deine ursprüngliche Prompt einzubauen ?

Offline focmb

  • Sr. Mitglied
  • ****
  • Beiträge: 356
  • Dankeschön: 10 mal
  • Desktop: Gnome Shell
  • Grafikkarte: ATI HD 7650
  • Grafikkartentreiber: free (video-ati)
  • Kernel: 4.5
  • Prozessor: i5
  • Skill: Durchschnitt
  • Zweig: stable
Re: Kleine Frage zur zsh
« Antwort #7 am: 11. Februar 2016, 16:26:22 »
hab ich versucht. Hat aber nur zum Teil funktioniert. Ich hatte dann immer einen git Status, auch wenn ich nicht in einem git Ordner war. Ich habe mir dann einfach ein Theme genommen, lambda-mod, und dieses Theme angepasst. Jetzt sieht es aus, wie es aussehen soll.

Willst Du einen Tag lang glücklich sein, saufe.
Willst du ein Jahr glücklich sein, heirate.
Willst Du ein Leben lang glücklich sein, fahre Yamaha.