# Fcmd-Motivationen

Inhalt

- 1 Norton Commander für Linux
- 2 Navigation mit Favoriten
- 3 File comparison
- 4 Remote files
- 5 Cmd handling
- 6 Zugriff auf File-Inhalte
- 7 Gleiches Tool für Linux und Windows
- 8 Thema Windows-Kontext
- 9 Was fehlt

Topic:.FcmdMotiv_de.

.

## 1 Norton Commander für Linux

Topic:.FcmdMotiv_de.linux.

Die erste Motivation für die Erstellung des file-Commanders war dessen Fehlen unter Linux. Mit dem Midnight Commander kann man nichts so gut anfangen, etwas antiquiert. Dolphin & co outen sich zwar als super-usibility, aber das einfache Öffnen einer Textdatei nur mal zum reinschauen benötigt mehrere nervige Mausklicks (rechts, öffnen mit, sub-Menü auswählen, was wars nochmal, kWrite). Verwöhnt von F4 ist das zuviel. Wenn ein scriptfile versehentlich 0d-Zeilentrennungen enthält, weil es aus einem ursprünglichen Windows.bat kopiert war, gibt's Fehler als Shell-script. Aber um zu erfahren ob ein 0d drinsteht und es daran liegt, muss dann erst noch ein Hex-Viewer ersurft werden. Mag sein, dass es selbstverständlich unter jeder Linux-Distribution ein Tool gibt mit spezifischen Commandline-Parametern für Hexview, ist mir aber 'grad so nicht geläufig.

Ein Nachteil unter Dolphin: Steht man in irgendeinem Directory, und wechselt dann in das Parent, dann wird nicht wie beim Total-Commander dieses Directory als aktuell ausgewähltes angezeigt, sondern das aktuelle ist das erste in der Liste. Es ist so wie beim Heraustreten aus einem Zimmer vor die Tür, um dessen Nummer zu erfahren. Beim Dolphin fällt man gleich mal an den Anfang des Flures und muss die Tür, in der man drinnen war, erst wieder mühevoll suchen. Will man benachbarte Verzeichnisse anwählen, so etwa 'Eclipse3_7' und 'Eclipse' als link auf irgend ein ähnliches, dann fällt dieses Problem wieder auf. Erstmal wieder vorkämpfen. Die Tastenkombination alt-left und alt-right für 'zurück' und 'wieder dorthin wo man war' ist nicht sehr hilfreich. Erstens wird man gleich wieder in das Zimmer hineingeschubst und nicht wie gewollt vor dessen Tür, zweitens hilft das nicht um auf kurzem Weg ins Nachbarverzeichnis zu kommen. Und drittens kommt man oft dorthin, wo man zwar zuvor war (technisch korrekt) aber nicht gewesen sein wollte und dies auch vergessen hat. Also ein vollkommen unverständliches Verzeichnis.

Die Anforderung (vielleicht auch an Dolphin) wären:

- Bei Verlassen eines Verzeichnisses hin zum Parent muss das letzte Verzeichnis in der Liste des Parent als aktuelles angewählt sein. So ist es beim Norton Commander und beim Total Commander. Das hilft, um unaufwändig in ein Nachbarverzeichnis mit ähnlichem Namen zu gelangen und um sich zu orientieren.

Eine weitere Anforderung wäre:

- Es wäre günstig, in jedem Verzeichnis beim Eintritt genau dort zu landen, wo man beim letzten Austritt gestanden ist. Häufig wird an bestimmten Files gearbeitet, die dann also gleich wieder angewählt sind.

Genau diese Eigenschaften sind beim The.file.Commander realisiert.

## 2 Navigation mit Favoriten

Topic:.FcmdMotiv_de..

Unter Linux-Dolphin kann man Favoriten anlegen, etwa wie man es bei einem Internet-Browser gewöhnt ist. Die Anzahl der Favoriten ist aber in etwa begrenzt, zu viele überschaut man dann nicht mehr.

Der Total Commander kennt Tabs. Die Tabs sind quasi Favoriten. Das Management mit den Tabs ist aber mindestens für mich nicht befriedigend.

Die Anforderung für mich besteht darin,

- schnell zwischen vielen, deutlich mehr als 10, eher 100 prinzipiell vorgesehenen verschiedenen Verzeichnisbäumen zu wechseln.

- Dabei sollte der jeweilige Favorite nach Anwahl sich im selben Verzeichnis zeigen, das als letztes dort verwendet wurde, sessionbezogen.

- Es sollte die einfache Möglichkeit bestehen, das Stammverzeichnis des Favoriten wieder anzuwählen. Das ist für den Fall wichtig, dass ein Wechsel auf ein beliebiges Verzeichnis erfolgte, man aber von einem bekannten Anfang wieder starten möchte.

- Mehrere Tabs sichtbar.

Diese Anforderung ist eine weitere Motivation meinerseits für ein besseres Tool als TotalCommander, für Linux und für Windows. Die bisherige Realisierung im The.file.Commander leistet folgendes:

- In jedem Panel (links, mitte, rechts) gibt es links den Haupttab für die Auswahl von Favoriten-Tabs. Anwählbar mit wenigen Mausklicks, oder mit [alt-F1] bis [alt-F3], was die Laufwerksauswahl [alt-F1, F2] den Norton commanders ersetzt.

- Eine Auswahl in diesen Favor-Tabs öffnet einen Tab im Panel. Der Tab ist einfach wieder schließbar.

- Innerhalb des Tabs gibt es zwei Tabellen oder 'cards', die 'file card' mit der file/Verzeichnisauswahl selbst und eine Unter-Favoritenauswahl, 'favor-card'.

- Die favor card erlaubt die Auswahl einer Sicht auf die File card, auf die Auswahl eines path. Ein Aliasname steht dabei für den Origin-path des favors beziehungsweise für die thematische Zuordnung. Ist dieser Alias aber bereits in Verwendung, dann wird der letzte dort benutzte Path eingestellt.

- Die Taste [ctrl-<], im Total-Commander für die Anwahl des root-Verzeichnisses des Laufwerks, stellt den Origin-Path für den Alias wieder ein.

- Die favor card ist aus der file card schnell erreichbar, entweder mit Mausklick auf den linken Tab des Panels, oder mit [alt-down]. Ein Wechsel zwischen Verzeichnissen im selben Tab (belegt die selbe file card) ist damit schnell möglich. So kann man beispielsweise zwischen Quellen, Ergebnisverzeichnissen, temp und Doku zu einem Thema wechseln.

- Man kann die selben favor paths mit den selben Alias in verschiedenen favor-Tabs unterbringen und so jeweils zwischen den vorbereiteten Alias-Sichten per Tab wechseln. Das hat sich aber bisher nicht erforderlich gezeigt, da der Wechsel zwischen den Alias per Auswahl in der Favor card genauso schnell möglich ist. Außerdem hat man noch die Möglichkeit, die gleiche Auswahl in den drei Panels passend zu gestalten.

- Die Tabs braucht man also eher deshalb, um schnell das Thema zu wechseln, aber im anderen Tab dort zu bleiben wo man war. Telefonanruf, Tab für das Thema steht schon bereit vom vorigem Anruf, danach wieder einfach zurück in den anderen Tab.

- Bewährt hat sich aber eine gewisse Überlappung, beispielsweise ein Tab mit allen Ergebnispfaden verschiedener Themen, der Tab heißt dann ggf. auch exe oder bin oder gen, dieser wird benutzt für das Thema, dessen Ergebnis man gerade in Bearbeitung hat. Ein anderer Tab steht dann für die Quellen.

Diese Lösung hat sich bisher als ziemlich gut flexibel gezeigt.

## 3 File comparison

Topic:.FcmdMotiv_de..

Für den File-Vergleich leistet der Total-Commander einiges, es gibt eine Reihe verschiedener Tools unter Linux und Windows.

Beim Total commander besteht das Problem, dass das Ergebnis eines Filevergleiches (sync dirs) flach dargestellt wird. Womöglich hat man viele temporäre Files im Baum, die immer verschieden ausfallen, unnötigerweise mit verglichen werden, Zeit kosten, die aber im Sekundenbereich nicht stört. Die Darstellung dieser vielen Files in der Liste stört aber erheblich, weil dann die wenigen wirklich interessierenden Files ggf. übersehen werden.

The.file.Commander bietet hier folgende Lösung:

- Das Vergleichsergebnis wird in der file tab von den zwei ausgewählten Panelen angezeigt.

- Verzeichnisse, in denen es Inhaltsunterschiede gibt, werden markiert. Entweder mit `+` wenn eines von ihnen mehr files enthält aber sonst nur identische Files, oder mit `#` bei unterschiedlichen Files.

- Unterschiedliche Files werden mit `#` markiert, zusätzliche Files mit '+'.

- Man kann nun entscheiden, ob man ein Verzeichnis überhaupt öffnen will. Ein `# | obj` enthält wohl nur Objectfiles, bei denen es klar ist dass sie unterschiedlich sind. Braucht man nicht hinein.

- Es gibt einen Synchronmodus. Dabei wird eine Anwahl eines Files oder Verzeichnisses automatisch auf dem anderen Panel mit dem gleichnamigem Verzeichnis oder File ausgeführt, einschließlich Eintritt oder Austritt aus Verzeichnissen. Schnelles gemeinsames Navigieren.

- Mit den angewählten Files lässt sich per cmd-Auswahl ein diff-view-Programm freier Wahl öffnen. Dies ist nicht Bestandteil des The.file.Commanders, weil es gute Tools gut einbindbar gibt, die meist schon in bekannt und gewohnt sind.

- Selbstverständlich erfolgt der File-Vergleich aufgrund des Inhaltes. Dabei werden in Textfiles auch whitespaces per Anwahl ignoriert. Geplant ist auch scharfschalten einer Ignorierung von Kommentaren in Quellprogrammen.

## 4 Remote files

Topic:.FcmdMotiv_de..

Ein häufiges Problem ist das Kopieren oder zippen von Files auf einem entfernten Rechner. Dabei erfolgt die Ausführung des Kopierens oder Komprimierens auf dem Bedienrechner. Folglich müssen die File-Inhalte über die Verbindung hin- und wieder zurücktransportiert werden. Solange dies in einem üblicherweise schnellem Netzwerk abläuft, ist dies noch kein Thema. Angedacht ist aber auch eine Arbeit mit embedded Geräten, eventuell mit einer lansamen Verbindung.

Das Kopieren von Files wird jetzt schon in einer eigenen Programmeinheit FileRemote in einem eigenem Thread ausgeführt. Das ganze ist so gebaut, dass die Informationen zum Kopieren per beliebiger Schnittstelle übertragen werden. Im Remote Device muss dann ein Agent laufen, der den Auftrag ausführt. Dies ist bisher noch nicht getestet, aber vorgedacht. Adäquat für Löschen, Zippen usw.

Der Zugriff auf Files erfolgt immer mit dem FileRemote.

## 5 Cmd handling

Topic:.FcmdMotiv_de..

Ein wesentlicher Vorteil des Norton commanders ist die Verbindung des angewählten Verzeichnisses mit der Möglichkeit der Ausführung eines Kommandos. Dabei steht eine Kommandozeile zur Verfügung, in der mit wenigen Tasten- oder Mausklicks Pfade der angewählten Dateien kopiert werden können um so dass Kommando zusammenzustellen.

The.file.Commander hat ein extra Panel mit auswählbaren Kommandos, Hot-Key [F2]. Die Kommandos sind in einem Textfile als script zusammengebaut und können ausgewählte Bestandteile der angewählten Files (path, nur name, directory etc) als Argument bekommen. So kann man beispielsweise 2 Files auswählen, das Diff-Tool in der Cmd-card auswählen, mit [Enter] öffnet man dann sofort das Diff-Tool mit den gewünschten 2 Files.

Zusätzlich gibt es die Möglichkeit, in das Ausgabefenster an beliebiger Stelle mit hingeschriebenem `>` am Zeilenanfang und [ctrl-Enter] am Ende ein Kommando auszuführen. Man kann ein cmd auch wiederholen, indem man es im Ausgabetext einfach wieder aufsucht. Oder irgendetwas per Text copy'n paste kopiert usw. `>& cmd` [ctrl-Enter] führt ein Kommando in einer cmd-shell aus. TODO `&cmd` sollte reichen.

Wird ein File mit einer bestimmten Extension mit [Enter] ausgewählt, dann öffnet sich eine Auswahlliste 'öffnen mit' Die Extension-Liste ist in einem config-File zusammengebaut. Man kann die Extensions unabhängig vom Betriebssystem nach eigenen Anforderungen zusammenstellen. Man kann die Extensions auch wie im Betriebssystem verknüpfen. Ein Konverter von der Windows-Registry zu diesem Config-file ist mal angedacht, kann man realisieren, gibt es aber noch nicht. Oft will man eigentlich andere Verknüpfungen als das System so vorsieht.

## 6 Zugriff auf File-Inhalte

Topic:.FcmdMotiv_de..

Eine Stärke des klassichen Norton-Commanders bis zum Total-Commander ist, das man einfach so in einen File hineinschauen kann. Hat man im Windows-Explorer ein File mit irgendeiner extension, man möchte nicht gleich aus dem Internet das (un-)passende Tool suchen sondern als Wissender über File-Inhalte einfach hineinschauen, dann genügt [F3], auch beim The.file.Commander. Mit [F4] wird ein File zum editieren angeboten, auch wenn er nicht die Extension .txt trägt. Stellt man fest - da ist nichts zu editieren, kann man den Editor ja einfach wieder zuklappen. Selbstverständlich auch mit Hex-View.

## 7 Gleiches Tool für Linux und Windows

Topic:.FcmdMotiv_de..

Es ist vorteilhaft, für beide Plattformen das selbe Tool nutzen zu können. Die Programmiersprache Java ermöglicht dies. Bytekompatible Tools in beiden Plattformen. Java ist im Linux-Bereich zuwenig verbreitet, es lohnt sich dies zu verbessern.

## 8 Thema Windows-Kontext

Topic:.FcmdMotiv_de..

Sowohl die extension-Zuordnung als auch ein rechte-Maus-Menü werden nicht aus dem Windows-Kontext übernommen. Dazu müsste The.file.Commander auf die Windows-Registry oder auf diverse Linux-files zugreifen, was der Plattform-Affinität widerspricht. The.file.Commander ist ein Tool eher für Experten, die sich mit Extensions und Programmen auskennen. Es kann daher durchaus als Vorteil betrachtet werden, dass gerade nicht die im Betriebssystem eingestellten Zuordnungen verwendet werden sondern eigene, die man selbst anpassen kann. Das Betriebssystem sollte sich nach dem End- oder Standardnutzer richten. The.file.Commander kann anderes.

Der Nachteil ist allerdings, dass diese Einrichtung denn auch selbst vorgenommen werden muss. Pro extension oder cmd eingentlich kein Problem, man kann dieses bei Bedarf vornehmen und ergänzen. Einer extension wird dann eine command-line mit File-Angaben zugewiesen. Sollte für den erfahrenen System-Nutzer unproblematisch sein und ergänzt mit Beispielen und templates.

## 9 Was fehlt

Topic:.FcmdMotiv_de..

Zugegebenermaßen benutze ich einen geöffneten Total Commander oder Dolphin, um die Dinge zu tun die The.file.Commander noch nicht kann. Es gibt die einfache Möglichkeit, die Navigation im The.file.Commander auszuführen, den Pfad zu kopieren und im anderen File-Tool zu aktivieren, dort dann verzeichnisbezogen die entsprechenden Aktionen auszuführen.

Was fehlt:

- Handling, hineinschauen, kopieren in zip-Files oder anderen Archiven. Java unterstützt die Arbeit mit zip-Archiven, das sollte also als nächstes auch implementiert werden.

- Ein wesentlicher Vorteil des Total Commander ist die Integration von FTP-Access. Sollte auch hier gehen, aber niedrige Priorität.

- Dolphin unter Linux kann ein device mounten, angesteckte USB-Festplatte usw. Das ist aber ein einfache Linux-Befehl, im cmd-Bereich des The.file.Commander unterbringbar.

- Vorschau, Bilder (?)