現在のカーソル位置より上のすべてのセルを選択するショートカットはありますか?

現在のカーソル位置より上/までのすべてのセルを評価するためのコマンド/メニューエントリ/キーボードショートカットはありますか?ここで初歩的なものが欠けているような気がします…

補遺:実際、これらのセルの選択に関するものであり、評価自体は問題ではありません。

コメント

  • Shift-ホームShift-多分入力しますか? (ホームのあるキーボードの場合)
  • 非常に便利です!私は’この機能をWRIに数年間提案してきました。
  • @AndreasLauschkephew、うれしいです´ m 1つだけではありません。そして、これをメニュー/ショートカットに追加するのは、それほど小さな努力のようです。 WRIの誰があなたの努力を強化するためにバグを犯すべきですか?
  • 役に立たない。 Forgeddaboudit。ただし、Rolf ‘またはMartin ‘またはRojo ‘のソリューションをinit.m、パレットのボタンに配置するか、keytranslateを使用します。私はCapsLockキーを使用していません。これまでで最も役に立たないキーだと思ったので、これをCapsLockに入れます。 2つの問題を一度に解決し、それらを解決策に変えます。 ‘ ShiftキーとCtrlキーをオーバーロードするのは好きではありません。これは、o / sレベルで他のキー変換があるためですが、CapsLockは無料で他の方法では役に立ちません。
  • @AndreasLauschke私はCapsLockのツーインワン修正を好きです。不必要な叫び声ももうありません!うーん、生産的な夜です。

回答

1つの可能性は、個人の(Windowsでのみテスト済み)。以下を評価してMathematicaを再起動すると、 Ctrl + Shift + Home が挿入点より上のすべてのセルを選択します。


9.0.1の場合。使用:Import["http://www.mertig.com/shortcuts.m"]


 mymenuitems=" (* Select all cells upwards *) Item[KeyEvent[\"Home\", Modifiers -> {Control, Shift}], KernelExecute[ Module[{ enb = EvaluationNotebook[], tag = StringJoin[\"tmp\", ToString[Round[AbsoluteTime[]/$TimeUnit]]],editable }, editable = ReplaceAll[Editable, Options[enb, Editable]]; SetOptions[enb, Editable -> False]; SelectionMove[enb, Previous, Cell, AutoScroll -> False]; MathLink`CallFrontEnd[FrontEnd`SelectionAddCellTags[enb, {tag}]]; SelectionMove[enb, Before, Notebook, AutoScroll -> False]; SelectionMove[enb, Next, Cell, AutoScroll -> False]; While[FreeQ[ReplaceAll[CellTags,Options[NotebookSelection[]]], tag], MathLink`CallFrontEnd[FrontEnd`SelectionAddCellTags[enb, {tag}]]; SelectionMove[enb, Next, Cell, AutoScroll -> False] ]; NotebookFind[enb, tag, All, CellTags, AutoScroll -> False]; MathLink`CallFrontEnd[FrontEnd`SelectionRemoveCellTags[enb, {tag}]]; SetOptions[enb, Editable -> editable] ] ], MenuEvaluator -> Automatic ] "; With[{os = Switch[$OperatingSystem,"MacOSX","Macintosh","Windows","Windows","Unix","X"]}, Quiet@CreateDirectory@FileNameJoin[{$UserBaseDirectory,"SystemFiles","FrontEnd","TextResources",os}]; mykeyeventtrans=FileNameJoin[{$UserBaseDirectory,"SystemFiles","FrontEnd","TextResources",os,"KeyEventTranslations.tr"}]; (*If[FileExistsQ[mykeyeventtrans],DeleteFile@mykeyeventtrans];*) If[!FileExistsQ[mykeyeventtrans], CopyFile[FileNameJoin[{$InstallationDirectory,"SystemFiles","FrontEnd","TextResources",os,"KeyEventTranslations.tr"}],mykeyeventtrans] ]]; keytext=Import[mykeyeventtrans,"Text"]; mykeytext=StringReplace[keytext,"EventTranslations[{":>StringJoin["EventTranslations[{\n(* User defined *)\n",mymenuitems,",\n"]]; Export[mykeyeventtrans,mykeytext,"Text"]; 

コメント

  • (…深呼吸をする…)すごい!これは純金で、ベルとホイッスルも付いています。私のワークフローは最も誠実な敬意を表し、祝うために早く帰宅します。
  • @YvesKlett Gerngeschehen。実際にSelectionEvaluate [SelectedNotebook []]を追加しました。 KernelExecuteの最後に、私は通常それをしたいので。これが欲しいかどうかは個人的な働き方の問題だと思います。たぶん、WRIの人々は違った働きをしますか?または、小さいノートブックをお持ちですか?または、’ノートブックを実際にテストに使用しないでください(WWBがすべてのノートブックを狂わせているのでしょうか?)。知るか。少なくともMathematicaで物事を修正/改善するのは十分に簡単です。
  • Linuxでも正しく動作するように少し修正されています…個人的にはControlShiftUpKeyの方が簡単だと思います。したがって、私が使用しているものは、Import["http://www.mertig.com/shortcuts.m"]
  • 9.0.1のコメントを更新したように使用できます。使用:Import["http://www.mertig.com/shortcuts.m"]
  • とても、とてもいいです。 Ctrl + Shift + DownArrowを使用して、指定されたコードを(非常に)わずかに変更して、現在のセルのにあるすべてのセルを選択するショートカットを作成できます。 mymenuitemsの定義の後に、次の行を追加するだけです:mymenuitems=StringReplace[mymenuitems, {"Home" -> "Down","Next" -> "Previous", "Previous" -> "Next", "Before" -> "After"}];

回答

何かに取り組んでいたところ、ここに副作用があります。新しいものはありませんが、パレットボタンとして閉じた形で表示されます:

CreatePalette[ Button["Evaluate above", With[{NB = InputNotebook[]}, Do[ SelectionMove[Experimental`FromCellIndex[NB, i], All, Cell]; SelectionEvaluate[NB]; , {i, 1, Experimental`ToCellIndex @ SelectedCells[NB][[1]]}] ]]] 

カーソルはセル間ではなく、最後に評価されるセル内にある必要があります。

コメント

  • 思いついたこの大幅な時間の節約に感謝します!(Hehe、私はついにあなたに感謝するのに十分なポイントを獲得しました)ご存知のように、

    ビープ音、”そして以下のmodを投稿しました。’私はMMAを十分な頻度で使用していませんたくさんのキーコマンドを覚えているので、’ 1つの”上記の評価”ボタン」 tどこにでも便利に配置できます。

  • @BillN問題ありません:)頑張ってください。もっと頻繁にここに来ることを願っています:)私の答えを修正するだけではありません:)

回答

これは@Kubaの回答を変更したもので、上記のすべてのセルを評価し、選択したセルを含みますが、「ビープ音」はありません。 (マイナーな改良)。メインルーチンをありがとう@Kuba。オリジナルと同様に、コードは1つの[上に評価]ボタンを備えたちっぽけなパレットを生成します。このボタンは、任意の場所に配置できます。便利な場所(作業中のノートブックの上部にある他のメニュー項目の隣など)。 [上で評価]ボタンを機能させるには、セル(任意のセル)を選択する必要があります。

CreatePalette[ Button["Evaluate Above", With[{nbI = InputNotebook[]}, Do[ SelectionMove[Experimental`FromCellIndex[nbI, i], All, Cell]; If[TextString["Style" /. Developer`CellInformation[nbI][[1]]] === "Input", SelectionEvaluateCreateCell[nbI]];, {i, 1, Experimental`ToCellIndex@SelectedCells[nbI][[1]]}]],Method -> "Queued"]] 

コードの変更により、評価用の入力セルのみが選択され、他のすべてのセルスタイルでは「スキップオーバー」(Null結果が生成)されます。セルスタイルを返すコマンドを@JohnFultzに感謝します(「選択したセルのスタイルを取得するにはどうすればよいですか?」の下)。明らかに、非入力セルの評価を求められた場合、「ビープ音」が発生します。これはMathematica11.0.1で問題なく動作しているようです。

Mathematicaは初めてで、このスレッドはしばらくアクティブになっていないので、簡単な方法があるかどうかわかりません。これを組み込みで行う(何も見つからない)か、このようなカスタムルーチンがまだ必要かどうか。

更新3/10/18:ボタンオプションメソッド->「キュー」を追加しました。 “デフォルトのボタン評価方法”プリエンプティブ “で発生するタイムアウトを防ぐため。 「キュー」オプションは、メインリンクのボタン機能を評価するために使用されます。タイムアウトすることはありません。

コメント

  • +1私;)私は毎日使用していないので’気づいていませんでした;)
  • Sry @Kuba 🙂 I ‘ここはとても新しいので、’あなたの投稿にコメントするのに十分なポイントがまだありません(hehe)。一度行ったら、大いに感謝します。これは巨大な “面倒な要因”レデューサーです。
  • ありがとうございます更新。それを容易にするためのフロントエンドの変更については認識していませんが、Rolf ‘のソリューションに非常に満足しています。
  • @YvesKlett許可していただきありがとうございますカスタム関数がまだ必要であることを知ってください。
  • @BillNパーティーへようこそ:D

回答

これを実行すると、現在のセルの前に入力セルを評価できます

Function[cobj, SelectionMove[cobj, Cell, All]; SelectionEvaluate[InputNotebook[]];]~ Scan~ TakeWhile[Cells[CellStyle -> "Input"], # =!= EvaluationCell[] &]; SelectionMove[EvaluationCell[], After, Cell]; 

コメント

  • やったー!現在不足しているのは便利なショートカットだけです(ただし、これは@RolfMertig ´の回答でもすでにカバーされています)。
  • パレットのショートカットまたはボタン。 ‘おそらく、これを他の便利なボタンと一緒にパレットのボタンに配置します。
  • 私は’これはボタンに入れるのがとても簡単だとは思いません。その場合はEvaluationCell []
  • @RolfMertigが必要なので、Experimental PreviousCell [] `はより多くのことを行いますセンス

回答

カーソルに関してこれを行う方法は一般的にわかりませんが、 CellObjectセル内にいる場合は多くのことができます。

関数。以下は、評価ノートブックのすべてのセルを選択します。非常に奇妙なことに、Allが現在のノートブックを指定しています。AfterPreviousが表示されます。 Notebooks[]を評価することによって提供されるノートブックのリストのそれぞれの要素。

SelectionMove[EvaluationNotebook[], All, Notebook] 

選択は次のように移動できます。 CellGroup。このボタンは、ボタンの上にある各CellGroupを段階的に選択します。

Button["Select previous cell group", SelectionMove[EvaluationNotebook[], Previous, CellGroup]] 

関数はかなりの数の例を提供し、セル全体だけでなくセルの内部コンテンツを選択するために関数を使用できることを示しています。

私ができる方法はそこにあると思いますSelectedCellsの最初の前にCellObjectのリストを教えてくれるようにMathematicaを入手してください。しかし、私はまだそこにいません。

コメント

  • Most@Experimental CellRange [First、EvaluationCell []] . Or with only documented functions, TakeWhile [Cells []、#=!= EvaluationCell [] &] == Most @ Experimental CellRange[First, EvaluationCell[]]
  • 申し訳ありませんが、セルを評価する前だと思いました。選択したセルの代わりにSelectedCell[]を使用してください
  • その’かなりかっこいい、’ CellRaをいじる必要がありますnge。 ‘コマンド補完メニューに実験的なコンテキストが表示されるとは信じられません。
  • @Rojo最初のコメントはコンテキストのバッククォートを食いつぶしましたが、残りは実際にはそうではありません。ここでV9に取り組んでいます…詳しく説明していただけますか?
  • はい、申し訳ありませんが、Most@Experimental`CellRange[First, EvaluationCell[]]です。または、文書化された関数のみを使用する場合は、TakeWhile[Cells[], # =!= EvaluationCell[] &]。これにより、評価する前にCellObjectsのリストが表示されます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です