Hier ist, was ich schlag, zuerst in Pseudo-Code, dann in bash tun wollen so weit wie ich bekommen habe, dann den Fehler:Bash Substitution von Vim AutoCmd
„Was ich will,“ Pseudo-Code
If a file is saved in the "Cover Letters" directory with a filename ending in "md":
run a Bash command like:
pandoc [FILENAME] -o [FILENAME].replace(".md",".pdf") -s -S
Was ich bisher Got
:autocmd BufWritePost ~/Dropbox/Professional/Covers/*.md pandoc % -o ${%/md/pdf} -s -S
Dieser Code korrekt identifiziert, wenn eine "md" Datei gespeichert wird im Dropbox-Ordner und führt dann einen Befehl mit dem Dateinamen aus. Der Befehl führt jedoch zu folgenden Fehlern:
Was ist falsch an meiner Vertretung? Ich fühle mich wie ich so nahe bin ...
Edit: aktuelle Version:
autocmd BufWritePost ~/Dropbox/Professional/Covers/*.md #!star='~/Dropbox/Professional/Covers/'% && fin=${star/md/pdf} && p andoc star -o fin -s -S
Ich habe eine ähnliche Frage [\ [here \]] (http://stackoverflow.com/a/38671667/1620779) beantwortet. Sehen Sie sich den Substitutionsteil in der Funktion an, der genau das ist, was Sie brauchen. – sjsam
Danke, funktioniert das Ersetzen nur auf Variablen statt Strings? Ich bin mir nicht sicher, wie ich Vim dazu bringen kann, ein mehrzeiliges Bash-Skript (statt eines Einzeilers) auszuführen. –
Was ist los mit $ {test.md/md/pdf}? –