Як запустити команду, не натискаючи клавішу Enter?


119

Випадково я зіставляти Enterчерез xkbsetдо Pointer_button2.

Тепер щоразу, коли я потрапляю на Enterякийсь химерний текст, з’являється.

Я подумав про вирішення проблеми, пов’язаного з перезаносом його назад, але це означає, що мені доведеться запустити команду xmodmap -e "keycode 135 = Pointer_Button2"(або будь-який інший код, крім клавіші Enter). Але я не в змозі запустити цю команду в терміналі, не вдарившись Enter.

Як це зробити?

Я запускаю Ubuntu 12.04.


5
Одного разу комп’ютери зможуть скасувати що завгодно. Як і у нас з моментальними знімками файлової системи, але зі вмістом оперативної пам'яті ... як відкат того, що ми робимо. Скасуйте команду. Відкрийте файл. Скасувати програму. Un-Do останні 5 хвилин. Потім, пізніше Інтернет наздожене ... Не читайте веб-сайт: Вас ніколи там не було! Можливо, одного разу нам вдасться відключити аварії на автомобільних машинах, відновити стовпи ламп у вертикальному положенні тощо.
Йохан

2
@Johan Які речовини ви вживали, коли писали цей коментар? </kidding>
Люк М

Відповіді:


125

Ви можете використовувати CTRL+ Jабо CTRL+ Mяк альтернативу Enter. Вони є контрольними символами для передачі ліній (LF) та повернення каретки (CR).


4
Шееш ... чому люди не можуть надати 7070 балів, щоб відповісти на деякі ці легкі запитання величезним немитим масам? (Просто жартую - +1 за відповідь, яку я збирався опублікувати.)
Ян Штейнман

5
@JanSteinman Тому що тоді вони мали б лише 630 балів (6705 - 15 - 36 * 10). : P
ernie

3
@JanSteinman: Я це пропустив! Коли я відповів, було вже три інші відповіді, і одна була прийнята. Здається, діти в ці дні не знають свого ASCII :-) (@ernie: є щоденна репутація, тому ви не отримуєте всіх цих балів).
camh

Дякуємо за те, що ви прийняли кілька добродушних ребристих - зовсім не призначених. Якщо ви це знаєте, покажіть це!
Ян Штейнман

2
@ user13107 Не стільки історичне, скільки саме визначення коду ASCII. Коли ASCII було майже все, що було (якщо ви не були на землі IBM), ключі Return та Linefeed повинні були бути закодовані як щось, щоб ми могли набрати їх на наших надійних телетайпах ASR-33 або на наших перфокартах. Є навіть пакет ascii, який ви можете встановити, який відображатиме його. Клавіша Ctrl щойно взяла код одного з перших 32 символів і встановила один біт назад на 0. Для M він змінив 4D на 0D, що є поверненням каретки (і на ASR-33 дійсно була карета. )
Джо

40

У вікні терміналу (я тестував тільки aterm, rxvt, vteі xterm) ви можете вибрати кінець рядка, який вставив назад має ефект натискання Enter:

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

Потім вставте обраний текст назад у вікно терміналу середнім клацанням кнопки миші (або одночасним натисканням лівої та правої кнопки миші, якщо так налаштовано).


1
Класно! Я думав, що немає способу скопіювати та вставити недруковані символи.
користувач13107

26

Запустіть команду з не-X-терміналу.

CTRL+ ALT+ F2повинен перевести вас на звичайну консоль. Увійдіть як звичайний користувач, а потім запустіть команду там.

xmodmapвпливає лише на X-сеанси, тому йому потрібно DISPLAYпрацювати поза X-сервером, наприклад:

DISPLAY=:0 xmodmap

Дякую. Але це дає помилку, щоxmodmap unable to open display ``
користувач13107

1
Ви можете виставити на дисплей DISPLAY="0"або редагувати файл, який повинен бути в$HOME/.Xmodmap
Бурхан Халід

6
Невеликий DISPLAY=:0
друк

14

Ви можете помістити його в сценарій (.sh), а потім двічі клацнути по ньому. Більшість сучасних робочих середовищ дають можливість запустити скрипт, а не відкривати його в текстовому файлі.


Дякую. Спробував це. Не знайшли можливості запустити його як сценарій.
користувач13107

Гаразд. Він працює після зміни властивостей файлу.
користувач13107

11

Якщо у вас є миша та графічний дисплей, ви можете скопіювати кінець попереднього рядка у свій термінал і вставити його в кінець вашої команди.


4

CTRL+ O- ще один варіант. За допомогою bash він виконує команду і переходить до наступної останньої в історії, корисно повернутись назад по ланцюжку раніше виконаних команд.


1

Якщо у вас є миша, просто скопіюйте це -> "

"

і вставити поруч із вашою командою, а потім вставити всю команду в термінал.

Подібно до введіть тут опис зображення


Це вже було дано як відповідь
Філіпос
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.