Linux 14.983 Themen, 106.402 Beiträge

editoren

ghartl1 / 31 Antworten / Flachansicht Nickles

hallo,

frage:

sind linux editoren leistungsfähiger als windows-editoren?
wenn man z.bsp ein 1 gb grosses file bearbeiten will, kann man das ja auch
auf der kommandozeile machen in linux > vim, pico
oder grafisch mit gvim

windows hab ich jetzt keine ahnung

hat wer erfahrungswerte, ob unter linux die editoren sich mit "grossen" files leichter tun?

gruss günter

bei Antwort benachrichtigen
Andreas42 ghartl1 „die frage, die sich aufdrängt... wie verwaltet vim die...“
Optionen

Hi!

Naja, es gibt durchaus nicht wenige Tipps um die Arbeitsgeschwindigkeit vom VIM mit sehr großen Dateien zu erhöhen. Offenbar findet ih nicht jeder in jeder Situation schnell. Zwinkernd

http://www.vim.org/scripts/script.php?script_id=1506
http://vim.wikia.com/wiki/Faster_loading_of_large_files

Hmm, hier geht es direkt um deine Frage:
http://vim.1045645.n5.nabble.com/Can-vim-view-VERY-large-files-w-o-having-to-load-entire-file-into-memory-td1186583.html
beantwortet wird sie aber nicht...

Um jetzt genaues sagen zu können, müsste man in die Quelltexte schauen (und diese auch noch verstehen können). Klar ist allerdings, dass er mit dateien klarkommt, die größer als der vorhandene Arbeitsspeicher sind. (Für mich ist das eine der Eigenschaften, die ich bei einem "vernünftigen" Editor voraussetze.)
VIM basiert auf VI und der stammt noch aus der Zeit, als 4Gbyte eine unvorstellbare RAM-Größe waren. Damals gab es aber natürlich schon Dateien die Größer waren. Ergo musste VI schon i Kern damit klarkommen.

Ich schätze das der Trick ist, die große Datei stückchenweise zu laden. Viel mehr bleibt ja auch nicht übrig.

Ich denke, dass alle Betriebssysteme beim Lesen einer Datei, die freie Positionierung des Filepointers erlauben, d.h. ich kann dem Betriebssystem sagen: gehe an Position X und lade von dort nn Bytes aus der Datei. So kann man z.B. schnell vom Anfang einer Datei zum Ende "springen", da dabei nicht die ganze Datei geladen werden muss.

Bei Änderungen dürfte man die Sachen beschleunigen, indem man den eingelesenen und geänderten Teil im Speicher nicht sofort in die eigentliche Datei zurückschreibt, sondern in temporären Dateien speichert. Man muss sich dann nur merken, dass dieser Teil in der temp. datei T1 steht und nicht in der Hauptdatei, wenn man diesen Teil wieder Laden will.
Erst beim eigentlichen Speichern der Änderungen baut man die neue Datei aus den unveränderten Teilen der alten Datei und den temp. Dateien neu zusammen. Das kann dann zwar dauern, aber darauf ist der User ja dann gefasst.

Bis dann
Andreas

Mir faellt gerade kein bloeder Spruch ein, der mich ueber alle anderen erhebt.
bei Antwort benachrichtigen