ตั้งค่าการเยื้องสำหรับฟังก์ชันเชลล์สคริปต์


11

ฉันพยายามตั้งค่าจำนวนช่องว่างต่อการเยื้องเพื่อเริ่มฟังก์ชั่นใหม่ในsh-mode(โหมดย่อย bash) ฉันลองตั้งค่าแล้ว:

'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)

(ดังแสดงในcustom-set-variablesใน.emacs) และคนอื่น ๆ เช่นกัน แต่ไม่มีของพวกเขาได้มีผลกระทบใด ๆ !


วิธีตั้งค่าตัวแปรไม่ได้ผ่านcustom-set-variables(ซึ่งเป็นสิ่งที่ใช้ภายในโดยปรับแต่ง แต่ไม่ได้ตั้งใจจะใช้ด้วยมือ) (setq sh-basic-offset 2)ใช้สิ่งที่ดีกว่าเช่น
Stefan

คำตอบ:


7

การตั้งค่าsh-basic-offsetการเยื้องที่จำเป็นคือสิ่งที่จำเป็น - แต่สิ่งที่ฉันไม่ได้ตระหนักถึงก็จำเป็นต้องปิดและเปิดไฟล์เชลล์สคริปต์ทั้งหมดอีกครั้งก่อนที่การปรับแต่งจะมีผล ฉันจำไม่ได้ว่าเคยทำเช่นนี้มาก่อนใน emacs


1
หลังจากเปลี่ยน.emacsคุณต้องออกจาก emacs และเริ่มใหม่หรือใช้M-x load-fileเพื่อโหลดของคุณใหม่.emacsหากคุณต้องการโหลดไฟล์ที่คุณเปิดไว้ในโปรแกรมแก้ไขคุณสามารถพูดC-x C-v RETURNกับ "revisit" ได้
อเล็กซ์ L

@AlexL โหลดไฟล์ไม่ทำงานในกรณีนี้โดยเฉพาะ อย่างที่ฉันบอกไปนี่เป็นเรื่องแปลกมาก โดยปกติแล้วการปรับแต่งตัวแปรก็เพียงพอแล้ว
Robin Green

อืม ... คุณรู้หรือไม่ว่าทำไมถึงเป็น @ robin-green ฉันอยากรู้.
Alex L

นอกจากนี้คุณยังสามารถใช้M-x set-variableถ้าคุณต้องการเพียงแค่เปลี่ยนนี้เป็น buffer คุณกำลังทำงานใน.
kotakotakota

1

ฉันตั้งค่าพื้นฐานชดเชยเป็น 2 แต่ดูเหมือนว่าจะไม่ทำงานฉันก็กลับไปกดC-h v sh-<TAB>แล้วก็รู้ว่ามีsh-indentationฉันตั้งค่าตัวแปรนั้นเป็น 2 และทุกอย่างดูเหมือนจะทำงานเหมือนมีเสน่ห์ตอนนี้


โปรดอธิบายสิ่งที่คุณหมายถึง "การตั้งพื้นฐานชดเชย" พร้อมทั้งเรียนชี้แจงว่าวิธีการที่คุณ "ชุดว่าตัวแปร 2"
Stefan

แท็บละเว้นฟอรัมเนื่องจากฉันอยู่ระหว่างอักขระมากกว่าและน้อยกว่า Ch v sh- "กดแท็บ" เติมข้อความอัตโนมัติจะแสดงรายการของตัวแปร
Albaro Pereyra

ฉันแก้ไขมาร์กอัพของคุณ แต่ความคิดเห็นของคุณยังไม่ได้อธิบายว่าคุณหมายถึงอะไรโดย "set-basic-offset" หรือวิธีที่คุณ "ตั้งค่าตัวแปรนั้นเป็น 2"
Stefan

ตัวแปรนี้ล้าสมัยตั้งแต่ 26.1 ใช้sh-basic-offsetแทน
goetzc

0

ฉันมีประสบการณ์แบบเดียวกับ Albaro: การตั้งค่า sh-basic-offset ไม่มีผลใด ๆ แต่การตั้งค่าการเยื้อง sh-เยื้องตามที่คาดไว้

ในกรณีของฉันฉันประเมิน(setq sh-basic-offset 2)ด้วย emacs เช่น ผ่าน Mx eval-expression GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debianฉันกำลังทำงาน โหมดหลักของฉันคือ Shell-script

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