Имена аргументов с использованием r-autoyas

Недавно я использовал r-autoyas (0.28) при работе со сценариями R (emacs 24.3.1, ESS 13.09-1, Windows 8.1) и нашел его очень полезным. Он работает «из коробки» с загруженными библиотеками R и пользовательскими функциями после установки (setq r-autoyas-expand-package-functions-only nil).

Однако я хотел бы изменить один небольшой аспект: я хотел бы сохранить имена аргументов при явном вводе их значений. Например, если я наберу «rnorm», а затем TAB, чтобы развернуть фрагмент, я получу:

rnorm(n= , mean=0, sd=1)

и введите 10 TAB 100 TAB, а затем снова TAB, чтобы оставить sd=1 по умолчанию. На чем заканчиваю:

rnorm(10, 100)

и что я хотел бы иметь:

rnorm(n=10, mean=100)

что делает код, который я предпочитаю. Я знаю, что старые версии r-autoyas использовали для этого, так как это показано в обучающем видео на YouTube, где он использует C-d, чтобы пропустить аргумент, и TAB, чтобы циклически бросать их. Далее, если аргумент пропущен (скажем, mean), то все последующие аргументы именуются. Так, например, если я вместо этого набрал 10 TAB TAB 50 C-g, я получаю:

rnorm(10, sd=50)

В основном мне интересно, можно ли оставить имя аргумента для всех аргументов, а не только для тех, которые следуют за пропущенным аргументом. Кажется, я не могу найти ничего на сайте github, который показывает, как это сделать.

Спасибо


person Cole Monnahan    schedule 02.01.2014    source источник


Ответы (1)


Установите r-autoyas-remove-explicit-assignments на nil. Вы можете настроить эту переменную M-x customize-option r-autoyas-remove-explicit-assignments. Там же вы найдете описание этой переменной.

person Tobias    schedule 02.01.2014
comment
Привет, Тобиас, это именно тот ответ, который я искал. Я видел это в справке, но как-то не подключил, чтобы он делал то, что я хотел. Спасибо! - person Cole Monnahan; 02.01.2014