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

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

4
เปลี่ยน sudo su shell
เมื่อใดก็ตามที่ฉันเรียกใช้sudo suจากปกติของฉันzsh(ซึ่งใช้เฟรมเวิร์กoh-my-zsh ) ฉันถูกบังคับให้ใช้เชลล์เป้าหมายเก่า ( sh) โดยค่าเริ่มต้น (ชัด ๆ นี่เป็นพฤติกรรมมาตรฐานในระบบที่เหมือน * nix) ถ้าฉันวิ่งzshจากภายในshหลังจากวิ่งsudo suฉันจะได้เปลือก Z แต่ไม่มีการปรับปรุงจาก oh-my-zsh มีวิธีใดบ้างที่จะเปลี่ยนการsudo suเปิดตัวเชลล์เป็นzsh? ถ้าเป็นเช่นนั้นก็เป็นไปได้ยังมีตัวอย่างของzshการเปิดตัวโดยใช้oh-my-zsh? ฉันใช้ OS X 10.8.4
13 macos  zsh  sudo  sh  oh-my-zsh 

3
oh-my-zsh เปิด autopushd หรือไม่ ฉันจะปิดได้อย่างไร
ดูเหมือนว่าฉันได้autopushdเปิดใช้งาน (ฉันรู้ว่าฉันไม่ได้เปิดใช้งาน) และมันค่อนข้างน่ารำคาญเพราะฉันชอบที่จะเลือกและเลือกเวลาที่จะใช้ไดเรกทอรีสแต็ก ฉันจะปิดได้autopushdอย่างไร ฉันได้ดู~/.zshrcแล้ว~/.oh-my-zsh/oh-my-zsh.shแต่ไม่พบอะไรเลย ฉันใช้ oh-my-zsh บน Mac OSX Lion
12 zsh  oh-my-zsh 

2
ฉันจะใส่ newline ใน zsh prompt ของฉันได้อย่างไร
ฉันพยายามแก้ไขปัญหาเล็กน้อย (แต่น่ารำคาญ) ด้วยพรอมต์ zsh ของฉัน ปัญหาที่ฉันเห็นคือเมื่อฉันใช้เทอร์มินัลในสภาพแวดล้อม GUI OS (เช่น Terminal.app หรือ iTerm 2 บน OS X 10.7.2) และปรับขนาดหน้าต่างเทอร์มินัลเทอร์มินัลจะถูกวาดใหม่ด้วยพรอมต์พิเศษ . ฉันได้ทำซ้ำปัญหาใน. zshrc ที่สะอาดที่มีสิ่งต่อไปนี้: export PROMPT="> " เพื่อความชัดเจนนั่นคือไฟล์สองบรรทัด มีการขึ้นบรรทัดใหม่ตามตัวอักษรในสตริงซึ่งฉันได้อ่านในหลายๆสถานที่( เก่าแก่ ) เป็นวิธีที่จะไป สิ่งนี้ทำงานได้จนกว่าฉันจะปรับขนาดหน้าต่างเทอร์มินัลเมื่อถึงจุดที่ฉันสิ้นสุดด้วยสตริงพรอมต์ซ้ำ ตัวอย่างเช่นถ้าฉันเปิดหน้าต่างใหม่ฉันเห็น ( *กำลังใช้ตัวยึดตำแหน่งแทนเคอร์เซอร์ของฉัน): Last login: Wed Jan 25 19:05:06 on ttys000 > * จากนั้นเมื่อฉันปรับขนาดหน้าต่างทำให้สั้นลงฉันก็จบลงด้วย: Last login: Wed Jan 25 …

2
ZSH: ทำอย่างไรถึงวิดเจ็ต ZLE โดยตรง
เอกสารอธิบายในส่วนที่18.4 วิดเจ็ตว่า "หน้าที่ของวิดเจ็ตเป็นเพียงการดำเนินการเล็ก ๆ น้อย ๆ " แต่ฉันไม่พบคำอธิบายทั่วไปวิธีเรียกใช้การกระทำเหล่านี้เช่นวิธีเรียกใช้วิดเจ็ต ผมเคยเห็นในตัวอย่าง (ตัวอย่างเช่นดูQ & A นี้ ) bindkey KEY WIDGETที่เครื่องมือถังสามารถผูกไว้กับปุ่มใช้ KEYจากนั้นหนึ่งสามารถเรียกเครื่องมือที่ใช้ ฉันต้องการสลับset-local-historyและพยายาม: $ zle set-local-history 1 zle: widgets can only be called when ZLE is active zle -hไม่ทำงาน แต่ฉันได้พบคำอธิบายของการขัดแย้งที่นี่ --callแต่ก็ไม่ได้ดูเหมือนมีบางสิ่งบางอย่างเช่น ผมทำอะไรผิดหรือเปล่า? เป็นไปได้อย่างไรในการเรียกใช้วิดเจ็ตที่ไม่มี bindkey ฉันจะพิมพ์สถานะปัจจุบันได้อย่างไร ( set-local-historyสลับสถานะ)
12 zsh 

3
ฉันจะทำให้การเติมเต็ม zsh ทำงานเหมือน Bash เสร็จสิ้นได้อย่างไร
ฉันเปลี่ยนเป็น zsh แต่ฉันไม่ชอบความสมบูรณ์ หากฉันมี 20 ไฟล์แต่ละไฟล์มีคำนำหน้าแชร์บนแท็บการกด zsh จะทำไฟล์แรกให้เสร็จสมบูรณ์จากนั้นจึงดำเนินการต่อผ่านรายการด้วยการกดแต่ละแท็บ ถ้าฉันต้องการหนึ่งใกล้จบฉันจะต้องกดแท็บหลายครั้ง ในทุบตีนี่เป็นแท็บที่กดง่ายและฉันจะได้คำนำหน้า หากฉันพิมพ์ต่อไป (และกดที่แท็บ) การทุบตีจะเสร็จสิ้นเท่าที่จะทำได้ ฉันพบว่าพฤติกรรมนี้ใช้งานง่ายกว่ามาก แต่ชอบคุณสมบัติอื่น ๆ ของ zsh เพื่อทุบตี มีวิธีที่จะทำให้สไตล์นี้สำเร็จหรือไม่? Google แนะนำsetopt bash_autolistแต่สิ่งนี้ไม่มีผลกับฉัน (และไม่มีข้อความแสดงข้อผิดพลาดพิมพ์เมื่อเริ่มต้นเชลล์ของฉัน) ขอบคุณ

5
เปลือกแบบขนาน
ฉันต้องการประมวลผลไฟล์จำนวนมากและเนื่องจากฉันมีแกนประมวลผลที่นี่ฉันต้องการทำแบบขนาน: for i in *.myfiles; do do_something $i `derived_params $i` other_params; done ฉันรู้จักโซลูชัน Makefile แต่คำสั่งของฉันต้องการอาร์กิวเมนต์จากรายการ globbing เชลล์ สิ่งที่ฉันพบคือ: > function pwait() { > while [ $(jobs -p | wc -l) -ge $1 ]; do > sleep 1 > done > } > หากต้องการใช้งานสิ่งที่ต้องทำคือใส่ & หลังงานและการเรียก pwait พารามิเตอร์กำหนดจำนวนของกระบวนการแบบขนาน: > for i …

3
ทำให้ซอฟต์แวร์รุ่นหนึ่งเป็นค่าเริ่มต้นใน Ubuntu
ปัจจุบันฉันมี php 2 รุ่นติดตั้งบน Ubuntu 12.04 อันหนึ่งสำหรับ php 5.3 ติดตั้งโดยใช้ apt-get ในขณะที่อีกอันหนึ่งถูกติดตั้งด้วย xampp พร้อม php 5.5 เมื่อฉันรันคำสั่งเหล่านี้: > which php /usr/bin/php > php --version PHP 5.3.10-1ubuntu3.8 with Suhosin-Patch (cli) (built: Sep 4 2013 20:05:42) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies with Xdebug …
11 linux  ubuntu  php  zsh  oh-my-zsh 

1
วิธีที่ดีกว่าในการอ่านบรรทัดอินพุตของผู้ใช้ใน zsh? (เช่นกับ zle?)
Zsh's readด้วยเหตุผลบางอย่างก็คือ echo'ing ^M's แทนการยอมรับพวกเขาเป็น<Enter>keystrokes (หาก-dตั้งไว้พวกมันจะถูกจดจำว่าเป็น<Enter>แต่ก็ยังคงดังก้องอยู่) และมันก็ไม่รองรับพื้นฐานเช่นปุ่ม Backspace ฉันจะได้รับรอบนี้โดยแฮ็ค / ทำงานbash, > a=$(bash -c 'read -e -p "What would you like to do?: " tmp; echo $tmp') What would you like to do?: eat cake > echo $a eat cake แต่ฉันสงสัยว่ามีวิธีที่สะอาดกว่านี้ไหม
11 zsh 

1
ประวัติการค้นหาย้อนหลังทำงานแตกต่างกันใน zsh กว่าทุบตี
ฉันhistory-search-backwardทำแผนที่เป็น PageUp แล้ว เมื่อฉันพิมพ์: git push <PageUp><PageUp><PageUp> ใน Bash มันจะเริ่มวนไปตามรายการประวัติทั้งหมดที่เริ่มต้นด้วยgit push ใน zsh มันเริ่มที่จะวงจรผ่านรายการประวัติทั้งหมดเริ่มต้นด้วยคอมไพล์จึงจะแสดงรายการดังกล่าวgit status, git remote updateฯลฯ นี้ไม่ได้เป็นสิ่งที่ฉันต้องการ ฉันจะให้ zsh ทำตัวเหมือนทุบตีได้อย่างไร? สิ่งที่setoptฉันควรจะตั้ง?
10 zsh 

2
วนรอบการแข่งขันใน ZSH เพิ่มขึ้นตามรูปแบบการค้นหาย้อนหลัง
ฉันเพิ่งสลับการค้นหาประวัติเพื่อใช้history-incremental-pattern-search-backwardเนื่องจากอนุญาตให้ใช้รูปแบบในการค้นหา นี่คือวิธีการติดตั้งในของฉัน.zshrc bindkey -M vicmd '/' history-incremental-pattern-search-backward มันใช้งานได้ดี แต่ฉันไม่สามารถหาวิธีที่จะไปที่การแข่งขันต่อไปจากเมนูค้นหา % cat foobarbaz.txt bck-i-search: f*baz มีกุญแจผูกพันที่จะทำเช่นนี้?
10 history  zsh 

1
ทำไมคำสั่งบางคำสั่ง (ยาวบ่อย) อ่านไม่ออกใน bash & zsh
หลายครั้งที่ฉันป้อนคำสั่งแบบยาวใน bash หรือ zsh (นี่เป็นเพียงกระสุนสองตัวที่ฉันคิดว่าฉันเห็นนี่) เคอร์เซอร์วาร์ปไปที่ไหนสักแห่งที่อยู่กลางสตริงที่ฉันป้อนทุกคนสามารถอธิบายได้ว่าทำไมถึงเป็นเช่นนี้ และถ้าบางสิ่งสามารถทำได้เกี่ยวกับเรื่องนี้? ฉันสังเกตเห็นว่าสิ่งนี้มักจะเกิดขึ้นเมื่อฉันเรียกดูประวัติของเชลล์ของฉัน (โดยใช้ปุ่มลูกศร) เมื่อฉันพบรายการที่ยาวรายการใหม่ที่ยาวจะผสมกับรายการก่อนหน้าโดยแสดงข้อความที่อ่านไม่ออก ฉันมีตัวอย่างที่มีสตริงสั้น ๆ ซึ่งฉันเพิ่งสังเกตเห็น: ประวัติประกอบด้วย: mkdir sune1 mkdir sune2 ถ้าฉันนำทางไปmkdir sune1และหลังจากนั้นจะmkdir sune2ผมจะคาดหวังบรรทัดคำสั่งของฉันจะmkdir sune2(ตั้งแต่นี้เป็นสิ่งที่ฉันได้ในขณะนี้เพื่อสำรวจ) - mkdir1sune2แต่ฉันได้รับ ฉันสังเกตเห็นสิ่งนี้บ่อย ๆ เป็นเวลาหลายปี แต่อย่าให้มันรบกวนฉันมากเกินไป แต่ฉันคิดว่ามันถึงเวลาสำหรับการเปลี่ยนแปลงแล้ว! ดังนั้นความคิดใด ๆ
10 bash  shell  zsh 


2
การเติมข้อความอัตโนมัติ zsh คอมไพล์
ฉันเพิ่งเปลี่ยนจาก bash เป็นการใช้ zsh 4.3.4 บน Ubuntu Hardy ฉันกำลังพัฒนาด้วย git และฉันพบว่าตัวเองต่อสู้อย่างต่อเนื่องกับความสำเร็จของคอมไพล์เริ่มต้น: การเติมชื่อไฟล์พยายามที่จะฉลาดโดยการตรวจสอบสิ่งที่คุณเพิ่มหรือลบ (ใช้ git-ls-files) แต่บางครั้งมันก็ผิดพลาด --- เช่นถ้าคุณอยู่ในไดเรกทอรีย่อย นอกจากนี้ยังไม่รู้เกี่ยวกับชื่อแทนคอมไพล์ที่กำหนดเองของฉัน (เช่น git ci เป็นนามแฝงสำหรับคอมมิท) zsh superusers ฉันจะปรับปรุงสถานการณ์นี้ได้อย่างไร? นี่คือความคิดบางอย่างของฉันแม้ว่าฉันจะไม่ทราบวิธีการใช้งานพวกเขาในขณะที่ฉันยังใหม่กับ zsh ดังนั้นบางทีคุณสามารถช่วยหรือเสนอของคุณเอง: ปิดใช้งานการเติมชื่อไฟล์ git ให้เหลือเพียง branch / tag / command-name / command-option แทนที่ความสมบูรณ์ของชื่อไฟล์ "สมาร์ท" ด้วยความสมบูรณ์ของชื่อไฟล์ zsh รับไฟล์ _git เสร็จสมบูรณ์ที่ใหม่กว่าถ้ามันแก้ไขข้อบกพร่องเหล่านี้และแทนที่หนึ่งในระบบ ขอบคุณ!
10 git  zsh 

3
ย้อนกลับการค้นหาประวัติด้วยนิพจน์ทั่วไป
ฉันกำลังมองหาเครื่องมือที่จะช่วยให้การค้นหาแบบย้อนกลับเพิ่มขึ้นด้วยการสนับสนุนการแสดงออกปกติอย่างง่าย ๆ (หรือเพียงแค่การแข่งขันหลายรายการ) ตัวอย่างเช่นหากฉันต้องการค้นหาคำสั่ง 'foo bar baz' ฉันสามารถทำสิ่งต่อไปนี้เพื่อค้นหาคำสั่งได้อย่างรวดเร็ว: CRTL-R (เริ่มค้นหา) พิมพ์ 'foo' (จับคู่คำสั่งล่าสุดโดยใช้ foo) พิมพ์ 'foo | baz' ต่อไป (ตรงกับคำสั่งล่าสุดที่มีคำว่า 'foo' และ 'baz' สิ่งนี้มีอยู่จริงหรือไม่? ถ้าไม่ฉันจะนำไปใช้กับตัวเองได้อย่างไร
10 bash  history  zsh 

1
คำสั่ง Alias ​​ว่างในเทอร์มินัล
ฉันต้องการล้างข้อมูลเทอร์มินัลเมื่อกดปุ่มส่งคำสั่งว่าง กล่าวอีกนัยหนึ่งฉันต้องการโทรหาclearเมื่อฉันกดEnterบนบรรทัดว่าง เป็นไปได้ไหม ฉันเข้าใจว่าไม่ใช่วิธีการทำงานของเครื่อง แต่อาจมีแฮ็คที่ดีเช่นการผูกปุ่ม Enter และการตรวจสอบเทอร์มินัลหรืออะไรบางอย่าง
9 terminal  zsh  xterm 

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