Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wolfram mathematica 在Mathematica中,将所选文本换行到括号中_Wolfram Mathematica - Fatal编程技术网

Wolfram mathematica 在Mathematica中,将所选文本换行到括号中

Wolfram mathematica 在Mathematica中,将所选文本换行到括号中,wolfram-mathematica,Wolfram Mathematica,有没有办法在Mathematica笔记本中选择一些文本,然后将所选内容用括号括起来 例如,如果我在笔记本中键入以下内容: 1, 2, 3, 4 我希望能够选择所有文本,然后键入命令以插入匹配的花括号(alt-}在linux上),它会将所选内容用花括号括起来 {1, 2, 3, 4} 下面的函数添加了一个命令,该命令基本上执行您所要求的操作 如前所述,它包含Control+U组合键(通常为“下划线”)。你可以很简单地改变这一点。它还向Insert菜单添加了一个名为“Make List”的项,但

有没有办法在Mathematica笔记本中选择一些文本,然后将所选内容用括号括起来

例如,如果我在笔记本中键入以下内容:

1, 2, 3, 4
我希望能够选择所有文本,然后键入命令以插入匹配的花括号(
alt-}
在linux上),它会将所选内容用花括号括起来

{1, 2, 3, 4}

下面的函数添加了一个命令,该命令基本上执行您所要求的操作

如前所述,它包含Control+U组合键(通常为“下划线”)。你可以很简单地改变这一点。它还向Insert菜单添加了一个名为“Make List”的项,但我想您只需使用组合键即可

此修改仅对当前会话有效,但您可以将该函数添加到init文件中,以便在启动时加载。还有其他永久添加功能的方法,如编辑KeyEventsTranslations文件,如。)

一旦运行了实现功能,就可以使用Control+U执行它

FrontEndExecute[
 FrontEnd`AddMenuCommands["DuplicatePreviousOutput",
  {Delimiter, MenuItem["Make List",
    FrontEnd`KernelExecute[
     nb = SelectedNotebook[];
     sel = NotebookRead[nb];
     NotebookWrite[nb, Cell[BoxData[RowBox[{"{", sel, "}"}]]]]],
    MenuKey["u", Modifiers -> {"Control"}], 
    System`MenuEvaluator -> Automatic]}]]
已键入并选择:1、2、3、4

控制+U

{1,2,3,4}

附录

这是一个可以用来代替菜单设置修改的版本。它被设置为在按下“{”键时激活,并将包装一个选择或只匹配大括号。将其放入MenuSetup并不那么简单;我可以通过使用
KernelExecute
从MenuSetup调用一个外部程序来实现。将下面的代码放入init文件也同样有效

FrontEndExecute[
 FrontEnd`AddMenuCommands[
  "DuplicatePreviousOutput", {Delimiter, MenuItem["Make List",
    FrontEnd`KernelExecute[
     nb = SelectedNotebook[];
     sel = NotebookRead[nb];
     If[sel === {},
      FrontEndExecute[FrontEndToken["InsertMatchingBraces"]],
      NotebookWrite[nb, Cell[BoxData[RowBox[{"{", sel, "}"}]]]]]],
    MenuKey["{", Modifiers -> {}],
    System`MenuEvaluator -> Automatic]}]]

哇,太好了。老实说,我甚至怀疑这是可能的。我在我的
MenuSetup.tr
文件中有
MenuItem[“Matching{}”,“InsertMatchingBraces”,MenuKey[“{”,Modifiers->{}]
,这样就可以键入一个{'自动配对。现在,我想获取您的答案,这样,如果没有选择,它只打印匹配的括号,如果有,它会包装选择。