58 votes

iTerm2 (version 3) : Historique individuel par onglet ?

J'utilise iTerm2 (version 3) et je l'aime bien. Mais il y a quelque chose qu'il fait depuis un certain temps et qui est vraiment ennuyeux : l'historique des commandes est partagé entre les onglets. Par exemple, dans votre premier onglet, lancez la commande foo et commande bar puis allez dans votre deuxième onglet et exécutez say Hello et revenir ensuite au premier onglet ; je voudrais et j'attends que la flèche vers le haut indique bar et ensuite foo mais il suggère plutôt say Hello .

Existe-t-il un moyen de corriger ce comportement ?

92voto

harrymc Points 394411

Si vous utilisez zsh, ajoutez ces deux lignes à ~/.zshrc après la ligne source $ZSH/oh-my-zsh.sh

unsetopt inc_append_history
unsetopt share_history

De zshoptions(1) - Page de manuel Linux :

INC_APPEND_HISTOIRE

Cette option fonctionne comme APPEND_HISTORY sauf que les nouvelles lignes d'historique sont ajoutées au $HISTFILE de manière incrémentielle (dès qu'elles sont entrées), plutôt que d'attendre que le Shell sorte.

SHARE_HISTORY

Cette option permet à la fois d'importer de nouvelles commandes depuis le fichier d'historique, et de les commandes que vous avez tapées sont ajoutées au fichier d'historique. (cette dernière option revient à spécifier INC_APPEND_HISTORY).

Le posteur a indiqué que c'était plutôt l'option qu'il recherchait :

APPEND_HISTORY

Si cette option est activée, les sessions zsh ajouteront leur liste d'historique au fichier fichier d'historique, plutôt que de le remplacer. Ainsi, plusieurs sessions zsh parallèles auront toutes les nouvelles entrées de leurs listes d'historique ajoutées au fichier d'historique, dans l'ordre de leur sortie.

11voto

estani Points 716

Extra info à la réponse parfaite de harrymc.

Ce n'est pas Iterm2 mais une fonctionnalité de zsh qui est activée par défaut si vous utilisez oh-my-zsh

(voir : https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh )

Alors mettez-les dans votre fichier .zshrc après source $ZSH/oh-my-zsh.sh (voir la réponse de harrymc)

unsetopt inc_append_history
unsetopt share_history

2voto

strobelight Points 661

Vous pouvez définir votre variable d'environnement HISTFILE à quelque chose d'unique, mais ce que je fais est simplement de la désactiver dans mon fichier . bashrc fichier :

export HISTFILE=""

mais je ne me soucie pas de garder mon histoire dans un fichier. En désactivant cette option, l'historique est simplement conservé en mémoire.

0voto

nanda Points 12764

Pour Bash il suffit d'ajouter ces deux lignes dans votre ~/.bashrc

shopt -s histappend
PROMPT_COMMAND="history -a;history -c;history -r;$PROMPT_COMMAND"

Assurez-vous d'ouvrir un nouvel onglet pour que cela prenne effet.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X