Создание определенного символа ASCII в Ubuntu

19

Я привык держать left Altи вводить символ ASCII всякий раз, когда я использую неизвестную конфигурацию клавиатуры и хочу ввести специальный символ.

Например, Alt+ 0+ 9+ 2создает обратную косую черту (\).

Это на винде. Есть ли способ сделать это в Ubuntu?

Примечание: я также хочу иметь возможность использовать это в режиме консоли. Это означает, что я не хочу решения с участием программного обеспечения с графическим интерфейсом.

Филипп Карьер
источник
Существует общий вопрос о том, возможно ли сделать это способом Windows в AskUbuntu, по адресу askubuntu.com/questions/588090 .
JdeBP
См. Также unix.stackexchange.com/questions/254477 для Unix и Linux.
JdeBP

Ответы:

26

Если вы используете Gnome (Ubuntu делает запас) , вы можете сделать это, удерживая как Ctrlи Shiftклавиши и набрав uзатем шестнадцатеричное значение символа.

Чтобы создать обратную косую черту \, вы должны держать Ctrl+ Shiftи нажимать U, 5и C.

В Windows вы вводите десятичное значение, в то время как в Linux вы вводите шестнадцатеричное значение (которое обычно короче, если вы вводите большее число). U означает Unicode.

Довольно полную таблицу шестнадцатеричных значений можно найти здесь . Внимание, загрузка страницы может занять много времени!

Emilien
источник
4
«Шестнадцатеричное значение» на самом деле является
кодовой точкой
Вау. Именно то, что мне было нужно! Работает везде как шарм. Спасибо.
Филипп Карьер
1
Теперь мне нужно только выучить все коды в гекса .... :(
Филипп Карьер
Кто-нибудь знает, как получить эту работу в Sublime Text?
Пьяный Мастер
6

Другой вариант (но он не вставляет символ в коде ASCII / Unicode) - это активировать ComposeKey (как Altв моем случае), чтобы вы могли затем напечатать такие вещи, как:

  • Alt+ =+ e→ €
  • Alt+ '+ e→ é
  • Alt+ ^+ e→ ê

и т. д. Если вы хотите ввести часто используемые латинские буквы (например, на испанском, французском и т. д.), это может быть быстрее, чем изучение кодовых точек Unicode. Все дело в выборе!

Emilien
источник
Разве вам не нужна неамериканская раскладка клавиатуры для этого?
Кристиан Чиупиту
2
@CristianCiupitu: Нет, вам нужно включить ключ Compose.
Игнасио Васкес-Абрамс
@ IgnacioVazquez-Abrams, ты прав. Кажется, что в моей среде рабочего стола XFCE 4.10 ключ Compose вообще не задавался, но после установки его на правую клавишу Alt ответ сработал (поэтому +1 от меня).
Кристиан Чиупиту
5

Драйвер консоли Linux не имеет возможности для ввода символов таким образом ... но это на самом деле не нужно, так как оболочки могут справиться с этим самостоятельно.

$ echo $'\x5c'
\
Игнасио Васкес-Абрамс
источник
1
Это очень хороший метод .... Я даже не могу найти его в справочных страницах echo, но он работает! Есть ли способ предоставить десятичный код вместо шестнадцатеричного? (Я выучил десятичные коды наизусть)
Филипп Карьер
Есть ли способ использовать это, когда я нахожусь в vi или nano?
Филипп Карьер
2
Нет, они могут быть введены только в шестнадцатеричном ( \xNN) или восьмеричном ( \NNN). Вы можете использовать, printfесли хотите увидеть шестнадцатеричный код для значения. В vim вы можете набрать Ctrl-V U, а затем 4-значный код Unicode. Кроме того, цитата раздел.
Игнасио Васкес-Абрамс
2
@Silence: (1) Потому что это особенность вашей оболочки (обычно bash), а не из echo.
Гравитация
@PhilippeCarriere В VI вы можете выполнять команды оболочки, предваряя :!как :!ls. Вы также можете вставить вывод в текущий буфер, используя :r !. Мне часто не хватает тильды, поэтому я использую :r !echo $'\x7e'. Еще немного об этом здесь .
действует
1

Из UTF-8 и FAQ по Unicode для Unix / Linux Маркуса Куна:

Расширьте свое отображение клавиатуры, используя xmodmap . Это особенно удобно, если на вашей клавиатуре есть AltGrклавиша, предназначенная именно для этой цели (на некоторых клавиатурах в США вместо AltGrпросто правой Altклавиши есть клавиша, а у других, к сожалению, этой клавиши совершенно нет, и в этом случае другой клавише должна быть назначена функция Mode_switch) , Напишите файл ~/.Xmodmapс записями, такими как

keycode 113 = Mode_switch Mode_switch
keysym d = d NoSymbol degree        NoSymbol
keysym m = m NoSymbol emdash        mu
keysym n = n NoSymbol endash        NoSymbol
keysym 2 = 2 quotedbl twosuperior   NoSymbol
keysym 3 = 3 sterling threesuperior NoSymbol
keysym 4 = 4 dollar   EuroSign      NoSymbol
keysym space = space  NoSymbol      nobreakspace NoSymbol
keysym minus = minus  underscore    U2212        NoSymbol
keycode 34 = bracketleft  braceleft  leftsinglequotemark  leftdoublequotemark
keycode 35 = bracketright braceright rightsinglequotemark rightdoublequotemark
keysym KP_Subtract = KP_Subtract NoSymbol U2212    NoSymbol
keysym KP_Multiply = KP_Multiply NoSymbol multiply NoSymbol
keysym KP_Divide   = KP_Divide   NoSymbol division NoSymboll

и загрузите его xmodmap ~/.Xmodmapиз скрипта запуска X11 на ваш X-сервер. Затем вы обнаружите, что вы AltGrлегко получаете со своей клавиатуры следующие новые символы:

  • AltGr+ d→ °
  • AltGr+ [→ '
YourPadre
источник
0

Не совсем то, о чем просит ОП, но, может быть, этого достаточно для того, кто читает это.

В зависимости от выбранной раскладки клавиатуры вы уже можете набирать некоторые символы Unicode и ASCII; как в macOS Нажмите на селектор языка рядом со значком в трее (если он у вас есть), а затем Show Keyboard Layoutпосмотрите на альтернативные символы отдельных клавиш.

Например, вы можете набрать… (многоточие) с помощью right ALT + ., и ÷ (деление) с помощью right ALT + SHIFT + ..

Кроме того, эти комбинации клавиш даже работу в Sublime, который оказался более упорным в сторону CTRL + SHIFT + U.

WoodrowShigeru
источник