nnn: oh-my-zsh 를 쓰고 있다면, 설정은 한 파일에 몰아서.

nnn 은 따로 설정 파일이 없다. 대신 설정은 환경변수를 사용하게끔 돼 있다. 왜 이런 식으로 설계했는지는 모르겠으나.. 따라서 설정이 필요하면 각 Shell 의 rc (.bashrc, zshrc 등) 파일에 export 로 구현하라고 돼 있다.

헌데.. 이렇게 되면 좀 복잡해지고 지저분해진다. zsh/oh-my-zsh 사용자라면, 좀 더 간결한 방법으로 설정을 관리할 수 있다. 어떻게? $HOME/.oh-my-zsh/custom/ 디렉토리에 <파일명.zsh> 형식으로 파일을 만들면 된다.

nnn_set.zsh 라는 파일을 만들고, 다음 내용을 넣는다.

# nnn Quit on CD (macOS 용)
source $(/opt/homebrew/bin/brew --prefix)/Cellar/nnn/4.8/share/nnn/quitcd/quitcd.bash_zsh

# 압축파일 사용. (atool 필요)
export NNN_ARCHIVE="\\.(7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)$"

# plugin: rsync, subshell cd, ..
  # subshell s:shell, s:!zsh -i* 모두 작동함.
export NNN_PLUG='c:rsynccp;s:shell'
#export NNN_PLUG='c:rsynccp;s:!zsh -i*'

# subshell 용 함수
nnn_cd()
{
    if ! [ -z "$NNN_PIPE" ]; then
        printf "%s\0" "0c${PWD}" > "${NNN_PIPE}" !&
    fi
}

trap nnn_cd EXIT

여기 모두 모아놓으면, 알아보기도 쉽고 관리도 편하다.

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.