Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/06/2010, à 09:30

frinux

zsh ne retrouve pas tout dans history

Bonjour à tous,

j'ai changé mon shell par défaut (bash) par zsh. Tout marche très bien, à part la recherceh dans l'historique. Il fonctionne, mais pas pour tout l'historique.

J'utilise comme fichier d'historique ~/.history. En regardant dans ce fichier, il y a certains commandes que je n'arrive pas à atteindre via CTRL+R.

Vous auriez une piste ?

Pour info, voici le contenu de mon .zshrc :

#cat ~/.zshrc                                                                                                                                                                                [ven. 11 juin 09:24]
################
# 1. Les alias #
################

# Gestion du 'ls' : couleur & ne touche pas aux accents
alias ls='ls -lah --classify --tabsize=0 --literal --color=auto --show-control-chars --human-readable'

# Demande confirmation avant d'ecraser un fichier
alias cp='cp --interactive'
alias mv='mv --interactive'
alias rm='rm --interactive'

# Raccourcis pour 'ls'
alias ll='ls -l'
alias la='ls -a'
alias lla='ls -la'

# Quelques alias pratiques
alias c='clear'
alias less='less --quiet'
alias s='cd ..'
alias df='df --human-readable'
alias du='du --human-readable'
alias m='mutt -y'
alias md='mkdir'
alias rd='rmdir'
alias upgrade='apt-get update && apt-get upgrade && apt-get clean'



#######################################
# 2. Prompt et definition des touches #
#######################################

# Exemple : ma touche HOME, cf  man termcap, est codifiee K1 (upper left
# key  on keyboard)  dans le  /etc/termcap.  En me  referant a  l'entree
# correspondant a mon terminal (par exemple 'linux') dans ce fichier, je
# lis :  K1=\E[1~, c'est la sequence  de caracteres qui sera  envoyee au
# shell. La commande bindkey dit simplement au shell : a chaque fois que
# tu rencontres telle sequence de caractere, tu dois faire telle action.
# La liste des actions est disponible dans "man zshzle".

# Correspondance touches-fonction
bindkey ''    beginning-of-line       # Home
bindkey ''    end-of-line             # End
bindkey ''    delete-char             # Del
bindkey '[3~' delete-char             # Del
bindkey '[2~' overwrite-mode          # Insert
bindkey '[5~' history-search-backward # PgUp
bindkey '[6~' history-search-forward  # PgDn

# Prompt


BLACK="%{"$'\033[01;30m'"%}"
GREEN="%{"$'\033[01;32m'"%}"
# RED="%{"$'\033[01;31m'"%}"
RED="%{"$'\033[1;31m'"%}"
YELLOW="%{"$'\033[01;33m'"%}"
BLUE="%{"$'\033[01;34m'"%}"
BOLD="%{"$'\033[01;39m'"%}"
NORM="%{"$'\033[00m'"%}"

#Commande de prompt :
autoload -U colors
colors


# PROMPT="%{${fg[red]}%}%n@%M%{${fg[white]}%} : %{${fg[yellow]}%}%~%{${fg[white]}%}
# %B#%b"
PROMPT="%{$RED%}%n@%M%{${fg[white]}%} : %{${fg[yellow]}%}%~%{${fg[white]}%}
%B#%b"

# RPS1="%{${fg[red]}%}%(?..(%?%))%{${fg[white]}%} [%D{%a %d %b %H:%M}]"

RPS1="%{$RED%}%(?..(%?%))%{${fg[white]}%} [%D{%a %d %b %H:%M}]"

#PS1="%{${bg[white]}${fg[red]}%}%(?..(%?%))\ 
#  %{${fg[yellow]}${bg[black]}%}%# "





# Gestion de la couleur pour 'ls' (exportation de LS_COLORS)
if [ -x /usr/bin/dircolors ]
then
  if [ -r ~/.dir_colors ]
  then
    eval "`dircolors ~/.dir_colors`"
  elif [ -r /etc/dir_colors ]
  then
    eval "`dircolors /etc/dir_colors`"
  else
    eval "`dircolors`"
  fi
fi


###########################################
# 3. Options de zsh (cf 'man zshoptions') #
###########################################

# Je ne veux JAMAIS de beeps
unsetopt beep
unsetopt hist_beep
unsetopt list_beep
# Ctrl+D est equivalent a 'logout'
unsetopt ignore_eof
# Affiche le code de sortie si different de '0'
setopt print_exit_value
# Demande confirmation pour 'rm *'
unsetopt rm_star_silent
# Si on utilise des jokers dans une liste d'arguments, retire les jokers
# qui ne correspondent a rien au lieu de donner une erreur
setopt nullglob


# Options de complétion
# Quand le dernier caractère d'une complétion est '/' et que l'on
# tape 'espace' après, le '/' est effaçé
setopt auto_remove_slash

# Traite les liens symboliques comme il faut
setopt chase_links


# Si la commande est invalide mais correspond au nom d'un sous-répertoire
# exécuter 'cd sous-répertoire'
setopt auto_cd
# L'exécution de "cd" met le répertoire d'où l'on vient sur la pile
setopt auto_pushd
# Ignore les doublons dans la pile
setopt pushd_ignore_dups
# N'affiche pas la pile après un "pushd" ou "popd"
setopt pushd_silent
# "pushd" sans argument = "pushd $HOME"
setopt pushd_to_home

# Les jobs qui tournent en tâche de fond sont nicé à '0'
unsetopt bg_nice
# N'envoie pas de "HUP" aux jobs qui tourent quand le shell se ferme
unsetopt hup


###############################################
# 4. Paramètres de l'historique des commandes #
###############################################

# Nombre d'entrées dans l'historique
export HISTORY=1000
export SAVEHIST=1000

# Fichier où est stocké l'historique
export HISTFILE=$HOME/.history

# Ajoute l'historique à la fin de l'ancien fichier
setopt append_history

# Chaque ligne est ajoutée dans l'historique à mesure qu'elle est tapée
setopt inc_append_history

# Ne stocke pas  une ligne dans l'historique si elle  est identique à la
# précédente
setopt hist_ignore_dups

# Supprime les  répétitions dans le fichier  d'historique, ne conservant
# que la dernière occurrence ajoutée
setopt hist_ignore_all_dups

# Supprime les  répétitions dans l'historique lorsqu'il  est plein, mais
# pas avant
setopt hist_expire_dups_first

# N'enregistre  pas plus d'une fois  une même ligne, quelles  que soient
# les options fixées pour la session courante
#setopt hist_save_no_dups

# La recherche dans  l'historique avec l'éditeur de commandes  de zsh ne
# montre  pas  une même  ligne  plus  d'une fois,  même  si  elle a  été
# enregistrée
setopt hist_find_no_dups


###########################################
# 5. Complétion des options des commandes #
###########################################

zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}'
zstyle ':completion:*' max-errors 3 numeric
zstyle ':completion:*' use-compctl false

zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'

#setopt correctall


autoload -U compinit
compinit

Merci wink

Hors ligne

#2 Le 13/06/2010, à 17:10

Kooothor

Re : zsh ne retrouve pas tout dans history

Salut,

Pas de piste, mais merci pour ton .zshrc bien commenté wink

Hors ligne

#3 Le 04/01/2011, à 06:21

david96

Re : zsh ne retrouve pas tout dans history

Un peu tard, mais why not si ça peut servir… Dans mon zshrc, j'ai l'export des variables HISTFILE et SAVEHIST :

HISTFILE=~/.history
HISTSIZE=1000
SAVEHIST=1000
export HISTFILE SAVEHIST

Je ne sais pas si ça joue, mais chez moi ça marche nickel smile

Dernière modification par david96 (Le 04/01/2011, à 06:22)

Hors ligne

#4 Le 04/01/2011, à 10:40

frinux

Re : zsh ne retrouve pas tout dans history

Ça ne changera pas grand chose, c'est juste une manière différente d'écrire. Dans ton .zshrc, tu définis tes variables puis tu les "exporte" (cad tu les portes à la connaissance du système). Moi je fais pareil mais ligne par ligne.

Hors ligne

#5 Le 04/01/2011, à 11:37

david96

Re : zsh ne retrouve pas tout dans history

Et tu n'as toujours pas réglé ton problème ?

Hors ligne

#6 Le 04/01/2011, à 11:39

frinux

Re : zsh ne retrouve pas tout dans history

Non pas encore sad

Hors ligne

#7 Le 04/01/2011, à 12:51

david96

Re : zsh ne retrouve pas tout dans history

T'as toute une page sur les paramètres history sur ce lien :
http://www.cims.nyu.edu/cgi-systems/inf … 520Control

En espérant que… wink

Hors ligne