
Das Problem
Ich verwende tmux und möchte, dass MC Dateien zum Bearbeiten in einem anderen tmux-Fenster öffnet, sodass ich während der Bearbeitung weiter in den Dateien stöbern kann.
Was ich versucht habe
MC prüft, ob die EDITOR-Variable gesetzt ist, und interpretiert sie dann als Programm zum Bearbeiten. Wenn dies der Fall ist, export EDITOR=vim
verwendet MC vim zum Öffnen von Dateien.
Ich habe versucht, darauf aufzubauen:
function foo () { tmux new-window "vim $1"; }
export EDITOR=foo
Wenn ich $EDITOR some_file
das tue, öffne ich die Datei in Vim in einem anderen Tmux-Fenster – genau das, was ich wollte.
Leider wird es beim Versuch, in MC zu bearbeiten, für eine Sekunde leer und kehrt dann zum normalen MC-Fenster zurück. MC scheint keine Protokolle zu führen und ich erhalte keine Fehlermeldung.
Die Fragen)
- Weißt du, was ich falsch mache?
- Haben Sie eine brauchbare Problemumgehung für mein Anliegen?
- Soll ich eine Funktionsanforderung/einen Fehler für MC erstellen?
Antwort1
Sie definieren eine Shell-Funktion, deren Name unbekannt ist, mc
wenn sie versucht, den Editor zu starten.
Der richtige Weg besteht darin, ein Bash-Skript zu erstellen, keine Funktion. Legen Sie dann EDITOR
einen Wert fest, zum Beispiel:
$ cat ~/myEditor.sh
#!/bin/sh
tmux new-window "vim $1"
export EDITOR=~/myEditor.sh
Antwort2
Sie können Dateien bereits während der Bearbeitung durchsuchen. Der interne Editor von MC ist ein nicht-modales Dialogfeld. Drücken Sie einfach Alt-Shift-[
(und Alt-Shift-[
), um zwischen den Dialogfeldern zu wechseln (eines davon ist der Dateibrowser).