วิธียกเว้นช่องว่างในไฟล์. desktop บรรทัด Exec


15

ฉันต้องการที่จะทำให้.desktopไฟล์เช่นอธิบายไว้ที่นี่

[Desktop Entry]
Name=Sublime Text 2
GenericName=Sublime Text 2
Comment=Edit text files
Exec=/home/user/opt/sublime/Sublime Text 2/sublime_text %U

อย่างไรก็ตามการใช้งานจากเมนูบริบทของ Nautilus โดยใช้Open ด้วยสิ่งนี้ทำให้ฉัน

ไม่พบ '/ home / user / opt / sublime / Sublime'

ดังนั้นฉันจึงพยายาม

Exec="/home/user/opt/sublime/Sublime Text 2/sublime_text" %U

และได้รับ

ข้อความสิ้นสุดก่อนที่จะพบเครื่องหมายคำพูดที่ตรงกันสำหรับ ". (ข้อความคือ '" / home / user / opt / sublime / Sublime')

วิธีที่ถูกต้องในการหลบหนีช่องว่างในExecบรรทัดของ.desktopไฟล์คืออะไร?

คำตอบ:


5

นำหน้าแต่ละช่องว่างด้วยแบ็กสแลช:

[Desktop Entry]
Name=Sublime Text 2
GenericName=Sublime Text 2
Comment=Edit text files
Exec=/home/user/opt/sublime/Sublime\ Text\ 2/sublime_text %U

4
ที่ไม่ได้ทำงาน:Text ended just after a '\' character. (The text was '/home/user/opt/sublime/Sublime\')
NH2

ตลกมันใช้ได้สำหรับฉัน
มกราคม

เราใช้เวอร์ชั่นเดียวกันหรือไม่? GNOME nautilus 3.4.2ใน 12.04
nh2

ทำงานได้ดีสำหรับฉันบน Ubuntu 16.04 รวมถึงเครื่องหมายคำพูดสองเท่า อย่างไรก็ตามอย่าหนีช่องว่างหรืออ้างถึงค่า Path และ Icon มันอาจทำให้แอพพลิเคชั่นไม่ทำงาน (บนคอมพิวเตอร์ของฉันไอคอนเส้นประกระพริบ แต่ไม่ทำอะไรเลยแม้แต่เปิดเทอร์มินัลแม้ว่า Terminal = true) ปัญหาเดียวกันหากคุณไม่ได้หลบหนี Exec โดยวิธีการดังนั้นคุณสามารถจินตนาการได้ว่าต้องใช้เวลาพอสมควรในการค้นหาว่าจะทำอย่างไรกับแต่ละบรรทัดของ .desktop!
hsandt

แปลก ... วิธีนี้ใช้งานได้หากฉันเรียกใช้ตัวเรียกใช้งานด้วยตนเอง แต่ไม่ได้ทำงานโดยอัตโนมัติ คุณลักษณะนี้มีข้อบกพร่องอย่างมาก
Adrian Lopez

3

ฉันมีปัญหาเดียวกันทุกประการ! หลังจากลองรูปแบบการหลบหนี / การอ้างอิงที่หลากหลายฉันตัดสินใจว่าทางออกที่ง่ายที่สุดคือการมีลิงก์สัญลักษณ์ไปsublime_textที่ $ PATH ของฉัน (หรือคุณสามารถใช้นามแฝงบรรทัดคำสั่ง)

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[C]=/usr/share/Sublime Text 2/Icon/256x256/sublime_text.png
Name[C]=Sublime Text 2
Exec=Sublime-Text-2 %U
Comment[C]=Text Editor
Name=Sublime Text 2
Comment=Text Editor
Icon=/usr/share/Sublime Text 2/Icon/256x256/sublime_text.png
X-Desktop-File-Install-Version=0.21

4
นี่เป็นวิธีแก้ปัญหาที่สมเหตุสมผล แต่เรายังไม่ทราบว่าเราตั้งใจใช้พื้นที่ใน.desktopไฟล์อย่างไร
nh2

2
เห็นด้วยถึงฉันมันก็ดูเหมือนว่าบั๊กกี้ในวิธีการExecแยกวิเคราะห์มากกว่าที่เราใช้ไม่ถูกต้อง มันตีความช่องว่างเป็นจุดสิ้นสุดของค่าซึ่งเป็นเลขคี่เนื่องจากคุณสามารถใช้ช่องว่างที่ไม่ใช้ค่า Escape / สตริงที่ไม่ได้อ้างอิงสำหรับเส้นทางในคุณสมบัติอื่น ๆ !
c24w

3

คุณเคยลองใช้คำพูด '' แทนคำพูด "" หรือยัง? ฉันมีไฟล์. เดสก์ท็อปที่กำหนดเองพร้อมช่องว่างในบรรทัด Exec และเหมืองใช้กับเครื่องหมายคำพูด ''


3

ฉันมีปัญหาเดียวกันเมื่อทำตามคำแนะนำในการติดตั้งจากเว็บไซต์( http://monkeyhacks.com/post/how-to-install-sublime-text-2-on-ubuntu-14-04 ) ไซต์ .. ดังนั้นทางออกของฉันคือ :

  1. ลบ / ลบซอฟต์ลิงค์ที่เรียกว่า "ซับไลม์" จาก /usr/bin

  2. ลบช่องว่างทั้งหมดของโฟลเดอร์ "Sublime Text 2" โดยเปลี่ยนชื่อเป็น "SublimeText2"

  3. สร้างลิงค์นุ่มใน /usr/bin/:

    sudo ln -s /opt/SublimeText2/sublime_text /usr/bin/sublime
    
  4. ทำไฟล์ .desktop รวมถึง:

    Exec=/opt/SublimeText2/sublime_text %U
    Icon=/opt/SublimeText2/Icon/48x48/sublime_text.png
    


0

ฉันพบปัญหาเดียวกันโดยใช้ GNOME nautilus 3.4.2 ใน Ubuntu 12.04 ฉันพบวิธีแก้ปัญหาทางเลือกนี้ในรายงานข้อผิดพลาดสำหรับปัญหาเดียวกันใน Moblin UI Frameworkซึ่งฉันชอบที่กล่าวถึงในที่ที่คุณต้องการเพิ่มทุก ๆ โฟลเดอร์ลงใน $ PATH

วิธีแก้ปัญหาคือ:
"สร้างลิงก์สัญลักษณ์ในพา ธ ที่ไม่มีช่องว่างและชี้ฟิลด์ EXEC ไปยังลิงก์นั้น"


-1

ไฟล์ .desktop ไม่จัดการเครื่องหมายอัญประกาศเว้นวรรคและอักขระที่หลีกเลี่ยงในแบบเดียวกับที่เชลล์ทำ อาจเป็นตัวเลือกที่ดีที่สุดคือการเรียก shell ในบรรทัด exec ของคุณเพื่อรับพฤติกรรมที่ต้องการเช่น:

[Desktop Entry]
Name=Sublime Text 2
GenericName=Sublime Text 2
Comment=Edit text files
Exec=sh -c "/home/user/opt/sublime/Sublime Text 2/sublime_text" %U

man shสำหรับข้อมูลเพิ่มเติมโปรดดูที่ นอกจากนี้ยังเป็นการหลีกเลี่ยงการสร้างและรักษาลิงก์สัญลักษณ์เช่นเดียวกับคำตอบอื่น ๆ


วิธีการแก้ปัญหานี้ไม่ได้ผ่านข้อโต้แย้งเช่นเส้นทางของไฟล์ไปยังคำสั่งที่เรียกในที่สุด -1
David Foerster

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