คำถามติดแท็ก zsh

Zsh เป็นเชลล์ที่ออกแบบมาสำหรับการใช้งานแบบโต้ตอบแม้ว่ามันจะเป็นภาษาสคริปต์ที่ทรงพลังเช่นกัน

1
ฟังก์ชันคำสั่ง zsh post / hook
มี precmd ของ zsh เทียบเท่ากับการทำหน้าที่หลังจากคำสั่งเสร็จสิ้นหรือไม่? ฉันกำลังมองหาวิธีที่จะส่งการแจ้งเตือนตัวเองสำหรับกระบวนการใด ๆ ที่ใช้เวลานานกว่า 60 วินาที Zsh มีความสามารถที่ดีในการพิมพ์ข้อมูลสรุปของทรัพยากรที่ใช้สำหรับแต่ละคำสั่งหากคำสั่งใช้เวลานานกว่าค่าที่ตั้งไว้ใน REPORTTIME วินาที จากสิ่งที่ฉันสามารถบอกได้ตัวเลือกเดียวที่มีคือการพิมพ์รูปแบบใน TIMEFMT (โดยเฉพาะอย่างยิ่งฉันต้องการส่งการแจ้งเตือนด้วยตนเองด้วยhttps://pushover.net/หากกระบวนการใด ๆ ที่ทำงานในเซสชั่น tmux ที่แยกออกใช้เวลานานกว่า 60 วินาทีในการดำเนินการให้เสร็จ)
17 shell  zsh 

1
ฉันจะเลือกปิดใช้งานการรวมการควบคุมเวอร์ชันของ zsh ได้อย่างไรเมื่อ CWD ของฉันอยู่ในระบบไฟล์ระยะไกล
ฉันใช้ zsh บน OSX และในบางครั้งฉันต้องทำงานบนโวลุ่ม sshfs ที่ติดตั้ง อย่างไรก็ตามคอมไพล์ช้ากว่าการเมานท์ sshfs จริงๆ ข้อความแจ้งของฉันใช้ประโยชน์จากโหมด vc ที่ zsh มีให้ในตัว แต่ในกรณีนี้ฉันต้องการข้ามส่วนนั้น ฉันต้องการปิดการใช้งานการรวม vc ทุกครั้งที่ CWD ของฉันอยู่ในระบบไฟล์ที่ติดตั้ง ฉันจะทำสิ่งนั้นได้อย่างไร ฉันกำลังเปิดใช้งานข้อมูลคอมไพล์ในพรอมต์ของฉันโดยใช้ (โดยประมาณ) ตัวอย่างของไฟล์. zshrc ของฉัน (ดี,. -oh-my-zsh / ธีม แต่คุณเข้าใจ): zstyle ':vcs_info:*' enable hg git bzr svn p4 zstyle ':vcs_info:(hg*|git*):*' get-revision true zstyle ':vcs_info:(hg*|git*):*' check-for-changes true # rev+changes …

10
Cygwin / Git Bizarre Terminal ฉบับที่ออก
เอาล่ะนี่มันแปลก ก่อนอื่นนี่คือ mintty ที่ทำงานบน cygwin ที่ทันสมัยโดยมีคอมไพล์ดึงมาจาก setup.exe ของ cygwin ฉันกำลังวิ่งจู่โจม $ git clone https://<user>@<domain>/<repository>/ ~/src/project/dev Initialized empty Git repository in /cygdrive/c/src/project/dev/.git/ Password: <actual password in plain text appears> # Nothing happens... ^C $ <password text that I just typed> zsh: command not found: <same password text> เกิดขึ้นที่นี่คืออะไร? นี่เป็นปัญหาขั้วปัญหาเปลือกปัญหา git หรือปัญหา …
16 cygwin  git  zsh  mintty 

2
วิธีการทำ ctrl + p ทำงานเหมือนกับลูกศรขึ้นใน zsh?
ก่อนอื่นฉันกำลังใช้ zsh และoh-my-zshโดยแทบจะไม่มีการปรับแต่งอื่น ๆ ใน zsh เมื่อฉันกดลูกศรขึ้นมันนำคำสั่งล่าสุดมาให้ฉัน และถ้าฉันพิมพ์ตัวอักษรบางตัวก่อนที่ฉันจะกดลูกศรขึ้นมันจะทำให้คำสั่งล่าสุดที่เริ่มต้นด้วยตัวละครเหล่านั้น มันค่อนข้างเป็นคุณสมบัติที่มีประโยชน์เนื่องจากฉันออกคำสั่ง git / vim / scp จำนวนมากหรือ แต่ตอนนี้ฉันเปลี่ยนไปใช้แป้นพิมพ์ที่ไม่มีปุ่มลูกศรและฉันมักจะใช้ctrl+ pแทนที่จะเป็นลูกศรขึ้นเพื่อให้การบันทึกประวัติศาสตร์เสร็จสมบูรณ์ อย่างไรก็ตามไม่ว่าฉันจะพิมพ์ตัวอักษรมากน้อยแค่ไหนก่อนกดctrl+ pมันจะนำคำสั่งล่าสุดมาให้ฉันเสมอ (ไม่ใช่ตัวอักษรตัวล่าสุดที่ขึ้นต้นด้วยตัวอักษรเหล่านั้น) ฉันควรกำหนดค่า zsh (หรือ oh-my-zsh) เพื่อแก้ไขปัญหานี้อย่างไร
15 shell  zsh 

3
รับฟังก์ชั่น Into PS1 (Zsh)?
ใช้งานได้ในbash( parse_git_branchเป็นฟังก์ชันที่กำหนดไว้) export PS1="\$(parse_git_branch)" แต่ฉันไม่สามารถเข้าใจสิ่งที่เทียบเท่าzshได้ หมายเหตุ:ถ้าฉันทำ PROMPT="$(parse_git_branch)" ดูเหมือนว่าจะใช้งานได้ แต่ในความเป็นจริงมันกำลังรันคำสั่งเมื่อฉันตั้งค่าพรอมต์ซึ่งไม่ใช่ประเด็น
15 zsh  prompt 

1
วิธีการ 'source' เชลล์สคริปต์โดยใช้ bash จาก zsh
ฉันใช้ zsh และชอบมันมาก แต่ทำงานได้มากกับแหล่ง Android ที่มีสคริปต์การคอมไพล์ที่ต้องการประเมินค่า bash อย่างถูกต้อง สคริปต์เหล่านี้จำเป็นต้องมีแหล่งที่มาก่อนการรวบรวมและกำหนดตัวแปรสภาพแวดล้อมและฟังก์ชั่นเชลล์ที่ใช้ในระหว่างการรวบรวม Zsh ไม่สามารถหาแหล่งไฟล์เหล่านี้ได้และหากฉันพยายามที่จะออกemulate bashเชลล์ของฉันกลายเป็นฟังก์ชั่นที่ไม่ทำงานพร้อมข้อผิดพลาดมากมายทุกครั้งที่ฉันกด Space (ฉันใช้ oh-my-zsh อาจเป็นสาเหตุได้หรือไม่): url-quote-magic:24: bad pattern: ( ):/(|/localhost)/* มีวิธีใดที่ฉันจะไม่เปลี่ยนเป็น bash เพื่อประเมินไฟล์เหล่านี้หรือเรียกใช้งาน bash instance และนำเข้าตัวแปร / ฟังก์ชั่นสภาพแวดล้อมใหม่ที่กำหนดไว้ในระหว่างการจัดหาเข้าสู่เซสชัน zsh ของฉัน หรือฉันถูกกำหนดให้เปลี่ยนเป็น bash ทุกครั้งที่ฉันต้องทำงานกับ Android? แก้ไข : พบคำตอบสำหรับคำถามของฉันเอง ดูเหมือนว่าการจัดหาไฟล์โดยใช้เชลล์ตัวอื่นจะไม่สามารถทำได้ แต่ในกรณีที่ไฟล์มาโคร Android ล้มเหลวหน้านี้จะนำการแก้ไข: http://nilvec.com/building-cyanogen-from-source/ โดยพื้นฐานแล้วการตั้งค่าอย่างง่ายunsetopt nomatchจะขอให้ zsh หยุดการบ่นเกี่ยวกับ wildcard ที่ไม่ตรงกันซึ่งเพียงพอที่จะทำให้สคริปต์ดำเนินการให้เสร็จสิ้น ยังคงมีข้อผิดพลาดอีกข้อหนึ่งเกี่ยวกับการใช้completeคำสั่ง …
14 bash  zsh  oh-my-zsh 

2
ฉันจะค้นหาประวัติคำสั่งของฉันที่ทำงานกับ tmux และ zshell ได้อย่างไร
ฉันใช้ zshell และกำลังทดสอบ tmux ในกรณีที่ฉันกดปุ่มcontrol-Rมันจะปิดbck-i-searchและฉันสามารถเริ่มพิมพ์เพื่อจับคู่คำสั่งที่ป้อนก่อนหน้านี้ เมื่ออยู่ใน tmux control-Rดูเหมือนจะไม่ทำอะไรเลย ฉันได้ลองค้นหาไปรอบ ๆ แต่ดูเหมือนจะหาเหตุผล / วิธีแก้ปัญหาไม่ได้
14 zsh  tmux 

11
ไฟล์บันทึกประวัติ bash / zsh ต่อไดเรกทอรี
ฉันพบว่าฉันทำงานหลายอย่างในโครงการในไดเรกทอรีชุด บางครั้งฉันก็ต้องทำซ้ำบางอย่างในโครงการนั้น แต่ฉันจำไม่ได้ว่าทำอะไร ฉันใช้ Mercurial หรือ Git เพื่อติดตามการเปลี่ยนแปลงของไฟล์แต่ฉันต้องการที่จะจำคำสั่งที่ฉันใช้ในไดเรกทอรีนั้น การค้นหาประวัติเชลล์ของฉันไม่ค่อยมีประโยชน์ ฉันบันทึกทุกอย่างไว้ในไฟล์ประวัติ * _ แล้ว แต่ฉันต้องการรายการสิ่งที่ฉันทำใน ~ / foo / bar และไม่ใช่สิ่งอื่น ๆ (ล้าน) ที่ฉันทำในสัปดาห์นั้น ฉันอาจจำไม่ได้ว่าเดือนใดที่ฉันทำงานในโปรเจ็กต์นั้น ใครบ้างมีความคิดใด ๆ วิธีล็อกไฟล์ไดเรกทอรีโครงการของคำสั่งเชลล์ทั้งหมดที่ฉันใช้? ฉันนึกภาพออกคำสั่งเช่น: ทำงานโครงการของฉัน ... ซึ่งจะตั้งค่าล็อกไฟล์เชลล์เป็น ~ / myproject / .history.log โหลดประวัติก่อนหน้าจากล็อกไฟล์นั้นและอาจอัปเดตพรอมต์ของฉันเพื่อบอกฉันว่าไดเรกทอรีใดที่ฉันใช้งานอยู่ (เช่น vcprompt เพื่อให้รุ่น ข้อมูลการควบคุม) มีอะไรแบบนี้มั้ย
14 linux  bash  shell  history  zsh 

5
วิธีการเปลี่ยนชื่อเทอร์มินัลชื่อเทอร์มินัล ZSH บนเดเบียน
ผมไม่ทราบว่าผมควรจะขอได้ที่นี่หรือที่ unix.stackexchange.com ผมพบว่าคำถามนี้ที่นี่ คำถามของฉันคือคล้ายผมต้องการที่จะเปลี่ยนชื่อของสถานีที่ฉันใช้ distro Debian ตาม Terminator และ ZSH โอ้ฉัน-zsh ชื่อถูกปรับด้วยทุบตี แต่เมื่อผมย้ายไป ZSH มันแสดงให้เห็นว่า/bin/zshเป็น หัวข้อ.
14 linux  terminal  debian  zsh 

2
'd' ทำอะไรใน oh-my-zsh
ฉันเพิ่งดาวน์โหลด oh-my-zsh และพบว่า 'd' ถูกยึดโดยคำสั่งบางอย่างที่ฉันไม่รู้ ไม่มีใครรู้ว่าผลลัพธ์จากสิ่งนี้คืออะไร? 0 ~/Desktop/Dropbox/project_Sites/rails_app/app/views/static_pages 1 ~/Desktop/Dropbox/project_Sites/rails_app/app/views 2 ~/Desktop/Dropbox/project_Sites/rails_app 3 ~/Desktop/Dropbox/project_Sites 4 ~/Desktop/Dropbox 5 ~ 6 ~/.oh-my-zsh 7 ~/.oh-my-zsh/plugins 8 ~/.oh-my-zsh/plugins/rails 9 ~/.oh-my-zsh/lib
14 zsh  oh-my-zsh 

3
iTerm / Terminal OS X ช้าในการเปิดเปลือก
ฉันใช้ OS X 10.8 และเมื่อเร็ว ๆ นี้ฉันสังเกตเห็นว่า iTerm2 บางครั้งอาจช้ามากเมื่อเปิดเชลล์ใหม่ ใช้เวลาประมาณ 5 วินาทีก่อนที่ฉันจะทำอะไรได้บ้าง อาจดูเหมือนจะไม่มาก แต่ฉันทำงานมากในเปลือกเพื่อที่จะได้น่ารำคาญสวย ฉันใช้ ZSH กับ oh-my-zsh ฉันได้ลองใช้ Terminal ถอนการติดตั้ง oh-my-zsh ล้างทุกอย่างที่ไม่จำเป็นจากไฟล์เริ่มต้น (.zshenv, .zlogin, .zprofile, .zshrc, .zlogout) และล้างไฟล์ ASL ใน / var / log / asl และ แม้ว่ามันจะลดลงเล็กน้อย (เช่น 0.20 วินาที) แต่ก็ไม่มีอะไรที่จะทำให้มันเป็นไปได้ในทันทีหรือต่ำกว่า 3.0s ไม่มีใครมีความคิดอื่นอีกไหม?
14 macos  zsh 

2
เป็นไปได้หรือไม่ที่จะใช้พฤติกรรมการเลือกเมนู zsh ที่แตกต่างกันสำหรับคำสั่งต่าง ๆ ?
ฉันกำลังใช้menu selectพฤติกรรมในzshซึ่งจะเรียกเมนูด้านล่างเคอร์เซอร์ที่คุณสามารถดูความเป็นไปได้ต่างๆ ตัวเลือก. zshrc ที่ฉันตั้งไว้สำหรับสิ่งนี้คือ zstyle ':completion:*' menu select=2 ตามค่าเริ่มต้นการกดReturnเพื่อเลือกความเป็นไปได้ในเมนูนี้จะทำให้คำสมบูรณ์เท่านั้น - ไม่ได้ส่งคำสั่งจริง ตัวอย่างเช่นฉันอาจได้รับเมนูเช่นนี้ ~ % cd de<TAB> completing directory: [Desktop/] Development/ การกดReturnที่นี่จะส่งผลให้ ~ % cd Desktop/ จากนั้นผมก็ต้องกดสองเวลาในการส่งจริงคำสั่งReturn ฉันสามารถปรับเปลี่ยนพฤติกรรมนี้เพื่อให้การกดReturnทั้งสองเลือกความสมบูรณ์และส่งคำสั่งโดยทำสิ่งนี้ bindkey -M menuselect '^M' .accept-line อย่างไรก็ตามมีปัญหากับเรื่องนี้: บางครั้งฉันต้องกรอกไฟล์หรือไดเรกทอรีโดยไม่ต้องส่งคำสั่ง ตัวอย่างเช่นฉันอาจต้องทำln -s Desktop Desktop2- ด้วยbindkeyพฤติกรรมนี้การพยายามทำให้เดสก์ท็อปเสร็จสมบูรณ์จะส่งผลให้ln -s Desktop/ถูกส่งเป็นคำสั่งและแน่นอนว่าฉันไม่ต้องการสิ่งนั้น ฉันรู้ว่าเพียงแค่กดปุ่มเว้นวรรคจะให้ฉันขึ้นกับคำสั่ง แต่ตอนนี้มันเป็นนิสัย ได้รับนี้มีวิธีที่จะทำให้มันมีเพียงบางคำสั่งให้คุณกดReturnหนึ่งครั้ง (เช่นcd) แต่คำสั่งอื่น ๆทั้งหมดต้องกดมันสองครั้ง?

3
เหตุใดเครื่องหมายเปอร์เซ็นต์จึงปรากฏขึ้นก่อนที่แต่ละพรอมต์บน zsh ใน Windows
ฉันได้รับการตั้งค่า zsh ใน Windows และฉันได้รับสัญลักษณ์ย้อนกลับ (สีดำบนพื้นขาว (พื้นหลังเทอร์มินัลสีดำ)) ในตำแหน่งอักขระตัวแรกในบรรทัดเหนือทุกคำเตือน โดยทั่วไปนั่นหมายความว่าไม่มีการขึ้นบรรทัดใหม่ในตอนท้ายของไฟล์เช่นเมื่อทำการcatเปิดไฟล์ มันไม่ได้เกิดขึ้นบน Mac ของฉันหรือแม้กระทั่งใน Mintty บน Windows แต่มันเกิดขึ้นใน ConEmu และแอปเทอร์มินัลมาตรฐานที่ CMD.EXE มักใช้งาน ฉันได้รับunsetสตริงพรอมต์ทั้งหมดของฉันแล้วprecmd()ซึ่งโดยปกติฉันจะใช้เพื่อเพิ่มบรรทัดว่างด้านบนของพรอมต์ เบาะแสอะไรที่มันอาจจะเป็น?

1
ข้อยกเว้นสำหรับคุณสมบัติ zsh correctall?
ฉันใช้correctallตัวเลือกในzshและฉันมักจะมีความสุขกับมัน อย่างไรก็ตามมีบางสถานการณ์ที่ฉันพบว่าคุณสมบัตินี้น่ารำคาญอย่างมาก ตัวอย่างเช่นสมมติว่าฉันมีไฟล์file1.texและฉันต้องการสร้างสำเนาที่เรียกว่าfile2.texซึ่งฉันจะแก้ไขเพื่อทำการเปลี่ยนแปลงบางอย่าง ฉันจะทำ cp file1.tex file2.tex เพียงเพื่อจะบอกzshว่าผมอาจจะสะกดผิดและถ้าผมต้องการที่จะแก้ไขมัน file2.texfile1.tex สิ่งที่เกิดขึ้นคือ: เมื่อzshพยายามตรวจสอบการสะกดคำจะมีการค้นหาในไดเรกทอรีปัจจุบันของไฟล์ที่เรียกว่าfile2.texไม่พบ แต่พบfile1.texและสันนิษฐานว่าฉันสะกดผิดfile1.texและถามฉันว่าต้องการแก้ไขไหม ที่เกิดขึ้นกับผมจึงมักจะเห็นว่าที่จริงผมล้างค่าตัวเลือกและการใช้งานเท่านั้นcorrectall correctอย่างไรก็ตามพิมพ์ดีดไม่ดีเหมือนฉันฉันพลาดcorrectallตัวเลือกจริงๆ ดังนั้นคำถามของฉัน: มีวิธีใดที่จะบอกzshไม่ให้แก้ไขอาร์กิวเมนต์สุดท้ายของcpคำสั่งหรือไม่? (ฉันรู้ว่าฉันสามารถรับผลลัพธ์ที่ต้องการได้โดยการแก้ไขการตั้งค่าความสมบูรณ์cpแต่ฉันยังต้องการให้มีข้อโต้แย้งที่ผ่านมาฉันไม่ต้องการแก้ไขอัตโนมัติอีกครั้ง)
13 zsh  autocorrect 

3
ในตัวแก้ไขบรรทัด ZSH วิธีแทรกบรรทัดใหม่
สมมติว่าฉันกำลังแก้ไขบรรทัดเดียวด้วยเคอร์เซอร์ของฉันที่ตำแหน่งที่ระบุ: $ abc ꕯ def ghi ตอนนี้ฉันต้องการแยกออกเป็นสองบรรทัดและทำการแก้ไขต่อไป (เช่นกดปุ่ม ENTER จะทำในโปรแกรมแก้ไขข้อความ): $ abc $ ꕯ def ghi มีวิธีทำเช่นนี้ใน ZSH หรือไม่?
13 zsh 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.