터미널에서 많은 작업을 수행하므로 선택한 쉘 zsh에 대해 많은 것을 배웠습니다. 직장에서 생산성을 높이기 위해 zsh의 어떤 기능을 사용하십니까? 내가 가장 좋아하는 것 중 하나는 multi-dir 자동 완성입니다. 따라서 입력하는 대신 많은 키 입력을 cd /fo{tab}/ba{tab}/ba{tab}
수행 cd /fo/ba/ba{tab}
하고 저장할 수 있습니다 !
터미널에서 많은 작업을 수행하므로 선택한 쉘 zsh에 대해 많은 것을 배웠습니다. 직장에서 생산성을 높이기 위해 zsh의 어떤 기능을 사용하십니까? 내가 가장 좋아하는 것 중 하나는 multi-dir 자동 완성입니다. 따라서 입력하는 대신 많은 키 입력을 cd /fo{tab}/ba{tab}/ba{tab}
수행 cd /fo/ba/ba{tab}
하고 저장할 수 있습니다 !
답변:
내가 아는 한 배쉬가 할 수없는 일을 계속 할 것입니다.
멋진 완성. bash는 그 중 일부를 가지고 있지만 zsh는 더 많은 명령을 알고 있으며 더 정확하며 구성 가능성이 더 많습니다.
**
글로브, 예를 들어, **/foo
라는 파일을 찾습니다 foo
재귀 적으로 하위 디렉토리에. (그리고 ***/foo
또한 심볼릭 링크를 다음과 같습니다.) 두 문자 대신 긴 find
(일부 파일 이름에 공백이 따옴표와 같은 특수 문자가 포함 된 경우 오른쪽 얻기 어렵다) 명령.
덜 자주, foo*(*)
(예 foo*
: 실행 파일 만 보유), foo(.)
(디렉토리가 아닌 일반 파일 만), foo(-@)
(매달린 심볼릭 링크 만), foo*(m-5)
(마지막 5 분 동안 수정 된 파일 만), foo*(om[1])
(가장 최근 수정 된 파일) 등
autocd
: 디렉토리 이름을 명령으로 입력하면 디렉토리 이름이 변경됩니다 ( cd
또는 pushd
구성 방법에 따라 다름). cd
명령은 너무 오래 세 문자입니다! 나는 고통을 느끼지 않고 30 초 이상 bash를 사용할 수 없습니다. 또한 다음과 같은 단일 문자 기능이 있습니다.
기능-{ 만약 [[$ # -eq 0]]; 그때 cd "$ OLDPWD" 그밖에 내장- "$ @" fi }
zmv
내장하고,별명 zcp = 'noglob zmv -C' 별명 zln = 'noglob zmv -L' 별명 zmv = 'noglob zmv'
내가 그 동안 noglob
내장.
precmd
와 preexec
후크 기능 : 내가 사용하는 preexec
실행 명령을 포함하는 내 터미널의 제목을 설정하고, precmd
종료 코드와 명령을 대체 할 수 있습니다. 같은 것
term_title_base = '@ % l : % 1 ~' preexec () { print -nr $ '\ e] 2;' "$ {(%) term_title_base} $ *" '$ \ a' } precmd () { print -nr $ '\ e] 2;' "$ {(%) term_title_base} ($?)" '$ \ a' }
bg
(Ctrl + Z Ctrl + Z는 프로그램을 일시 중단하고 백그라운드에서 즉시 다시 시작합니다).fancy-ctrl-z () { 만약 [[$ # BUFFER -eq 0]]; 그때 bg zle 재표시 그밖에 zle 푸시 입력 fi } zle -N fancy-ctrl-z bindkey '^ Z'fancy-ctrl-z
setopt append_history autocd extended_glob no_match
파일 및 디렉토리 외에 자동 완성 기능을 제공하는 zsh의 기능
예를 들어, git 패키지가 설치되면 git-sh {tab}이 나타납니다.
-자식 명령- shortlog-자식 로그 출력을 요약합니다 show-branch-브랜치와 커밋을 보여줍니다 show-index-팩 idx 파일의 내용을 표시합니다
전 세계 별칭을 정말 좋아합니다
alias -g L='|less
alias -g DN='>/dev/null'
내가 같은 일을하게 해줘
somecommand file arg L
페이징하십시오.
다른 사람들이 언급했듯이 zsh의 자동 완성 기능은 뛰어납니다.
번거 로움없이 사용자 정의 명령에 대해 자동 완성 기능을 설정할 수 있습니다. 완전한 사용자 이름을 손가락의 인수로 탭하려면 :
# ~/.zshrc
function userlist {
reply=(`users | tr ' ' '\n' |sort -u `);}
compctl -K userlist finger
set COMPLETE_ALIASES
내가 설정하고 싶은 다른 옵션 :
# turn on spelling correction
setopt correct
# don't save duplicates in command history
setopt histignoredups
# don't allow accidental file over-writes
setopt noclobber
밀고 터지는 것도 꽤 편리합니다.
# Always pushd when changing directory
setopt auto_pushd
# Have pushd with no arguments act like `pushd $HOME'.
setopt PUSHD_TO_HOME
짜증나게 홈 키와 종료 키는 기본적으로 다른 쉘에서와 같이 zsh에서 작동하지 않지만이 문제를 해결할 수 있습니다.
# Make home and end keys work.
[[ -z "$terminfo[khome]" ]] || bindkey -M emacs "$terminfo[khome]" beginning-of-line
[[ -z "$terminfo[kend]" ]] || bindkey -M emacs "$terminfo[kend]" end-of-line