![Man-Pfad durch Vim abrufen](https://rvso.com/image/1302247/Man-Pfad%20durch%20Vim%20abrufen.png)
Also habe ich Vim als meinen Standard-Man-Viewer eingerichtet. Außerdem starte ich NERDTree automatisch – aber ich könnte wirklich darauf verzichten, dass NERDTree jedes Mal, wenn ich Man überprüfe, den Speicherort der Manpages anzeigt.
Ich habe versucht, Folgendes in meiner .vimrc einzurichten:
if (match(expand("%:p:h"),???) == -1)
" load NERDTree here
endif
Aber ich bin mir nicht wirklich sicher, womit ich den Pfad abgleichen soll. $MANPATH wäre die naheliegende Wahl, echo $MANPATH
gibt aber im Terminal nichts aus. Beim Ausführen manpath
wird zwar ausgegeben /usr/local/man:/usr/local/share/man:/usr/share/man
, aber ich habe keine Ahnung, wie ich das in meine vimrc einbinden kann. Natürlich könnte ich die Pfade einfach als Zeichenfolge einfügen, aber das wäre Betrug.
Im Grunde suche ich entweder nach:
- eine Möglichkeit, die Variable $MANPATH so einzustellen, dass sie auf die Ordner verweist, die aufgelistet sind von
manpath
- irgendeine andere Möglichkeit, die Pfade in Vim zu erhalten
BEARBEITEN: Eine Anmerkung nach der Annahme für den Fall, dass jemand dieses Skript ausprobieren möchte – match
muss durch ersetzt werden matchstr
.
Antwort1
let $MANPATH = substitute(system("manpath"), "\n", "", "")
Die Funktion substitute() entfernt den nachstehenden Zeilenumbruch, der in der Ausgabe von system() enthalten ist.