Разница между асинхронностью и синхронизацией в октаве?

У меня были проблемы с редактором в октаве, и я уже задавал вопрос: Выходной буфер Octave полностью перепутался в OS X. Как исправить?

Способ, которым я исправил вопрос, заключается в использовании edit mode sync вместо стандартного async. Однако я не очень понимаю, в чем здесь разница между async и sync? И почему при использовании async клавиатура посылала сигналы и в октаву, и в редактор, так что выходной буфер портился? Если возможно, можем ли мы использовать асинхронный режим для macbook? (Поскольку на моем Linux-компьютере все работает нормально)


person OneZero    schedule 12.08.2013    source источник


Ответы (1)


Согласно справочному тексту `edit()':

[...] асинхронный режим (редактор запускается в фоновом режиме, а Octave продолжает работать) или синхронный режим (Octave ожидает закрытия редактора). [...] (см. также «система»).

В основном он определяет, что происходит после запуска другого процесса (emacs в вашем случае). Подумайте, как edit() был разработан для использования. Вы находитесь в приглашении Octave и используете его, чтобы открыть файл функции в текстовом редакторе. Вы вносите изменения в файл, все еще используя подсказку Octave. Это режим async.

Однако ваш текстовый редактор не имеет графического интерфейса. Когда вы запускаете emacs, вы используете его в том же окне терминала, из которого вы его вызвали. Поскольку у вас установлено значение async, вы получаете интерактивные emacs и Octave в одном и том же терминале. Установка его на sync означает, что пока вы не выйдете из emacs, Octave просто ждет, чтобы не испортить то, что отображается.

Ты сможешь:

  1. используйте текстовый редактор с графическим интерфейсом;
  2. измените команду EDITOR, чтобы открыть новый терминал, и запустите там свой CLI emacs. Например, если вы используете gnome-терминал, вы можете установить его на gnome-terminal -e emacs %s;
  3. изменить режим на синхронизацию.
person carandraug    schedule 13.08.2013