จะรันคำสั่งโดยไม่กดปุ่ม Enter ได้อย่างไร


119

บังเอิญผมแมปEnterผ่านไปxkbsetPointer_button2

ตอนนี้ทุกครั้งที่ฉันกดEnterข้อความที่พูดพล่อยๆจะปรากฏขึ้น

ฉันคิดถึงวิธีแก้ปัญหาที่เกี่ยวข้องกับการแมปใหม่อีกครั้ง แต่นั่นหมายความว่าฉันจะต้องเรียกใช้คำสั่งxmodmap -e "keycode 135 = Pointer_Button2"(หรือรหัสอื่นใดนอกจากนั้นEnter) แต่ฉันไม่สามารถที่จะเรียกใช้คำสั่งนี้ใน terminal, Enterไม่ต้องกดปุ่ม

ฉันจะทำเช่นนั้นได้อย่างไร

ฉันใช้ Ubuntu 12.04


5
คอมพิวเตอร์หนึ่งวันจะสามารถเลิกทำอะไรก็ได้ อย่างที่เรามีกับ snapshot ของระบบไฟล์ตอนนี้ แต่ด้วยเนื้อหาของ RAM ... เหมือนย้อนกลับไปที่สิ่งที่เรากำลังทำอยู่ ยกเลิกการป้อนคำสั่ง เลิกเปิดไฟล์ ยกเลิกการเรียกใช้โปรแกรม เลิกทำ 5 นาทีที่ผ่านมา จากนั้นอินเทอร์เน็ตจะตามทัน ... เลิกอ่านเว็บไซต์: คุณไม่เคยไปที่นั่น! บางทีวันหนึ่งเราจะสามารถยกเลิกอุบัติเหตุรถยนต์ทำคืนเสาไฟให้ตั้งตรง ฯลฯ
Johan

2
@Johan คุณใช้สารอะไรในการเขียนความคิดเห็นนี้? </kidding>
Luc M

คำตอบ:


125

คุณสามารถใช้CTRL+ JหรือCTRL+ เป็นทางเลือกให้กับM Enterเป็นอักขระควบคุมสำหรับ linefeed (LF) และ carriage return (CR)


4
Sheesh ... ทำไมคนไม่สามารถมีคะแนน 6,705 คะแนนให้คำถามง่าย ๆ เหล่านี้ผ่านไปยังผู้คนจำนวนมากที่ไม่ได้ซักคำตอบ (เพียงแค่ล้อเล่น - +1 สำหรับคำตอบที่ฉันจะโพสต์)
ม.ค. Steinman

5
@JanSteinman เพราะเมื่อนั้นพวกเขาจะมีเพียง 6,330 คะแนน (6705 - 15 - 36 * 10) : P
ernie

3
@ JanSteinman: ฉันปล่อยให้มันผ่าน! มีคำตอบอื่นอีกสามคำเมื่อฉันตอบและอีกคำตอบก็เป็นที่ยอมรับ ดูเหมือนว่าเด็ก ๆ สมัยนี้ไม่รู้ว่า ASCII :-) ของพวกเขา (@ernie: มีชื่อเสียงทุกวันดังนั้นคุณจะไม่ได้รับคะแนนทั้งหมด)
camh

ขอบคุณที่ยอมรับการทำซี่โครงนิสัยดี - ไม่ได้ตั้งใจทำอะไรเลย ถ้าคุณรู้ให้แสดง!
Jan Steinman

2
@ user13107 ประวัติศาสตร์ไม่มากเหมือนเพียงแค่นิยามรหัส ASCII เอง เมื่อ ASCII สวยมากมี (ยกเว้นคุณอยู่ในดินแดน IBM) ปุ่ม Return และ Linefeed จะต้องถูกเข้ารหัสเป็นบางอย่างเพื่อให้เราสามารถพิมพ์รหัสเหล่านั้นลงบนโทรศัพท์ ASR-33 ที่เชื่อถือได้ของเราหรือบัตรเจาะของเรา มีแม้กระทั่งแพคเกจ ascii ที่คุณสามารถติดตั้งซึ่งจะแสดงมัน ปุ่ม Ctrl เพิ่งใช้รหัสสำหรับหนึ่งใน 32 ตัวอักษรแรกและตั้งค่าหนึ่งบิตกลับเป็น 0 สำหรับ M มันเปลี่ยน 4D เป็น 0D ซึ่งเป็น carriage return (และมี carriage บน ASR-33 จริงๆ )
โจ

40

ในหน้าต่าง terminal (ผมทดสอบเท่านั้นaterm, rxvt, vteและxterm) คุณสามารถเลือกจุดสิ้นสุดของบรรทัดซึ่งวางกลับมีผลของการเร่งด่วนที่Enter:

#          ____________type the command____________  __select to end of line__
#         /                                        \/                         \
bash-4.2$ xmodmap -e "keycode 135 = Pointer_Button2"

จากนั้นวางข้อความที่เลือกกลับมาในหน้าต่างเทอร์มินัลด้วยการคลิกปุ่มกลางของเมาส์ (หรือคลิกซ้ายและขวาพร้อมกันถ้าคลิกเพื่อกำหนดค่า)


1
เย็น! ฉันคิดว่าไม่มีวิธีในการคัดลอกวางอักขระที่ไม่สามารถพิมพ์ได้
user13107

26

รันคำสั่งจากเทอร์มินัลที่ไม่ใช่ X

CTRL+ ALT+ F2ควรพาคุณไปที่คอนโซลปกติ เข้าสู่ระบบในฐานะผู้ใช้ปกติของคุณแล้วเรียกใช้คำสั่งที่นั่น

xmodmapมีผลกับเซสชัน X เท่านั้นดังนั้นจึงจำเป็นต้องDISPLAYทำงานนอกเซิร์ฟเวอร์ X เช่นนี้

DISPLAY=:0 xmodmap

ขอบคุณ แต่จะให้ข้อผิดพลาดนั้นxmodmap unable to open display ``
user13107

1
คุณสามารถแสดงDISPLAY="0"หรือแก้ไขไฟล์ให้กับมันได้$HOME/.Xmodmap
Burhan Khalid

6
พิมพ์ผิดขนาดเล็ก:DISPLAY=:0
Lekensteyn

14

คุณสามารถใส่ลงในสคริปต์ (.sh) แล้วคลิกสองครั้ง สภาพแวดล้อมเดสก์ท็อปที่ทันสมัยส่วนใหญ่ให้ตัวเลือกในการเรียกใช้สคริปต์แทนที่จะเปิดในไฟล์ข้อความ


ขอบคุณ พยายามมัน ไม่พบตัวเลือกในการเรียกใช้เป็นสคริปต์
user13107

ตกลง. มันทำงานได้หลังจากเปลี่ยนคุณสมบัติของไฟล์
user13107

11

หากคุณมีเมาส์และจอแสดงผลกราฟิกคุณสามารถคัดลอกจุดสิ้นสุดของบรรทัดก่อนหน้าในเทอร์มินัลแล้ววางลงบนส่วนท้ายของคำสั่งของคุณ


4

CTRL+ Oเป็นตัวเลือกอื่น ด้วย bash มันจะรันคำสั่งและย้ายไปยังประวัติล่าสุดถัดไปซึ่งจะเป็นประโยชน์ในการวนกลับผ่านสายคำสั่งที่เรียกใช้ก่อนหน้านี้


1

หากคุณมีเม้าส์ให้คัดลอก -> "

"

และวางถัดจากคำสั่งของคุณแล้ววางคำสั่งทั้งหมดในเทอร์มินัล

ชอบ ป้อนคำอธิบายรูปภาพที่นี่


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