Score:0

จะแก้ไขข้อผิดพลาดทางไวยากรณ์ของ bash ขณะตั้งค่าธีม Solarized สำหรับ WSLtty ได้อย่างไร

ธง br

ฉันกำลังพยายามตั้งค่าธีม Solarized สำหรับเทอร์มินัล WSLtty ดังนั้นฉันจึงทำตาม คู่มือ 2 ขั้นตอนนี้.

ฉันไม่ต้องการติดตั้งปลา ดังนั้นฉันจึงมุ่งเน้นไปที่ 2 ขั้นตอนแรกเท่านั้น

แต่เมื่อฉันวิ่ง:

eval (dircolors -c ~/.dir_colors | sed 's/>&\/dev\/null$//')

มันทำให้ฉันมีข้อผิดพลาดนี้:

-bash: ข้อผิดพลาดทางไวยากรณ์ใกล้กับโทเค็น `dircolors' ที่ไม่คาดคิด
hr flag
ลิงก์ของคุณใช้งานไม่ได้สำหรับฉัน อย่างไรก็ตาม ไวยากรณ์ของ *command substitution* ใน bash คือ `$(command)` แทนที่จะเป็น `(command)` ของ Fish shell - ดูตัวอย่าง [Fish ที่เทียบเท่ากับ bash $(command) สัญกรณ์ ](https://stackoverflow.com/a/20918951/4440445)
Godspeed avatar
br flag
ฉันเปลี่ยนลิงค์แล้ว ฉันรันคำสั่งเดียวกันเช่นนี้ eval $(dircolors -c ~/.dir_colors | sed 's/>&\/dev\/null$//') และมันทำให้ฉันเกิดข้อผิดพลาดนี้ตอนนี้ setenv: ไม่พบคำสั่ง
muru avatar
us flag
ดูเหมือนว่าควรจะทำงานใน 'ปลา'? บทความวางไว้ใน `~/.config/fish/conf.d/omf.fish` คุณต้องการเกิดอะไรขึ้นกับคำสั่งนั้น
Godspeed avatar
br flag
ฉันต้องการตั้งค่าธีมโซลาร์ไลซ์สำหรับเทอร์มินัล wsltty ของฉัน คำสั่งจะใช้ในการติดตั้งสีพื้นฐาน
pLumo avatar
in flag
บทช่วยสอนนี้มีไว้สำหรับ `fish` อย่างชัดเจน ดังนั้นจึงใช้งานไม่ได้ใน `bash` คุณจะไม่เรียกใช้โค้ด `python` ด้วย `php`
Artur Meinild avatar
vn flag
ฉันไม่เชื่อว่าไม่มีประเด็นใดในการเรียกใช้คำสั่งนั้นเลย
Score:0
ธง vn

ฉันขอเสนอว่าคุณคือ:

  • ทำตามคำแนะนำที่มีอายุเกือบ 4 ปีเพื่อตั้งค่า WSL ของคุณ WSL มีอายุประมาณ 6 ปีเท่านั้น และมีการเปลี่ยนแปลงมากมายในช่วงไม่กี่ปีที่ผ่านมา แม้แต่กระดองปลาก็มีวิวัฒนาการค่อนข้างน้อยในช่วงเวลานั้น (แม้ว่าการเปลี่ยนแปลงของปลาจะไม่ใช่ส่วนหนึ่งของปัญหาของคุณก็ตาม)

  • พยายาม "ข้ามขั้นตอนบางอย่าง" เช่น การใช้เปลือกปลา คำแนะนำนั้นเขียนขึ้นอย่างชัดเจนโดยคำนึงถึงปลาเป็นหลัก และตามที่ได้ชี้ให้เห็นในความคิดเห็น อย่างน้อยคำสั่งนั้นก็เขียนด้วยไวยากรณ์ของปลา แทนที่จะเป็น Bash/POSIX

  • ถามเกี่ยวกับ WSLtty ซึ่งเป็นโปรแกรม Windows บน AskUbuntu.com เราถือว่าคำถาม WSL เป็นหัวข้อที่นี่ ตราบใดที่คำถามนั้นเกี่ยวข้องกับ Ubuntu แต่คุณจะพบกับความเชี่ยวชาญของ Ubuntu ที่นี่มากกว่า WSL และแม้แต่น้อยกว่าใน WSLtty

    ที่กล่าวว่าความเชี่ยวชาญเกี่ยวกับ WSLtty อาจขาดแคลนในทุกที่ในปัจจุบัน นี่เป็นอีกผลข้างเคียงของความจริงที่ว่าเมื่อ 4 ปีที่แล้ว สิ่งต่าง ๆ เปลี่ยนไปมาก ในตอนนั้น ฉันใช้ WSLtty ซึ่งถือว่าเป็นตัวเลือกเทอร์มินัลที่ดีที่สุดสำหรับ WSL และอาจให้ความช่วยเหลือได้


ให้ฉันเสนอทางเลือกอื่น เนื่องจากฉันไม่สามารถช่วยคุณได้ (และน่าจะไม่มีใครที่นี่ใน Ask Ubuntu สามารถทำได้) บน WSLtty:

ประการแรก ในขณะที่ WSLtty นั้นยอดเยี่ยมในช่วงเวลานั้น แต่โลกส่วนใหญ่ของ WSL ได้เดินหน้าต่อไปแล้วในตอนนี้ Windows เทอร์มินัล มีมาสองสามปีแล้ว Windows Terminal คือ:

  • จากไมโครซอฟต์
  • โอเพ่นซอร์ส (ที่เก็บ Github)
  • สามารถตรวจจับและกำหนดค่าโปรไฟล์สำหรับ WSL โดยอัตโนมัติ (รวมถึง PowerShell, CMD, Git Bash และอื่นๆ) เมื่อเปิดตัว
  • พัฒนาอย่างแข็งขัน
  • ออกแบบมาเพื่อแทนที่ Windows Console Host รุ่นเก่า (เทอร์มินัลที่เปิดใช้งานเมื่อคุณเรียกใช้ "Ubuntu" ใน WSL จากเมนู Start ตามค่าเริ่มต้นใน Windows 10)
  • กำหนดค่าเป็นเทอร์มินัลเริ่มต้นใน Windows 11
  • ฟีเจอร์มากมาย: แบบแท็บ การผูกปุ่มที่กำหนดค่าได้ มีในตัว โครงร่างสี (รวมถึงแสงจากแสงอาทิตย์และความมืด) เป็นต้น

จับส่วนสุดท้ายที่? ธีม Solarized จะรวมอยู่ใน Windows Terminal ตามค่าเริ่มต้น คุณสามารถสลับได้โดยง่าย:

  • การเปลี่ยนค่าเริ่มต้น รูปร่าง การตั้งค่าสำหรับโปรไฟล์เทอร์มินัลทั้งหมด
  • การเปลี่ยน รูปร่าง การตั้งค่าสำหรับโปรไฟล์เฉพาะ
  • เริ่มต้นจากบรรทัดคำสั่งที่มีรูปแบบสีเฉพาะ
  • Ctrl+กะ+พี เพื่อเปิด Command Palette ค้นหา "Color Scheme" แล้วเลือกผ่าน GUI
  • การสร้างการผูกปุ่มโดยตรงเพื่อเปลี่ยนรูปแบบสีตามที่คุณต้องการ

สิ่งเดียวที่ดูเหมือนจะขาดหายไปคือวิธีการสร้างจากบรรทัดคำสั่งในตัว เป็นไปได้อย่างแน่นอนโดยการสร้างยูทิลิตี้เพื่อแก้ไข การตั้งค่า json โดยตรง เนื่องจาก Windows Terminal จะตรวจพบการเปลี่ยนแปลงโดยอัตโนมัติ มันไม่ได้อยู่ในตัว


คุณอาจต้องการหรือไม่ต้องการ ไดร์คัลเลอร์ โครงการ ลองใช้ธีม Solarized ระดับบนสุดก่อน หากคุณพบว่าคุณต้องการใช้ ไดร์คัลเลอร์ โทนสี คุณจะพบคำแนะนำทั่วไป (ไม่ใช่ปลา) ในโครงการนั้น Github Readme. ดูเหมือนว่าจะเป็นเพียงแค่:

eval `dircolors /path/to/dircolorsdb`

โปรดทราบว่าการใช้ backticks เพื่อทดแทนคำสั่ง รู้สึกท้อแท้ (เอื้อเฟื้อ คำตอบนี้) ดังนั้นฉันจะแนะนำแทน:

eval $(dircolors /path/to/dircolorsdb)

แน่นอนว่าด้วยการปรับแต่งสำหรับชื่อธีมที่คุณกำลังเปลี่ยนไปใช้


หมายเหตุด้านข้าง: ฉันชอบเปลือกปลา แต่ฉันขอแนะนำให้ผู้มาใหม่เรียนรู้เปลือกที่สอดคล้องกับ POSIX ก่อน ไวยากรณ์ของเปลือกปลาคือ ไม่ สอดคล้องกับ POSIX; มันใช้ไม่ได้กับเชลล์อื่น และไวยากรณ์มาตรฐานของเชลล์อื่น (บ่อยครั้ง) จะต้องปรับแต่งเพื่อทำงานในปลา

ที่กล่าวว่ามีเหตุผลที่ดีสำหรับความไม่ลงรอยกันนั้น โดยส่วนตัวแล้ว ไวยากรณ์ของ Fish Shell คือ ดีกว่า (หรืออย่างน้อยก็ดีพอๆ กับ) POSIX ใน 95%+ ของกรณี -- บางครั้ง มาก ดีกว่า. อย่างไรก็ตาม บางครั้งคุณลักษณะของปลาที่ขาดหายไปจะทำให้สิ่งต่างๆ ยากขึ้น.

สิ่งที่ยอดเยี่ยมเกี่ยวกับการเรียนรู้ (ในที่สุด) และการรู้ทั้งสองอย่างคือคุณสามารถวิ่งได้ตลอดเวลา ทุบตี สคริปต์ภายในปลาเมื่อคุณต้องการย้อนกลับไปใช้ไวยากรณ์ "มาตรฐาน"

กล่าวอีกนัยหนึ่ง คุณอาจกำลังทำสิ่งที่ถูกต้องด้วยการ "ข้าม" ปลาไปก่อน แต่กลับมาตรวจสอบอีกครั้งเมื่อคุณรู้สึกสบายใจขึ้นใน Linux


หมายเหตุด้านข้าง/คำแนะนำ #2: เช็คเอาท์ อดีตทันสมัยทดแทน . เป็น "สี" มากขึ้นโดยค่าเริ่มต้น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา