これは単純な実装(私はコードレビューをもいただければと思い、私はフロントエンドプログラミングでよくないよ)である:それは空行で細胞を壊し
(* This converts a sequence of expressions into boxes *)
Clear[makeManyBoxes]
SetAttributes[makeManyBoxes, HoldAllComplete];
makeManyBoxes[e__] := [email protected][MakeBoxes /@ HoldComplete[e]]
(* Split a list at separator *)
split[list_, sep_] :=
DeleteCases[Split[list, #1 =!= sep && #2 =!= sep &], {sep}]
wr[e_] := NotebookWrite[InputNotebook[], Cell[BoxData[e], "Input"]]
[email protected]["Paste!",
Module[{clipboard},
clipboard = NotebookGet[ClipboardNotebook[]][[1, 1, 1]];
If[StringQ[clipboard],
wr /@
split[ToExpression[clipboard, InputForm, makeManyBoxes], "Null"]
]
]
]
。このために、最初に式を解析する必要があります(空の行が長いModule
?の真ん中に表示される場合はどうなりますか?)。しかし、構文解析だけではいくつかの問題が発生します。この実装で
問題:
- が、それは、コメントを削除
、それはフォーマット(改行)
- 私が確信しているが保持されません
- 間違った入力を処理することはできません
- 間違っている可能性がある他のいくつかのものでなければならない。
+1、私はこのショートカットを知らなかった – Szabolcs
@Szabolcsあなたはこの質問をしたのは不思議ではない。それはかなり迷惑でしょう! –
+1、私はそのショートカットについても知らなかった。私はちょうどそれと一緒に住んでいて、何もするべきではないと仮定しました。 – rcollyer