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

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

6
แยกค้นหาลูกศรขึ้นสำหรับประวัติ ZSH ในพื้นที่และทั่วโลก
เป็นไปได้ที่จะ ... เพิ่มประวัติเชลล์ ZSH ในพื้นที่ (การกระทำเกิดขึ้นในพรอมต์นั้นเท่านั้น) เพิ่มระดับประวัติ ZSH ทั่วโลก (เปิดใช้งานประวัติที่แชร์) - เริ่มต้นสิ่งที่เกิดขึ้นเมื่อคุณกดลูกศรขึ้นเมื่อเปิดใช้งานประวัติที่แชร์ ... แยกจากกัน ตัวอย่างหนึ่งอาจผูก CTRL + ขึ้นสำหรับประวัติศาสตร์โลกปกติสำหรับประวัติศาสตร์ท้องถิ่น ในขณะเดียวกันก็เหมาะสมที่จะใช้ประวัติศาสตร์โลกสำหรับการค้นหาประวัติย้อนหลัง (เช่นCTRL+ R) สิ่งนี้อาจเพิ่มความเร็วการดำเนินการเชลล์บางส่วนเนื่องจากการดำเนินการบางอย่างเฉพาะกับหน้าต่างเชลล์นั้นและคุณต้องการกลับไปใช้

4
ฉันจะกำหนดโหมดกลุ่มของ zsh ได้อย่างไร
ตกลงดังนั้นในที่สุดฉันก็ทำการเปลี่ยนแปลงที่ดี ใน. zshenv ของฉันฉันเปลี่ยน EDITOR ของฉัน: export EDITOR=vim มีคำถามสองสามข้อที่ฉันมีซึ่งเล็กมากจนฉันไม่ต้องการเริ่มคำถามแยกต่างหาก ที่นี่พวกเขาคือ: ฉันจะรับ zsh เพื่อแยกความแตกต่างระหว่างโหมดแทรกและโหมดคำสั่งเหมือนในกลุ่มได้อย่างไร? สิ่งนี้จะเปลี่ยนเคอร์เซอร์จากขีดเส้นใต้เป็นบล็อกเช่นเดียวกับในกลุ่ม แต่การแสดงข้อความที่ด้านล่างก็ใช้งานได้เช่นกัน ฉันจะทำให้มันทำตัวเหมือนเป็นกลุ่มได้อย่างไร? ตัวอย่างเช่นฉันต้องการอยู่ในโหมดคำสั่งโดยค่าเริ่มต้นและไม่ออกไปหลังจากคำสั่งเดียว
25 vim  zsh 

4
ฉันจะทำ Ctrl-Z และ bg ในหนึ่งปุ่มกดเพื่อให้กระบวนการดำเนินการต่อในพื้นหลังได้อย่างไร
ฉันทำตามรูปแบบนี้ของการหยุดงานแล้วปล่อยให้มันดำเนินการต่อบ่อยเกินไปกับCtrl-Z bgลำดับ ฉันสงสัยว่าจะมีวิธีใดในการบีบอัดข้อมูลนั้นไปยังปุ่มกดเดี่ยวหรือไม่ เปลือกของฉันคือ zsh

2
ฉันจะทำให้โหมด vi ของ zsh ทำงานเหมือนโหมด vi ของ bash ได้อย่างไร
ฉันชอบความเร็วทั่วไปของ zsh มาก แต่สองสิ่งที่ทำให้ฉันรำคาญ ผมต้องตีรอสักครู่ระหว่างการกดปุ่มหลบหนีและกดทับที่จะได้รับการค้นหาประวัติศาสตร์ (ถ้ามันตีเฉือนเร็วเกินไปที่จะกล่าวว่าzsh: do you wish to see all 514 possibilities (172 lines)) หลังจากเข้าสู่โหมดแทรกเนื่องจากมีการกดปุ่มaหรือAฉันไม่สามารถถอยถอยหลังผ่านจุดที่ฉันเข้าสู่โหมดแทรกได้ ฉันรู้ว่า 2 เหมือนคลาสสิค vi แต่ฉันชอบสไตล์ที่ดีกว่า
24 command-line  zsh 

2
ZSH เทียบเท่ากับ $ PROMPT_COMMAND ของ BASH คืออะไร
BASH สนับสนุน$PROMPT_COMMANDตัวแปรสภาพแวดล้อมที่กำหนดคำสั่งที่จะดำเนินการก่อนที่จะมีการโต้ตอบระดับแรก ฉันกำลังมองหา ZSH ที่เท่ากัน เอกสารบอกว่ามีฟังก์ชั่นที่precmdฉันสามารถนิยามได้ว่า; อย่างไรก็ตามฉันไม่ทราบวิธีการกำหนดจากตัวแปรสภาพแวดล้อม ฉันได้พิจารณาผ่านตัวแปรสภาพแวดล้อมที่จะทำให้ ZSH อ่านไฟล์ที่มีคำจำกัดความของฟังก์ชั่นนั้น แต่ ZSH ดูเหมือนจะไม่สนับสนุนสิ่งต่าง ๆ : มันอ่านเฉพาะไฟล์ทั่วโลกแล้วต่อไฟล์ผู้ใช้ ฉันสามารถแทนที่พวกเขา แต่ฉันไม่สามารถเพิ่มพวกเขาโดยไม่ต้องแก้ไขไฟล์ซึ่งฉันไม่สามารถทำได้ ดังนั้นฉันจะกำหนด hook pre-prompt ใน ZSH ผ่านตัวแปรสภาพแวดล้อมเช่นเดียวกับที่ฉันใช้$PROMPT_COMMANDใน BASH ได้อย่างไร

4
วิธีการจัดรูปแบบเส้นทางในพรอมต์ zsh?
ฉันชอบที่จะมีเส้นทางสีที่อ่านได้ ตัวอย่างเช่นแทนที่จะใช้% ~ เพื่อย้อนกลับ~/path/to/fooฉันต้องการจัดรูปแบบ~$RED/$NOCOLORpath$RED/$NOCOLORto$RED/$NOCOLORfooเพื่อเน้นตัวแยกเส้นทาง ฉันสามารถกำหนดเนื้อหาของ PROMPT เพื่อให้นิพจน์เส้นทางได้รับการประเมินอีกครั้งในแต่ละจอแสดงผลได้หรือไม่ สิ่งที่${${(%):-%~}//\//_some_format_expression/}เห็นได้ชัดไม่ทำงาน หรือฉันควรแฮ็คนี้ต่อไปและบังคับให้ค่า PROMPT ทำการรีเซ็ตทุกครั้งที่เราเปลี่ยนไดเรกทอรี โซลูชันใด ๆ ที่บรรลุเป้าหมายการจัดรูปแบบเส้นทางจะได้รับการต้อนรับ ขอบคุณ :)
23 zsh 

2
วนซ้ำคีย์ (หรือคู่ k / v) ในอาร์เรย์ที่เชื่อมโยง zsh หรือไม่
ใน zsh ฉันต้องการวนซ้ำแถวที่เชื่อมโยงกัน ฉันต้องการทั้งกุญแจและค่า แต่เมื่อฉันวนซ้ำแถวเชื่อมโยงตามปกติ ( for x in $assoc_array) ฉันจะได้รับเฉพาะค่า ตัวอย่างทั้งหมดที่ฉันได้ดูแสดงว่าได้รับคีย์คุณสามารถรับค่าของมันจากอาร์เรย์ที่เชื่อมโยง ปัญหาของฉันคือการได้รับชุดของคีย์เพื่อเริ่มต้นด้วย zsh รองรับการวนซ้ำคีย์ในอาร์เรย์ที่เชื่อมโยงหรือไม่
23 zsh 


1
oh-my-zsh และ prezto ต่างกันอย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Super User อพยพ 6 ปีที่แล้ว ฉันเข้าใจว่าทั้งOh-My-ZshและPreztoเป็นชุดของไฟล์ที่มีไว้เพื่อช่วยในการตั้งค่าการกำหนดค่า zsh (Z Shell) ของคุณ ใครช่วยกรุณาอธิบายสิ่งที่พวกเขากำลังทำที่แตกต่างจากการติดตั้งมาตรฐานของ Zsh และความแตกต่างที่สำคัญระหว่างทั้งสอง? หากเป็นไปได้คุณสามารถอธิบายสิ่งที่จะเป็นที่ต้องการสำหรับผู้ใช้ใหม่กับ zsh หรือไม่?
22 zsh 

2
มีโหมดการจับคู่แบบคลุมเครือสำหรับเชลล์ zsh หรือไม่
ฉันเพิ่งตกหลุมรักกับระบบเติมข้อความที่มีประสิทธิภาพ หนึ่งในประเภทของความสำเร็จที่ชื่นชอบของฉันเรียกว่าเสร็จสิ้นเลือน นี่คือโหมดที่โปรแกรมจะป้อนข้อมูลของผู้ใช้ให้เสร็จสมบูรณ์โดยใช้อักขระเพียงไม่กี่ตัวที่สามารถเกิดขึ้นได้ 'ที่ใดก็ได้' (เกือบ) ในชื่อไฟล์หรือพา ธ คุณลักษณะนี้มีอยู่อย่างน้อยสำหรับโปรแกรมเหล่านี้: TextMate ปลั๊กอิน Command-T Vim https://github.com/wincent/Command-T ระบบเสร็จสิ้นเป็นกลุ่มhttps://github.com/Shougo/neocomplcache IDEs ที่ทันสมัยหลากหลาย ตัวอย่างการใช้งานของโหมดนี้ในโปรแกรมแก้ไขข้อความ: ผู้ใช้พยายามกรอกคำว่า longWordNameThatTheyDontWantToWriteByHand และพวกเขาสามารถทำได้โดยพิมพ์เช่นตัวอักษรตัวแรกและตัวพิมพ์ใหญ่บางตัว ดังนั้นการพิมพ์lwntสามารถทำได้ทั้งคำ คำถามของฉันคือ: มีโหมดหรือสิ่งที่คล้ายกันที่ฉันสามารถใช้กับเปลือก zsh หรือไม่
22 zsh  autocomplete 

3
การผูก Fn-Delete ใน zsh บน Mac OS X
ใน zsh เมื่อใดก็ตามที่ฉันกด Fn + Delete (ซึ่งเป็นการลบไปข้างหน้า) จะมีการแทรก tilde (~) นี่บ่งชี้ว่า zsh ไม่มีคีย์ที่ผูกไว้ ฉันจะผูกมันและทำให้มันทำงานได้ตามปกติ (ลบที่ด้านหน้าของเคอร์เซอร์)
22 macos  keyboard  zsh 

1
วิธีสลับโหมดคำสั่ง vi ในบรรทัดคำสั่ง zsh อย่างสะดวกสบาย
ใน vi ฉันได้แมป 'jj' เพื่อหลบหนีเพื่อให้สามารถสลับไปยังโหมดคำสั่งได้โดยไม่ต้องใช้คีย์ Escape ที่น่ารำคาญ ตอนนี้ฉันต้องการให้เหมือนกันสำหรับการแก้ไขบรรทัดคำสั่งที่ฉันใช้โหมด vi ฉันพบวิธีแก้ไขปัญหาต่อไปนี้แล้ว: bindkey '^j' vi-cmd-mode ให้คุณเปลี่ยนได้ด้วย control-j เข้าสู่โหมดคำสั่ง ยังคงค้นหาวิธีแก้ปัญหาโดยไม่มีตัวแก้ไขคีย์เป็น 'jj' หรือสิ่งที่คล้ายกัน
22 command-line  zsh  vi 

1
ZSH แสดงคำสั่ง 16 คำสั่งล่าสุดที่มีประวัติเท่านั้น HISTSIZE & SAVEHIST คือ 500
ใน ZSH เมื่อฉันพิมพ์historyฉันจะแสดงคำสั่ง 16 คำสั่งล่าสุดเท่านั้น ฉันต้องการhistoryแสดงคำสั่งที่มีอยู่ทั้งหมดในไฟล์ประวัติ เมื่อฉันดูใน. zsh_history (ไฟล์ประวัติของฉัน) ฉันเห็นคำสั่งก่อนหน้าทั้งหมด 500 คำสั่งที่ควรมี ฉันดูในหน้า man แต่ไม่เห็นสิ่งใดที่ควบคุมจำนวนรายการประวัติที่แสดง ฉันก็ตรวจดูด้วยenvแต่ไม่เห็นอะไรที่สามารถควบคุมสิ่งนี้ได้ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม! ขอบคุณ
22 history  zsh 

4
zsh ปรับชิดขวาใน ps1
ฉันต้องการพรอมต์ zsh แบบหลายบรรทัดพร้อมส่วนที่ถูกจัดชิดขวาซึ่งจะมีลักษณะดังนี้: 2.nate@host:/current/dir 16:00 -> ฉันรู้เกี่ยวกับ RPROMPT ใน zsh แต่นั่นมีพรอมต์ที่ถูกจัดชิดตรงข้ามกับพรอมต์ปกติของคุณซึ่งอยู่บนบรรทัดข้อความเดียวกับการพิมพ์ของคุณ มีวิธีที่จะมีส่วนที่จัดชิดขวาไปที่บรรทัดแรกของพรอมต์คำสั่งหลายบรรทัด? ฉันกำลังมองหาคำสั่งในตัวแปร PS1 ที่ระบุว่า "จัดแนวขวาตอนนี้" หรือตัวแปรที่เป็น PS1 สิ่งที่ RPROMPT คือ PROMPT ขอบคุณ!
21 zsh  prompt 

2
zsh, ลูกศรขึ้นซ้ำคำสั่งที่ไม่ซ้ำเท่านั้น?
ฉันกำลังมองหาการตั้งค่าที่จะทำให้เมื่อฉันกดปุ่มลูกศรขึ้น zsh แสดงคำสั่งที่ฉันเพิ่งแก้ไข ที่จับคือฉันต้องการเพียงคำสั่งที่ไม่ซ้ำกัน ปัจจุบันถ้าฉันพิมพ์echo "hello world"50 ครั้งฉันต้องกดลูกศรขึ้น 50 ครั้งเพื่อรับคำสั่ง i ที่ใช้ก่อนพิมพ์คำสั่ง echo นี่เป็นเรื่องที่น่ารำคาญที่จะพูดน้อยที่สุด มีความคิดใดเกี่ยวกับการตั้งค่าที่ฉันต้องเปิด / ปิดใช้งานหรือไม่
21 terminal  history  zsh 

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