화살표 키를 사용할 때가 아닌 Ctrl+R을 사용할 때만 여러 bash 세션의 검색 기록

화살표 키를 사용할 때가 아닌 Ctrl+R을 사용할 때만 여러 bash 세션의 검색 기록

나는 보통 여러 개의 bash 세션을 열어 둡니다. 검색 시 여러 세션의 기록(Ctrl+R 사용)을 표시하고 싶습니다. 화살표 키를 사용하면 현재 bash 세션의 기록만 표시되어야 합니다.

많은 stackexchange 문제는 여러 세션 기록 저장과 관련이 있습니다. 나는 그것을 사용했지만 내 요구 사항은 약간 다릅니다.

답변1

첫째, 쉘(이 경우 bash) 처리 기록의 일부 주요 구성 요소를 다시 구현하지 않고는 문제에 대한 깨끗한 해결책이 없습니다. 다음은 화살표가 예상대로 작동하도록 로컬 기록을 유지하는 솔루션입니다. Ctrl-r은 반드시 글로벌 기록을 검색합니다. 이 솔루션은 다음과 같은 기록 검색을 위한 뛰어난 유틸리티에 의존합니다.헤헤. 모든 설정에 대한 지침은 다음과 같습니다.

시작 파일에 추가 ~/.profile또는 :~/.bash_profile~/.bashrc

# Whenever a command is executed, write it to a global history
export PROMPT_COMMAND="history -a ~/.bash_history.global"

# On C-r run the swap_history_reverse.sh script, 
bind -x '"\C-r": "~/swap_history_reverse.sh"'

다음 스크립트를 작성하십시오 ~/swap_history_reverse.sh.

#! /usr/bin/env bash

# Point hh to global history
export HISTFILE=~/.bash_history.global

# Reverse search
hh

# Restore local history
export HISTFILE=~/.bash_history 

스크립트를 실행 가능하게 만듭니다.

chmod +x ~/swap_history_reverse.sh

설치 hh, 참조설치하다.

모든 것이 준비되면 새 셸을 열고 실행합니다.

관련 정보