Автоматически завершающие скобки в Mathematica

Не так давно я начал изучать Mathematica - т.е. я новичок. Обычно пишу в текстовых редакторах с автозакрытием скобок типа Gedit, Notepad++, Qt IDE и т.д. Это очень удобно, когда не надо следить за скобками. Но мои попытки найти подобный функционал в Mathematica не увенчались успехом. Не могу поверить, что в таком мощном инструменте нет такой простой вещи. Кто-нибудь знает, как автозаполнять скобки?


person Tebe    schedule 13.12.2011    source источник
comment
к вашему сведению, несколько связанный вопрос в SO: stackoverflow.com/questions/6137716/   -  person Nasser    schedule 14.12.2011
comment
Я делаю следующее: я сначала печатаю скобки, скажем (), а затем заполняю внутреннюю часть. То же самое для [[ ]]. Это может немного помочь.   -  person Nasser    schedule 14.12.2011
comment
да, это хорошо, но гораздо лучше, когда система делает это за вас, и вы можете сосредоточиться на своей задаче   -  person Tebe    schedule 14.12.2011
comment
Можно ли это перенести/включить в mathematica.SE?   -  person dearN    schedule 31.03.2012


Ответы (2)


Вы можете поэкспериментировать с чем-то вроде:

SetOptions[InputNotebook[], 
 InputAutoReplacements -> {"[" -> "[\[SelectionPlaceholder]]", 
   "{" -> "{\[SelectionPlaceholder]}", 
   "(" -> "(\[SelectionPlaceholder])"}]

Обратите внимание, что замена не произойдет, пока вы не введете символ после открывающей скобки. Если вам нравится результат, вы можете применить его более глобально.

person Brett Champion    schedule 13.12.2011
comment
Если честно, я ожидал что-то вроде опции в меню или плагине. Это не то, чего я ждал, но это даже лучше! - person Tebe; 14.12.2011
comment
Параметр меню: Вставка › Набор текста › Сопоставление [] и т. д. (с сочетаниями клавиш). Но обычно мне проще просто набрать [], даже вместо сочетания клавиш. - person Brett Champion; 14.12.2011
comment
Возможно, вам придется изменить это, чтобы вы по-прежнему могли использовать сокращение для Part: [[ ]] - person Simon; 14.12.2011
comment
@Simon Это должно просто сработать. x[[ превращается в x[[] с точкой вставки перед последней скобкой, а затем ввод спецификации (1, Все и т. д.) добавит вторую закрывающую скобку. - person Brett Champion; 14.12.2011
comment
Бретт: Плохо. Надо было проверить (или хотя бы просто подумать), прежде чем комментировать. - person Simon; 14.12.2011
comment
Хотя это удобно при непрерывном наборе текста, это очень раздражает, когда вы возвращаетесь и исправляете/редактируете свой код. Например, он работает плавно при записи f[a,g[b]], но если я вернусь, чтобы изменить a на c, тогда он вставит еще один ], поскольку курсор был рядом с [, чтобы дать f[c],g[b]]. Это усложняет работу, так как теперь вам нужно вернуться и удалить ее. - person abcd; 14.12.2011
comment
@yoda И это также боль, если вы хотите изменить его на h[1,f[a,g[b]]]. У меня очень конкретно был ответ, касающийся только одного ноутбука. Если бы это было включено по умолчанию, лично я бы сошел с ума. - person Brett Champion; 14.12.2011

В качестве альтернативы, Alt+] создаст [] и переместит точку вставки внутрь [].

person Community    schedule 14.12.2011