Vim gibt pdf Datei im Homeverzeichnis aus

R

ralli

Guest
Ich benutze seit einiger Zeit Vim als Editor. In dem Verzeichnis

Code:
Tex
im Homeverzeichnis habe ich zwei Dateien abgelegt,

Code:
vorlage.tex
grafik.png

Wenn ich in der Konsole pdflatex vorlage.tex eingebe, wird auch ordnungsgemäß eine PDF Datei erzeugt. Klicke ich die Tex Datei an und öffne sie in Vim und gebe:
Code:
:!pdflatex %

ein, wird zwar auch die PDF Datei erzeugt, aber leider im Homeverzeichnis und nicht im Arbeitsverzeichnis Tex. Wie bringe ich Vim dazu, die Ausgabe dort zu machen, in der die Tex Datei liegt und mit Vim geladen wurde.
 
Klicke ich die Tex Datei an und öffne sie in Vim
Also aus einem Filemanager in einer X-Session? Dann ist das kein Wunder, dein "current directory" ist dein Homeverzeichnis, und % expandiert eben zum vollständigen Pfad. pdflatex schreibt immer ins aktuelle Verzeichnis.

Starte mal vim (bzw gvim) aus der Shell, nachdem du per cd in dein Verzeichnis gegangen bist, dann tut es was du erwartest.
 
...Klicke ich die Tex Datei an und öffne sie in Vim und gebe:
Code:
:!pdflatex %

ein, wird zwar auch die PDF Datei erzeugt, aber leider im Homeverzeichnis und nicht im Arbeitsverzeichnis Tex. Wie bringe ich Vim dazu, die Ausgabe dort zu machen, in der die Tex Datei liegt und mit Vim geladen wurde.

„Anklicken” war noch nie eine gute Idee ;-)
 
Hallo @Zirias,
Also aus einem Filemanager in einer X-Session?
Ja.

Dann ist das kein Wunder, dein "current directory" ist dein Homeverzeichnis, und % expandiert eben zum vollständigen Pfad. pdflatex schreibt immer ins aktuelle Verzeichnis.
Aha, danke, ich lerne nicht aus.

Starte mal vim (bzw gvim) aus der Shell, nachdem du per cd in dein Verzeichnis gegangen bist, dann tut es was du erwartest.
Ganz genau, das wars.
 
„Anklicken” war noch nie eine gute Idee ;-)
Hallo Walter, aha ein Lebenszeichen .... na ja, ab und zu klick ich noch, aber überwiegend arbeite ich schon mit der Tastatur und minimalistisch, verzichte jetzt sogar auf Lyx, weil die QT Abhängigkeit mich einfach stört. Und bin mittlerweile sogar ein Vim Fan geworden! Zurück in die Zukunft.;)
 
Also aus einem Filemanager in einer X-Session? Dann ist das kein Wunder, dein "current directory" ist dein Homeverzeichnis, und % expandiert eben zum vollständigen Pfad. pdflatex schreibt immer ins aktuelle Verzeichnis.
Leider kann ich das so nicht bestätigen. Ich habe OpenBSD 6.5 neu installiert und mir den JWM als Windowmanager installiert sowie Thunar als Dateimanager und g(vim). Wenn ich im Dateimanager Thunar die Tex Datei anclicke, wird sie automatisch in gvim geladen. Wenn ich dann.
Code:
:!pdflatex %
im vim eingebe,wird sie ordnungsgemäß compiliert und die entsprechende PDF Datei erstellt. Und zwar nicht im "current directory", sondern im Verzeichnis der aufgerufenen Datei, in diesem Falle im Verzeichnis Tex. Alles so wie ich es mir vorstellte und wollte. Was da vorher schief lief, kann ich mir nicht erklären, aber jetzt funktioniert es.:)
 
... dein "current directory" ist dein Homeverzeichnis, und % expandiert eben zum vollständigen Pfad....

/* kluscheissmodus_on */
% expandiert den Dateinamen - sonst nix

"... if {cmd} contains "%" it is expanded to the current file name... "
/* ..._off */

@ralli

wenn Du Dir unsicher bist, was da im vim bei einem shell - execute ( ! oder cmd ) passiert,
dann nutze einfach die Möglichkeiten der shell

in deinem Beispiel wäre ein :! echo % eine gute Idee - einfach um mal zu sehen, was da substituiert wird
oder Du schaust einfach mal mit :! ls -l in welchem Verzeichnis Du Dich bewegst
oder Du erzwingst im vim beim Aufruf des shell-kommandos den Pfad mit :! irgendeinbefehl /dir/blah/mein_text.txt usw.
 
wird sie ordnungsgemäß compiliert und die entsprechende PDF Datei erstellt. Und zwar nicht im "current directory", sondern im Verzeichnis der aufgerufenen Datei, in diesem Falle im Verzeichnis Tex.
Nö, pdflatex gibt (ohne weitere Optionen) IMMER ins current directory aus. Um das zu präzisieren: Was das current directory ist, hast du nicht direkt unter Kontrolle, wenn du etwas aus einem grafischen Dateimanager startest. Das hängt einfach von diesem Dateimanager ab.
 
Ich möchte auch noch mal :term erwähnen. Das ist meiner bescheidenen Meinung nach wesentlich angenehmer als einfache Kommandos, da eben ein vollwertiges Terminal ist. Aber das mag Geschmackssache sein.
 
.... Und bin mittlerweile sogar ein Vim Fan geworden! ...

Fein, dann vergiss den gvim - dessen Menüs verwirren Dich nur.
Ausserdem solltest Du die Maus abziehen und ganz weit weg legen ...
auch die Pfeiltasten der Tastatur solltest Du vergessen oder einfach in der .vimrc mit irgend einer sinnlosen anderen Taste remappen

wenn Du wirklich was im visuellen Mode (v) machst, dann markiere vi - like ... auf keinen Fall mit Maus oder Pfeiltasten.
Versuche so viel wie möglich im normal-mode zu machen. Dazu gehört vor allem die Navigation!
Erst wenn dein Cursor dort steht, wo Du wirklich was eingeben willst und musst .. erst dann ueberlege ob Du
mit i oder a in den Einfuege-Modus wechselst.
Beende den Einfüge Modus so schnell wie möglich und schaue Dir mit :reg immer wieder deine Register bzw.
deren Inhalt an
Bedenke, dass Du Wörter, Sätze, Absätze oder Bloecke in zusätzliche Register von a bis z speichern kannst.

Navigiere im Normal - Mode auch viel mit der Suchfunktion und nutze die Kurzbefehle
Beispiel: statt Eingabe von /Suchbegriff_Vorwaertssuche oder ?Suchbegriff_Rueckwaertssuche
( und falls dein Suchbegriff schon irgendwo im Text steht ) ... geh einfach mit dem Cursor drauf
( nein, nicht mit Pfeiltaste oder Maus :-) ) und drücke den Star-Operator, also den *
dann mit n vorwaerts zu den Suchtreffern ..oder mit shift-N rückwärts zu den Suchtreffern
 
Man kann es aber auch ein bisschen übertreiben ;)

Vim kann mit Cursor-Tasten umgehen, und die habe ich heutzutage überall -- also wieso sollte ich sie nicht benutzen und stattdessen eine "Notlösung" nehmen, die auch auf exotischen alten Terminals geht?

Und was gvim angeht: Ist doch super nützlich, selbst wenn man Icons und Menüs (fast) nie anrührt:
  • Es geht in einem neuen Fenster auf und gibt mein Terminal direkt wieder frei (forkt selbständig).
  • Ich KANN auf einfache Weise das Clipoard (nicht die primary selection) nutzen, manchmal praktisch im Austausch mit anderen Programmen.
 
oder Du schaust einfach mal mit :! ls -l in welchem Verzeichnis Du Dich bewegst
Das hat gut funktioniert und ich befinde mich genau in dem Verzeichnis, aus dem die tex Datei mit gvim aufgerufen wird. Aber das wußte ich ja auch schon, denn sonst hätte ich ja nicht das gewünschte Ergebnis.
 
Ich möchte auch noch mal :term erwähnen. Das ist meiner bescheidenen Meinung nach wesentlich angenehmer als einfache Kommandos, da eben ein vollwertiges Terminal ist. Aber das mag Geschmackssache sein.
Gute Idee, funktioniert auch bei mir mit Vim Version 8.1, also aktuell.
 
Fein, dann vergiss den gvim - dessen Menüs verwirren Dich nur.
Ausserdem solltest Du die Maus abziehen und ganz weit weg legen ...
auch die Pfeiltasten der Tastatur solltest Du vergessen oder einfach in der .vimrc mit irgend einer sinnlosen anderen Taste remappen
Bin ja erst am Anfang, aber auf einem guten Weg. Vim ist ja auch gut dokumentiert. Auf jeden Fall werde ich Deine Empfehlungen Schritt für Schritt umsetzen. Wofür der visuelle Modus steht und was der macht, weiß ich noch nicht, werde ich mir aber zeitnah anschauen. Danke für Deine ausführliche und hilfreiche Antwort.:)

Meine Motivation war, von Lyx weg zu kommen, weil der aufgeblähten LaTeX Code produziert. Dann die Abhängigkeit von QT. Und wenn ich es manuell mache, dann verstehe ich es auch besser. Eine Präambel und Grundgerüst mache ich ja nur ein Mal und benutze sie dann als Template unter einem anderen Dateinamen immer wieder neu.

Und die anderen von dir beschriebenen Vorteile sprechen ja auch für gvim.
 
Man kann es aber auch ein bisschen übertreiben ;)

Vim kann mit Cursor-Tasten umgehen, und die habe ich heutzutage überall -- also wieso sollte ich sie nicht benutzen und stattdessen eine "Notlösung" nehmen, die auch auf exotischen alten Terminals geht?
...

mit alten Terminals hat das nichts zu tun

Bei einer OS Installation steht üblicherweise erstmal der vi und nicht der vim zur Verfügung
Und beim vi funktionieren die Pfeiltasten im Insert-Mode schon mal nicht - bzw. nicht so, wie sie es sollen!

vi und vim sind fuer schnelles 10-Fingertippsystem ausgelegt - die Finger der rechten Hand liegen auf j k l ...
also navigiert man am schnellsten mit mit diesen hjkl statt mit cursortasten, die irgendwo unten oder weit rechts liegen.

ausserdem beziehen sich meine Ratschläge auf die Lernphase ... wenn die Dinge mal einigermassen sitzen, kann man immer noch
mit Mäusen und Pfeilen arbeiten :-)
 
Man kann es aber auch ein bisschen übertreiben ;)
Ist doch schön, das es nicht nur ein entweder/oder sondern auch ein sowie als auch gibt.;)
Ich möchte beides benutzen, denn ich kann auch in eine Situation kommen, wo X crasht und ich auf der Konsole zurecht kommen muß.
Aber die von Dir geposteten Vorteile sprechen auch für sich, danke.
 
mit alten Terminals hat das nichts zu tun
Auf keinen Fall.

Bei einer OS Installation steht üblicherweise erstmal der vi und nicht der vim zur Verfügung
Und beim vi funktionieren die Pfeiltasten im Insert-Mode schon mal nicht - bzw. nicht so, wie sie es sollen!
Genau so ist es. Der Punkt geht an Dich.:)

vi und vim sind fuer schnelles 10-Fingertippsystem ausgelegt - die Finger der rechten Hand liegen auf j k l ...
also navigiert man am schnellsten mit mit diesen hjkl statt mit cursortasten, die irgendwo unten oder weit rechts liegen.
Das ist ein unbestreitbarer Vorteil. Dabei hat sich der Entwickler gewiß was bei gedacht.
 
ausserdem beziehen sich meine Ratschläge auf die Lernphase ... wenn die Dinge mal einigermassen sitzen, kann man immer noch
mit Mäusen und Pfeilen arbeiten :-)
Und genau, das habe ich mir auch dabei gedacht und es auch richtig verstanden. Danke, das Du für Aufklärung sorgst. Und nu muß ich wider arbeiten und lernen, bin ja im Un(ruhestand) mit fast 69.;)
 
Entschuldige bitte den Doppelpost, mein Browser Surf spinnt gerade ein wenig....
 
mit alten Terminals hat das nichts zu tun
Naja, ursprünglich schon (auch). Hat ja einen Grund, dass die "klassischen" vi-s das nicht können...
Bei einer OS Installation steht üblicherweise erstmal der vi und nicht der vim zur Verfügung
Bei mir weder noch, habe VI im FreeBSD base build deaktiviert ;) Die Konfiguration für das Paketrepo wird bei ner frischen Installation per "cat - >/path/to/conf" erzeugt und dann wird als erstes vim installiert :) Aber das nur am Rande ...
 
Man kann die Menüs im gvim auch abschalten. Das sieht dann in etwa so aus:
gvim.png
Ich finde den gvim dem normalen, im Terminal laufenden vim schon deutlich überlegen. Er ist wesentlich schneller, auch im Vergleich zu wirklich schnellen Terminals wie Alacritty. Er hat eine deutlich bessere Schriftdarstellung. Es gibt das + Register. Und so weiter.

Aber letztendlich dürfte das wie so viele Dinge im Leben einfach Geschmackssache sein.
 
Aber letztendlich dürfte das wie so viele Dinge im Leben einfach Geschmackssache sein.
So ist es, aber ich bin auch ein praktisch veranlagter Mensch. Und ich finde den g(vim) schon wegen seiner Vielfalt wirklich faszinierend. Eben ein echtes Allroundtalent.:)
 
Der gvim ist auch extrem konfigurierbar. Guckst Du hier:
GUI Optionen
Es können sogar eigene Menüs generiert werden mit eigenen Items. Einfach Klasse!
 
Zurück
Oben