Вам необходимо активировать ключ создания, чтобы использовать его. Перейдите в настройки клавиатуры
, на вкладку Макеты
и нажмите кнопку Параметры ...
.
Откроется новое всплывающее окно, в котором вам нужно будет найти параметр Положение клавиши создания
, и там у вас будет список клавиш, которые можно включить для этой функции, например alt
, ctrl
и т. д.
Edit
В Linux ярлыки работают не так, как в Windows.
Представьте, что если вы хотите ввести á
, вам нужно нажать alt
+ '
+ a
(при условии, что alt
- ключ создания).
Таким образом, это работает бесконечно в Bash/dash/ksh/zsh (или, по крайней мере, до тех пор, пока ваш диск не заполнится):
#!/bin/sh
s=$0
foo() { echo "hello"; echo "foo" >> $s; sleep.1; }
foo
Следует отметить, что имеет значение только то, что добавлено в файл сценария после последней строки, прочитанной оболочкой. Оболочки не возвращаются назад, чтобы -прочитать более ранние части, чего они даже не могли бы сделать, если бы ввод был каналом.
Подобная конструкция не работает в Perl, она считывает весь файл перед запуском.
#!/usr/bin/perl -l
open $fd, ">>", $0;
sub foo { print "hello"; print $fd 'foo;' }
foo;
Мы можем видеть, что это происходит и при вводе данных через канал. Это дает синтаксическую ошибку (и только это )через 1 секунду:
$ (echo 'printf "hello\n";' ; sleep 1 ; echo 'if' ) | perl
В то время как тот же скрипт передается, например,. Bash печатает hello
, а через секунду выдает синтаксическую ошибку.
Python похож на Perl с конвейерным вводом, даже несмотря на то, что интерпретатор запускает цикл чтения -eval -печати в интерактивном режиме.
В дополнение к чтению входной строки скрипта -по -строке, как минимум Bash и dash обрабатывают аргументы для eval
по одной строке за раз:
$ cat evaltest.sh
var='echo hello
fi'
eval "$var"
$ bash evaltest.sh
hello
evaltest.sh: eval: line 4: syntax error near unexpected token `fi'
evaltest.sh: eval: line 4: `fi'
Zsh и ksh немедленно выдают ошибку.
Аналогично для исходных скриптов, на этот раз Zsh также запускает строку -за строкой -, так же как Bash и тире:
$ cat sourceme.sh
echo hello
fi
$ zsh -c '../sourceme.sh'
hello
./sourceme.sh:2: parse error near `fi'
По крайней мере, одна раковина, рыба, не демонстрирует такого поведения (, но тогда рыба необычна в других отношениях):
% for sh in zsh mksh fish dash bash tcsh; do echo 'sleep 5' > foo.$sh; $sh foo.$sh & sleep 1; echo 'echo $0' >> foo.$sh; fg; done
[2] 7381
[2] - 7381 running $sh foo.$sh
foo.zsh
[2] 7385
[2] - 7385 running $sh foo.$sh
foo.mksh
[2] 7387
[2] - 7387 running $sh foo.$sh
[2] 7390
[2] - 7390 running $sh foo.$sh
foo.dash
[2] 7393
[2] - 7393 running $sh foo.$sh
foo.bash
[2] 7415
[2] - 7415 running $sh foo.$sh
foo.tcsh
(В предыдущей версии этого ответа были ошибочные наблюдения за Python и Ruby.)
Эта функция присутствует и в других интерпретаторах, которые предлагают то, что называетсяread
eval
print
loop
. LISP — довольно старый язык с такой возможностью, и в Common LISP есть функция read
, которая будет читать здесь выражение (+ 2 2)
, которое затем может быть передано в eval
для оценки (, хотя в реальном коде вы можете не хочу делать это таким образом по различным соображениям безопасности):
% sbcl
* (defparameter sexp (read))
(+ 2 2)
SEXP
* (print (eval sexp))
4
4
мы также можем определить наш собственный очень простой REPL без особых функций, отладки или почти чего-либо еще, но здесь показаны части REPL:
* (defun yarepl () (loop (print (eval (read))) (force-output) (fresh-line)))
YAREPL
* (yarepl)
(* 4 2)
8
(print "hi")
"hi"
"hi"
В основном, как указано на паспортной табличке, данные считываются, оцениваются, распечатываются, а затем (при условии, что ничего не сломалось, и есть электричество или что-то еще, питающее устройство )он возвращается к считыванию Нет необходимости в сборке AST заранее. (SBCL нуждается в дополнениях force-output
и fresh-line
для отображения, другие реализации Common LISP могут или не могут.)
Другие вещи с REPL включают TCL («оболочку, укушенную радиоактивным LISP» ), которая включает графические элементы с Tk
% wish
wish> set msg "hello"
hello
wish> pack [label.msg -textvariable msg]
wish> wm geometry. 500x500
wish> exit
Или ВПЕРЕД здесь, чтобы определить функцию f>c
для преобразования температуры ("ok" добавляетсяgforth
):
% gforth
Gforth 0.7.3, Copyright (C) 1995-2008 Free Software Foundation, Inc.
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license'
Type `bye' to exit
: f>c ( f -- c ) 32 - 5 9 */ cr. cr ; ok
-40 f>c
-40
ok
100 f>c
37
ok
bye