iTerm2(버전 3): 탭별 개별 기록?

iTerm2(버전 3): 탭별 개별 기록?

저는 iTerm2(버전 3)를 사용하고 있는데 마음에 듭니다. 하지만 한동안 정말 짜증나는 일이 있었는데, 명령 기록이 탭 간에 공유된다는 것입니다. 예를 들어, 첫 번째 탭에서 command foo및 command 를 실행한 bar다음 두 번째 탭으로 이동하여 를 실행 say Hello하고 첫 번째 탭으로 돌아갑니다. 나는 위쪽 화살표가 을 제안 bar하고 다음을 제안하기를 기대 foo하지만 대신에 을 제안할 것입니다 say Hello.

이 동작을 바로잡을 수 있는 방법이 있나요?

답변1

zsh를 사용하는 경우 다음 두 줄을 ~/.zshrc줄 뒤에 추가하세요.source $ZSH/oh-my-zsh.sh

unsetopt inc_append_history
unsetopt share_history

에서 zshoptions(1) - Linux 매뉴얼 페이지:

INC_APPEND_HISTORY

이 옵션은 쉘이 종료될 때까지 기다리지 않고 새 히스토리 행이 $HISTFILE에 점진적으로 추가된다는 점을 제외하고(입력하자마자) APPEND_HISTORY와 유사하게 작동합니다.

SHARE_HISTORY

이 옵션은 기록 파일에서 새 명령을 가져오고 입력한 명령이 기록 파일에 추가되도록 합니다(후자는 INC_APPEND_HISTORY를 지정하는 것과 같습니다).

포스터는 이것이 오히려 그가 찾고 있던 옵션임을 나타냈습니다.

APPEND_HISTORY

이것이 설정되면 zsh 세션은 기록 파일을 바꾸는 대신 기록 파일에 기록 목록을 추가합니다. 따라서 여러 병렬 zsh 세션에는 모두 종료 순서대로 기록 파일에 기록 목록의 새 항목이 추가됩니다.

답변2

harrymc의 완벽한 답변에 대한 추가 정보.

이것은 Iterm2가 아니라 다음을 사용하면 기본적으로 활성화되는 zsh의 기능입니다.오-내-zsh

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

따라서 이것을 .zshrc 파일에 넣으십시오 source $ZSH/oh-my-zsh.sh(harrymc의 답변 참조)

unsetopt inc_append_history
unsetopt share_history

답변3

HISTFILE 환경 변수를 고유한 것으로 설정할 수 있지만 저는 .bashrc파일:

export HISTFILE=""

하지만 내 기록을 파일로 보관하고 싶지는 않습니다. 설정을 해제하면 기록이 메모리에만 유지됩니다.

답변4

사용자 의 경우 Bash다음 두 줄을~/.bashrc

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

이 내용을 적용하려면 새 탭을 열어야 합니다.

관련 정보