저는 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"
이 내용을 적용하려면 새 탭을 열어야 합니다.