Van-e parancsikon az összes cella kijelölésére az aktuális kurzorpozíció felett?

Van-e parancs / menübejegyzés / billentyűparancs az összes cella kiértékeléséhez az aktuális kurzorhelyzet felett? Az az érzésem, hogy hiányzik valami alapvető dolog itt …

Kiegészítés : Valójában ez inkább a cellák kiválasztásáról szól, az értékelés nem önmagában a probléma.

Megjegyzések

  • Shift-Home Shift-Enter talán? (olyan billentyűzeten, amelyen van Home)
  • Rendkívül hasznos!

évek óta javaslom ezt a funkciót a WRI-nek.

  • @AndreasLauschke phew, örülök, hogy ´ m nem az egyetlen. És ennyire kisebb erőfeszítésnek tűnik ezt hozzáadni a menühöz / parancsikonokhoz. Kinek kell a WRI-nél hibáznunk az erőfeszítések megerősítése érdekében?
  • Haszontalan. Forgeddaboudit. De tehetne Rolf ‘ s vagy Martin ‘ s vagy Rojo ‘ megoldást egy init.m, hogy egy palettán lévő gombra helyezze, vagy használja a kulcsfordítást. Nem használom a Caps Lock billentyűt, azt hiszem, hogy ez a leghaszontalanabb kulcs, ezért ezt a Caps Lock-ra helyezem. Két problémát megold egyszerre, és megoldásokká alakítja őket. Nem szeretem ‘ túlságosan a Shift és a Ctrl billentyűk túlterhelését, mivel o / s szinten más kulcsfordítások vannak rájuk, de a Caps Lock ingyenes és egyébként haszontalan. li>
  • @AndreasLauschke tetszik a Caps Lock kettő az egyben javítás. Nincs több felesleges kiabálás is! Hmm, eredményes este.
  • Válasz

    Az egyik lehetőség a személyes (csak Windows rendszeren tesztelve). Értékelje a következőket, majd indítsa újra a Mathematica alkalmazást, majd a Ctrl + Shift + Home összes cellát kiválasztja a beszúrási pont felett.


    A 9.0.1. használat: 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"]; 

    Megjegyzések

    • (… mély lélegzetet vesz …) Félelmetes! Ez tiszta arany, és harangokkal és sípokkal is. Munkafolyamatom őszinte üdvözletet küld, és korán megy haza ünnepelni.
    • @YvesKlett Gern geschehen. Valójában hozzáadtam a SelectionEvaluate [SelectedNotebook []]; a KernelExecute végén, mivel ezt általában szeretem csinálni. Személyes munkastílus kérdése, gondolom, ha valaki ezt akarja vagy sem. Lehet, hogy a WRI-n dolgozók másképp dolgoznak? Vagy vannak kisebb noteszei? Vagy ne használjon notebookokat valóban tesztelésre (lévén, hogy a WWB megőrzi mindegyiket?). Ki tudja. Legalább elég könnyen módosítható / javítható a Mathematica dolgaiban.
    • kissé módosítva, hogy a Linux alatt is megfelelően működjenek … Figyelje meg, hogy a Control Shift UpKey személy szerint nekem könnyebb. Tehát amit használok, úgy használhatom, mint Import["http://www.mertig.com/shortcuts.m"]
    • Frissítettem a 9.0.1-es megjegyzéseket. Használja: Import["http://www.mertig.com/shortcuts.m"]
    • Nagyon, nagyon kedves. A megadott kódot (nagyon) kissé módosíthatjuk, és létrehozhatunk egy parancsikont, amely az összes cellát kiválasztja alatt az aktuális cella segítségével a Ctrl + Shift + DownArrow billentyűkombinációval. A mymenuitems meghatározása után csak adja hozzá a következő sort: mymenuitems=StringReplace[mymenuitems, {"Home" -> "Down","Next" -> "Previous", "Previous" -> "Next", "Before" -> "After"}];.

    Válasz

    Éppen dolgoztam valamin, és itt mellékhatás volt. Semmi új, de zárt formában adható meg paletta gombként:

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

    A kurzornak nem a cellák között, hanem a végén értékelendő cellában kell lennie.

    Megjegyzések

    • Köszönöm szépen ezt a hatalmas időmegtakarítót, amellyel előállt! (Hehe, végül elég pontot kaptam, hogy megköszönjem). Mint tudják, kissé módosítottam a rutinját, hogy megszabaduljak a ” hangjelzés, ” és az alábbi mod közzétételét. Nem ‘ nem használom az MMA-t elég gyakran ahhoz, hogy ne felejtsen el egy csomó kulcsparancsot, ezért ‘ jó, ha van egy remek kis palettánk az ” ” gomb rajta t kényelmesen elhelyezhetek bárhol.
    • @BillN Nem probléma 🙂 Sok szerencsét és remélem, hogy gyakrabban fogsz idejönni 🙂 Nem csak a válaszaim kijavítására 🙂

    Válasz

    Ez a @Kuba válaszának módosítása, amely ismételten értékeli az összes fenti cellát és tartalmazza a kiválasztott cellát, de a “csipogás” nélkül (kisebb finomítás). Köszönöm @Kuba a fő rutint. Csakúgy, mint az eredetinél, a kód is létrehoz egy dinky palettát egyetlen “Értékelés fent” gombbal, amelyet ezután bármelyikre elhelyezhet kényelmes helyen (például a működő notebook tetején lévő többi menüpont mellett). Az “Értékelés fent” gomb működéséhez egy cellát (bármely cellát) ki kell választani.

    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"]] 

    A kódváltozás csak a bemeneti cellákat választja ki értékelésre, minden más cellastílushoz “átugorja” (Null eredményt generál). Köszönet @John Fultz-nak a cellastílusokat visszaadó parancsért (a “Hogyan tudom megszerezni a kiválasztott cellák stílusát?” Részben). Nyilvánvalóan “sípolás” lépne fel, ha a nem bemenő cellák értékelését kérnék. Úgy tűnik, hogy ez jól működik a Mathematica 11.0.1 verzióval.

    Új vagyok a Mathematica számára, és ez a szál egy ideje nem volt aktív. Tehát nem vagyok biztos benne, hogy van-e most valami egyszerű módszer ennek beépítéséhez (nem találok semmit), vagy szükség van-e még ilyen egyedi rutinra.

    Frissítés 18/10/10: Hozzáadtam a Gomb opció metódust -> “Sorban “az alapértelmezett” Preemptive “gombértékelési módszerrel bekövetkező időtúllépés megakadályozása érdekében. A “Sorban” opció a fő link gombfunkcióinak kiértékelésére szolgál, amelyek soha nem túllépnek.

    Megjegyzések

    • +1, amelyeket el kellett volna mondania én;) Nem voltam ‘ tudatában, mivel nem napi szinten használom;)
    • Sry @Kuba 🙂 I ‘ m olyan új itt, nincs ‘ még elég pontom ahhoz, hogy még hozzászólásodhoz is hozzászóljak (hehe). Egy nagy köszönet jön, ha megteszem. Ez egy hatalmas ” szóváltási tényező ” csökkentő.
    • Köszönjük a frissítés. Nincs tudomásom a frontend változásairól, amelyek ezt megkönnyítenék, de nagyon örülök Rolf ‘ megoldásának.
    • @Yves Klett Köszönöm, hogy megengedte tudd, hogy még mindig szükség van egyedi funkcióra.
    • @BillN üdvözlöm a partiban: D

    Válasz

    Az aktuális cella előtti bemeneti cellákat kiértékelheti a következő futtatásával:

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

    Megjegyzések

    • Hurrá! Csak egy kényelmes parancsikon hiányzik (de ezt már a @RolfMertig ´ válasza is lefedi).
    • parancsikon vagy gomb egy palettán. Valószínűleg

    ezt egy palettán lévő gombra teszem, más hasznos gombokkal együtt.

  • Nem ‘ Nem hiszem, hogy ezt olyan könnyű betenni egy gombba, mivel szükség van az EvaluationCell-re []
  • Ebben az esetben @RolfMertigre van szükség, a Experimental PreviousCell [] `többet hoz érzék
  • Válasz

    Fogalmam sincs, hogyan lehet ezt a kurzorral általában véve, de a CellObject sokat tehet, ha egy cellában tartózkodik.

    Nagyon sok mindent megtehet a SelectionMove függvény. A következőkben kiválasztjuk az összes cellát az értékelő füzetben. Ne feledje, hogy furcsa módon az All megadja az aktuális jegyzetfüzetet, After és Previous megadja a notebookok listájának megfelelő eleme a Notebooks[] kiértékelésével.

    SelectionMove[EvaluationNotebook[], All, Notebook] 

    A kijelölés a következő szerint mozgatható: CellGroup. Ez a gomb fokozatosan kiválasztja a gomb feletti CellGroup -t:

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

    A függvény jó néhány példát mutat be, és megmutatja, hogy a funkcióval kiválasztható egy cella, valamint az egész cella belső tartalma.

    Úgy gondolom, hogy erre módom van kérje a Mathematicát, hogy adja meg a CellObject listát a SelectedCells első elõtt, de még nem vagyok ott.

    Megjegyzések

    • Most@Experimental CellRange [Először, EvaluationCell []] . Or with only documented functions, TakeWhile [Cells [], # =! = EvaluationCell [] &] == A legtöbb @ kísérleti CellRange[First, EvaluationCell[]]
    • Sajnálom, azt hittem, hogy a cte kiértékelése előtt használd a SelectedCell[] -t a kiválasztott cellához.
    • Ez ‘ s nagyon klassz, ‘ el kell játszanom a CellRa-val nge. ‘ nem hiszem el, hogy a Kísérleti kontextus most megjelenik a parancs befejezése menüben.
    • @Rojo az első megjegyzésed felemésztett egy kontextus háttért, a többi pedig nem igazán dolgozzon itt a V9-en … érdekelne részletesen?
    • Igen, sajnálom, Most@Experimental`CellRange[First, EvaluationCell[]]. Vagy csak dokumentált függvényekkel, TakeWhile[Cells[], # =!= EvaluationCell[] &]. Ennek meg kell adnia az CellObjects listáját az értékelés előtt.

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük