4

Mathematica ノートブックでテキストを選択し、選択範囲を括弧で囲む方法はありますか?

たとえば、ノートに次のように入力したとします。

1, 2, 3, 4

すべてのテキストを選択してから、コマンドを入力して一致する中括弧を挿入できるようにしたい ( alt-}Linux の場合) と、選択範囲が中括弧で囲まれます。

{1, 2, 3, 4}
4

1 に答える 1

5

次の関数は、基本的に要求したことを実行するコマンドを追加します。

書かれているように、それは Control+U キーの組み合わせ (通常は「下線」) を採用します。これは非常に簡単に変更できます。また、[挿入] メニューに [リストの作成] という項目が追加されますが、キーの組み合わせだけを使用することになると思います。

この変更は現在のセッションでのみ持続しますが、関数を 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

Control+U

{1、2、3、4}

補遺

MenuSetup の変更の代わりに使用できるバージョンを次に示します。「{」キーを押すとアクティブになるように設定されており、選択範囲をラップするか、中かっこだけを一致させます。これを MenuSetup に入れるのは簡単ではありません。MenuSetup から外部プログラムを呼び出すことでそれを行いKernelExecuteます。以下のコードを 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]}]]
于 2012-12-06T10:50:20.587 に答える