Verzeichnisposition nach Directory-Wechsel?
Moderators: Hacker, Stefan2, white
- ghisler(Author)
- Site Admin
- Posts: 50688
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Es steht auf meiner ToDo-Liste für TC 7.5 (also nicht nur auf der Wunschliste). Wenn es wirklich so einfach zu realisieren wäre, wie sich das manche hier vorstellen, dann hätte ich es schon längst eingebaut. Das Problem ist, dass ein solches Scrolling zur letzten Position in vielen Fällen eben nicht erwünscht ist...
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
- StickyNomad
- Power Member
- Posts: 1933
- Joined: 2004-01-10, 00:15 UTC
- Location: Germany
2ghisler(Author)

Und es muss ja wie gesagt nicht bei jeder Verzeichniswechsel-Funktion eingebaut werden.
Den bereits genannten beiden Funktionen, bei denen die Scrollposition wiederhergestellt werden sollte:
- DirUp (Backspace)
- DirHistory (Alt+Links / Alt+Rechts)
...möchte ich gerne noch den Verzeichniswechsel mit den Cursortasten hinzufügen, wenn z.B. SpecialCursorMovement=2 gesetzt ist. Falls der Aufwand vertretbar ist und niemand was dagegen hat natürlich
Klasse, freut mich zu hörenEs steht auf meiner ToDo-Liste für TC 7.5 (also nicht nur auf der Wunschliste).

Und es muss ja wie gesagt nicht bei jeder Verzeichniswechsel-Funktion eingebaut werden.
Den bereits genannten beiden Funktionen, bei denen die Scrollposition wiederhergestellt werden sollte:
- DirUp (Backspace)
- DirHistory (Alt+Links / Alt+Rechts)
...möchte ich gerne noch den Verzeichniswechsel mit den Cursortasten hinzufügen, wenn z.B. SpecialCursorMovement=2 gesetzt ist. Falls der Aufwand vertretbar ist und niemand was dagegen hat natürlich

kann mir bitte noch jemand auslegen, was hiermit gemeint sein könnte?
wieso stellen wünsche ein programmiertechnisches problem da? (ausser der anpassung der programmierung an die entsprechenden wünsche)
irgendwie sehe ich keinen direkten zusammenhang. und somit bleibt mir der sinn verborgen.
von *wem* oder *was* oder in *welcher* situation nicht erwünscht?ghisler(Author) wrote:Das Problem ist, dass ein solches Scrolling zur letzten Position in vielen Fällen eben nicht erwünscht ist...
wieso stellen wünsche ein programmiertechnisches problem da? (ausser der anpassung der programmierung an die entsprechenden wünsche)
irgendwie sehe ich keinen direkten zusammenhang. und somit bleibt mir der sinn verborgen.
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?
Mario
Mario
- ghisler(Author)
- Site Admin
- Posts: 50688
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Wenn man z.B. von c:\ via c:\windows nach c:\windows\system32 geht, anschliessend nach c:\ zurück, und schliesslich wieder nach c:\windows, dann will man gerade nicht, dass der Cursor zu "system32" scrollt.
Dies ist jetzt ein sehr einfaches Beispiel, aber es gibt viel komplexere, z.B. im einen Tab geht man nach c:\windows\system32, und im 2. Tab nach c:\windows\fonts, anschliessend in beiden Tabs ein Verzeichnis nach oben. TC müsste sich da irgendwie beide Orte parallel merken.
Dies ist jetzt ein sehr einfaches Beispiel, aber es gibt viel komplexere, z.B. im einen Tab geht man nach c:\windows\system32, und im 2. Tab nach c:\windows\fonts, anschliessend in beiden Tabs ein Verzeichnis nach oben. TC müsste sich da irgendwie beide Orte parallel merken.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Folgender Lösungsansatz:
Die DirHistory wird pro Tab gespeichert, also bietet es sich an, pro Eintrag in der DirHistory die zugehörige Cursorposition beim Wechsel in ein anderes Verzeichnis zu speichern.
Somit sollte zumindest für Bewegungen innerhalb der DirHistory (Alt+Links / Alt+Rechts / Direktanwahl eines DirHistory-Eintrags) ein konsistentes Verhalten für das Anspringen von gespeicherten Positionsmarken gewährleistet sein.
Der weitere Fall, für den das Anspringen der letzten Cursorposition relevant ist, wäre DirUp (Backspace / Anklicken von [..])
Hierbei haben wir den Sonderfall, dass wir uns nicht innerhalb der DirHistory bewegen, sondern sogar einen neuen Eintrag in der DirHistory generieren.
Trotzdem kann hier die DirHistory die Cursorposition liefern, da wir ja vorher in der Regel schon mal eine Ebene höher waren.
Also müsste bei dem Event DirUp die DirHistory nach dem neuen Pfad durchsucht werden und beim chronologisch letzten Treffer die Cursorposition als neue Cursorposition für den DirUp-Wechsel genommen werden.
Die Suche innerhalb der DirHistory kann im Falle von DirUp natürlich auch erfolglos verlaufen, z.B. weil man mittels "cd pfadname" oder DirMenu einen Pfad direkt angesprungen hat.
In diesem Fall kann natürlich keine vorherige Cursorposition ermittelt werden und der Cursor wird wie bisher in TC positioniert - was aber auch nur konsequent wäre.
Auch der von StickyNomad gewünschte Fall von SpecialCursorMovement=2 sollte hiermit abgedeckt sein, da es sich hierbei um nichts anderes als um ein DirUp bei Pfeil-Links handelt. Pfeil-Rechts erzeugt wie gehabt einen neuen DirHistory-Eintrag, wie bei einem Verzeichniswechsel per Enter. Hierbei wird dann die Cursorposition mitgespeichert.
Ich hoffe, hiermit alle (gewünschten) Fälle konsistent abgedeckt zu haben.
Gelöst wäre damit:
- Navigation in der DirHistory (Alt+Links, Alt+Rechts, Direktwahl in Dirhistory)
- DirUp (Backspace, Pfeil-Links bei SpecialCursorMovement=2)
- Verzeichniswechsel (Enter, Pfeil-Rechts bei SpecialCursorMovement=2)
@ghisler(Author)
Habe ich noch etwas übersehen?
Die DirHistory wird pro Tab gespeichert, also bietet es sich an, pro Eintrag in der DirHistory die zugehörige Cursorposition beim Wechsel in ein anderes Verzeichnis zu speichern.
Somit sollte zumindest für Bewegungen innerhalb der DirHistory (Alt+Links / Alt+Rechts / Direktanwahl eines DirHistory-Eintrags) ein konsistentes Verhalten für das Anspringen von gespeicherten Positionsmarken gewährleistet sein.
Der weitere Fall, für den das Anspringen der letzten Cursorposition relevant ist, wäre DirUp (Backspace / Anklicken von [..])
Hierbei haben wir den Sonderfall, dass wir uns nicht innerhalb der DirHistory bewegen, sondern sogar einen neuen Eintrag in der DirHistory generieren.
Trotzdem kann hier die DirHistory die Cursorposition liefern, da wir ja vorher in der Regel schon mal eine Ebene höher waren.
Also müsste bei dem Event DirUp die DirHistory nach dem neuen Pfad durchsucht werden und beim chronologisch letzten Treffer die Cursorposition als neue Cursorposition für den DirUp-Wechsel genommen werden.
Die Suche innerhalb der DirHistory kann im Falle von DirUp natürlich auch erfolglos verlaufen, z.B. weil man mittels "cd pfadname" oder DirMenu einen Pfad direkt angesprungen hat.
In diesem Fall kann natürlich keine vorherige Cursorposition ermittelt werden und der Cursor wird wie bisher in TC positioniert - was aber auch nur konsequent wäre.
Auch der von StickyNomad gewünschte Fall von SpecialCursorMovement=2 sollte hiermit abgedeckt sein, da es sich hierbei um nichts anderes als um ein DirUp bei Pfeil-Links handelt. Pfeil-Rechts erzeugt wie gehabt einen neuen DirHistory-Eintrag, wie bei einem Verzeichniswechsel per Enter. Hierbei wird dann die Cursorposition mitgespeichert.
Ich hoffe, hiermit alle (gewünschten) Fälle konsistent abgedeckt zu haben.
Gelöst wäre damit:
- Navigation in der DirHistory (Alt+Links, Alt+Rechts, Direktwahl in Dirhistory)
- DirUp (Backspace, Pfeil-Links bei SpecialCursorMovement=2)
- Verzeichniswechsel (Enter, Pfeil-Rechts bei SpecialCursorMovement=2)
@ghisler(Author)
Habe ich noch etwas übersehen?
Ahhh. verdammt, da hab ich mich in's Bockshorn jagen lassen. Sah für mich auf den ersten Blick so aus.
Okay, also schlage ich hiermit vor, die DirHistory pro Tab zu speichern, um den vorigen Lösungsansatz zu realisieren.
Unabhängig von dem Positionierungswunsch, würde ich eine tabbezogene DirHistory sehr begrüßen, da diese einen deutlichen Mehrwert im Umgang mit mehreren Tabs bieten würde.
Analog zum Speichern der Tabs in den Sektionen [RightTabs] / [LeftTabs] könnte es zwei neue sektionen [RightTabsHistory] / [LeftTabsHistory] geben, in der die DirHistory pro tab gesichert wird.
Beispiel:
[RightTabsHistory]
0_0_path=C:\Programme\Tools\Files\
0_0_position=2
0_1_path=C:\Programme\Tools\Files\TotalCmd\
0_1_position=5
0_2_path=C:\Programme\Tools\Files\TotalCmd\INIs\
0_2_position=2
1_0_path=D:\
1_0_position=2
1_1_path=D:\Temp\
1_1_position=5
Okay, also schlage ich hiermit vor, die DirHistory pro Tab zu speichern, um den vorigen Lösungsansatz zu realisieren.
Unabhängig von dem Positionierungswunsch, würde ich eine tabbezogene DirHistory sehr begrüßen, da diese einen deutlichen Mehrwert im Umgang mit mehreren Tabs bieten würde.
Analog zum Speichern der Tabs in den Sektionen [RightTabs] / [LeftTabs] könnte es zwei neue sektionen [RightTabsHistory] / [LeftTabsHistory] geben, in der die DirHistory pro tab gesichert wird.
Beispiel:
[RightTabsHistory]
0_0_path=C:\Programme\Tools\Files\
0_0_position=2
0_1_path=C:\Programme\Tools\Files\TotalCmd\
0_1_position=5
0_2_path=C:\Programme\Tools\Files\TotalCmd\INIs\
0_2_position=2
1_0_path=D:\
1_0_position=2
1_1_path=D:\Temp\
1_1_position=5
Hier stimme ich uneingeschränkt zu. Jetzt sieht das so aus, daß, wenn man einen bestimmten Tab "sucht" und deswegen einige Tabs durchklickt, man ruck zuck die History mit mit unnötigen Einträgen gefüllt hat. Hätte man tab-abhängige Historys, würde hier gar nichts passieren, da keine Verzeichnisse gewechselt wurden. Der Tcmd würde sich so verhalten, wie mehrere Tcmds in einem.X-Byte wrote:Okay, also schlage ich hiermit vor, die DirHistory pro Tab zu speichern, um den vorigen Lösungsansatz zu realisieren.
Unabhängig von dem Positionierungswunsch, würde ich eine tabbezogene DirHistory sehr begrüßen, da diese einen deutlichen Mehrwert im Umgang mit mehreren Tabs bieten würde.
Gruß
mir kommen da zweifel an der nützlichkeit für meine anwendung des tc in den sinn:X-Byte wrote:Okay, also schlage ich hiermit vor, die DirHistory pro Tab zu speichern, um den vorigen Lösungsansatz zu realisieren.
Unabhängig von dem Positionierungswunsch, würde ich eine tabbezogene DirHistory sehr begrüßen, da diese einen deutlichen Mehrwert im Umgang mit mehreren Tabs bieten würde.
-ich müsste alle tab-historys durchklicken, auf der suche nach einem bestimmten pfad. (jetzt ist alles schön in einer liste gespeichert und durchsuchbar)
-schliesse ich einen tab, ist somit auch die tab-bezogene history gelöscht? weil imho: ohne entsprechenden tab, keine entsprechende history
lösung für beide fälle in deinem szenario könnte eine seperate-tab-history *und* eine gesamm(el)te sein.
nun gut, nur gedanken, das kann man ja in einem neuen thread aufgreifen, ich finde den ansatz auf jeden fall gut und interessant.
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?
Mario
Mario
danke für die erklärung.ghisler(Author) wrote:Wenn man z.B. von c:\ via c:\windows nach c:\windows\system32 geht, anschliessend nach c:\ zurück, und schliesslich wieder nach c:\windows, dann will man gerade nicht, dass der Cursor zu "system32" scrollt.
Dies ist jetzt ein sehr einfaches Beispiel, aber es gibt viel komplexere, z.B. im einen Tab geht man nach c:\windows\system32, und im 2. Tab nach c:\windows\fonts, anschliessend in beiden Tabs ein Verzeichnis nach oben. TC müsste sich da irgendwie beide Orte parallel merken.
trotzdem habe ich den eindruck, ich spreche (jedenfalls in meinem request) von einer nicht so komplexen situation wie dieser, die sich hier nun auftut.
kurz:
tc soll sich nichts zusätzlich merken. das, was er sich sowieso schon merkt, reicht völlig aus.
einzig und allein soll der cursor (wie auch im ursprungs-posting gewünscht und beschrieben) nicht auf der 4. stelle von unten zeigen, sondern auf einer (optional vom user einstellbaren) "mittigeren" position.
dies würde dem user den verzeichnis-inhalt übersichtlicherer darstellen.
wie genau der cursor nun genau an die 4. stelle von unten gelangt ist ja schon gelöst und funktioniert bis dato auch einwandfrei.
ich jedenfalls kann keine inkonsistenzen erkennen :-)
Was nützt der Löffel für die Weisheit, wenn man zu weit vom Suppentopf entfernt sitzt?
Mario
Mario
Ich kann deine Argumentation gut nachvollziehen.versalzen wrote:mir kommen da zweifel an der nützlichkeit für meine anwendung des tc in den sinn:
-ich müsste alle tab-historys durchklicken, auf der suche nach einem bestimmten pfad. (jetzt ist alles schön in einer liste gespeichert und durchsuchbar)
-schliesse ich einen tab, ist somit auch die tab-bezogene history gelöscht? weil imho: ohne entsprechenden tab, keine entsprechende history
lösung für beide fälle in deinem szenario könnte eine seperate-tab-history *und* eine gesamm(el)te sein.
Kontraproduktiv wird aber die Navigation mittels ALT+Rechts bzw. ALT+Links. Solange ich in einem Tab bin, ist alles OK. Ich kann so schnell zwischen bestimmten Verzeichnissen hin und her wechseln.
Nachdem ich etwas in einem anderen Tab navigiert habe und wieder zurück in den ersten Tab wechsle, bringt mir ALT+Rechts bzw. ALT+Links nicht mehr so viel. Gerade diese beiden Funktionen würde ich mir TAB-abhängig wünschen.
Gruß