Mathematica ノートブックでテキストを選択し、選択範囲を括弧で囲む方法はありますか?
たとえば、ノートに次のように入力したとします。
1, 2, 3, 4
すべてのテキストを選択してから、コマンドを入力して一致する中括弧を挿入できるようにしたい ( alt-}
Linux の場合) と、選択範囲が中括弧で囲まれます。
{1, 2, 3, 4}
Mathematica ノートブックでテキストを選択し、選択範囲を括弧で囲む方法はありますか?
たとえば、ノートに次のように入力したとします。
1, 2, 3, 4
すべてのテキストを選択してから、コマンドを入力して一致する中括弧を挿入できるようにしたい ( alt-}
Linux の場合) と、選択範囲が中括弧で囲まれます。
{1, 2, 3, 4}
次の関数は、基本的に要求したことを実行するコマンドを追加します。
書かれているように、それは 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]}]]