Dein Hauptproblem ist nicht, `delim_0`, `delim_1` etc. zu verstehen. Wobei diese übrigens in den von Ijon [in seiner Antwort](http://texwelt.de/wissen/fragen/20842/index-satzzeichenabstand-nach-stichwort-definieren/20843) verlinkten Dokumenten, insbesondere [dem Manual](http://texdoc.net/texmf-dist/doc/man/man1/makeindex.man1.pdf) eigentlich erklärt sind:
![Screenshot aus dem Manual][1]
Auf Deutsch also:
![Screenshot Übersetzung][2]
Es gibt weitere solche Einstellungen, die bitte einschließlich ihrer Bedeutung dem Manual entnommen werden. Ebene 0 ist in der Zählweise von `makeindex` quasi ein Hauptstichwort, wie man es normalerweise mit `\index{Stichwort}` erzeugt. Ebene 1 ist die erste Unterebene, wie man es in der Voreinstellung von `makeindex` mit `\index{Stichwort!Unterstichwort}` erzeugt. Ebene 2 entsprechend die Unterunterebene, wie man sie in der Voreinstellung mit `\index{Stichwort!Unterstichwort!Unterunterstichwort}` erzeugt.
Zu beachten ist übrigens auch, dass für die Strings C-printf-Syntax gilt. Um also beispielsweise einen Backslash in die Ausgabe zu bekommen, muss man zwei verwenden. Einen Zeilenumbruch erreicht man dagegen mit `\n`. Man kann das bereits sehr gut bei den Angaben für die Voreinstellungen diverser Parameter, beispielsweise `preamble` sehen.
---
Aber wie gesagt, das ist nicht Dein Problem. Dein Problem ist, dass Du offenbar die Verwendung von `filecontents` nicht verstanden hast. Ohne das gleichnamige Paket schreibt diese Umgebung ihren Inhalt in die angegebene Datei nur, *wenn diese Datei noch nicht existiert*. Gleichzeitig schreibt LaTeX den Hinweis in die `.log`-Datei: »``Writing file `…'``«, wobei statt der Pünktchen natürlich der Dateinamen ausgegeben wird. *Existiert die Datei bereits*, wo wird sie hingegen nicht neu geschrieben. In der `.log`-Datei heißt es dann auch: »``File `…' already exists on the system. Not generating it from this source.``« Wie man sieht, lohnt es sich manchmal wirklich, sich bei Problemen auch einmal die `.log`-Datei genauer anzuschauen.
Willst Du per `filecontents`-Umgebung eine existierende Datei überschreiben, so musst Du zusätzlich das gleichnamige Paket [`filecontents`](https://ctan.org/pkg/filecontents) laden und zwar noch vor der `filecontents`-Umgebung. Um ein Paket noch vor `\documentclass` zu laden, muss man `\RequirePackage` statt `\usepackage` verwenden:
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.ist}
delim_0 " "
delim_1 " "
\end{filecontents*}
\documentclass[ngerman]{scrartcl}
\usepackage{imakeidx}
\makeindex[intoc,options={-s \jobname.ist},name=geo,title=Geografischer Index,columns=2]
\begin{document}
Ort-A\index[geo]{Ort-A}\\
Ortsteil-a\index[geo]{Ort-A!Ortsteil-a}\\
Ortsteil-b\index[geo]{Ort-A!Ortsteil-b}\\
Ort-B\index[geo]{Ort-B}\\
Ort-C\index[geo]{Ort-C}\\
\printindex[geo]
\end{document}
Hier erhältst Du dann ab dem zweiten LaTeX-Lauf in der `.log`-Datei: »``Overwriting file `…'``«. Die existierende Datei wird also überschrieben. Natürlich muss man dann selbst gut aufpassen, dass man nicht versehentlich eine wichtige Datei überschreibt. So würde nun beispielsweise `\begin{filcontents}{\jobname}` auch ohne die Endung `.tex` bei den meisten TeX-Implementierungen in Wirklichkeit die TeX-Datei selbst überschreiben. Dabei wird auch kein Backup erzeugt. Das Hauptdokument wäre damit unwiederbringlich verloren!
Als Alternative kannst Du natürlich nach einer Änderung einer `filecontents`-Umgebung und vor dem nächsten LaTeX-Lauf auch einfach die entsprechende Datei direkt im Dateisystem löschen.
Die Verwendung von `filecontents`-Umgebungen in [Minimalbeispielen](http://texwelt.de/wissen/fragen/569/was-ist-ein-vollstandiges-minimalbeispiel-oder-kurz-vm-und-wie-erstelle-ich-dieses) geschieht übrigens meist nur aus zwei Gründen:
1. Es ist sichergestellt, dass der Empfänger des Minimalbeispiels nicht durch versehentliches Speichern von Dateien unter einem falschen Namen oder in einem falschen Verzeichnis ein Problem bekommt.
2. Das Beispiel funktioniert ohne Upload zusätzlicher Dateien in Online-Editoren wie Overleaf.
Überträgt man ein solches Beispiel – nachdem man es unverändert getestet hat – ins wahre Leben, also auf sein eigenes Dokument, so spricht absolut nichts dagegen die im Minimalbeispiel per `filecontents` angelegte Datei nicht mehr per `filecontents` anzulegen und zu ändern, sondern als eigenständige Datei mit Hilfe eines Editors anzulegen und zu bei Bedarf zu verändern. Dabei muss man dann natürlich darauf achten, nicht in die Falle aus obigem Punkt 1 zu laufen. Sollte man später wieder ein Minimalbeispiel aus seinem Dokument machen müssen, sollte man natürlich [erneut zu `filecontents` greifen](http://texwelt.de/wissen/fragen/569#Textdateien).
[1]: http://texwelt.de/wissen/upfiles/test_20171101_091656.png
[2]: http://texwelt.de/wissen/upfiles/test_20171101_094149.png