นามแฝงคำสั่งให้ทำงานในพื้นหลัง


25

ฉันต้องการแป้นพิมพ์ลัดเพื่อทำงานดังนี้:

> e foo.txt

เพื่อขยายเป็น

> emacs foo.txt &

ใช้ง่ายalias e=emacsแต่ฉันจะแทรก&ชื่อไฟล์หลังได้อย่างไร ฉันรู้ว่ามันอาจเป็นไปไม่ได้ที่จะใช้เพียงอย่างเดียวaliasดังนั้นฉันจะยอมรับโซลูชันทุบตีใด ๆ หากจำเป็นต้องใช้เชลล์สคริปต์โปรดอธิบายวิธีการทำงาน


4
คุณควรใช้emacsclientหรือgnuclientเปิดไฟล์จากบรรทัดคำสั่งแทนที่จะเปิดemacsไฟล์ใหม่สำหรับแต่ละไฟล์: emacswiki.org/emacs/EmacsClient
andcoz

คำตอบ:


38

นามแฝงในการทุบตีไม่สามารถมีข้อโต้แย้ง แต่คุณสามารถใช้ฟังก์ชั่น

e() { emacs "$@" & }

แล้วก็

e foo.txt

จะทำในสิ่งที่คุณต้องการ


1
นี้มีปัญหาเมื่อฉันพิมพ์e foo*ในไดเรกทอรีที่มีทั้งfoo.cppและfoo.hหนึ่งเดียวของไฟล์ที่จะเปิด
ติดยา

4
@Hooked จากนั้นใช้"$@"แทน"$1"ในฟังก์ชั่น
AProgrammer

1
@AProgrammer ที่ดูเหมือนว่าจะไม่สามารถใช้สัญลักษณ์แทนได้ ไวยากรณ์ที่ฉันใช้คือ: emacs $* &และทางออกที่ดียิ่งขึ้นน่าจะเป็นe() { command emacs $* & disown }
ชื่อ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.