Benutzerdefinierte Funktion als "Bearbeiten" in Midnight Commander

362
butla

Das Problem

Ich verwende tmux und ich möchte, dass MC Dateien zum Bearbeiten in einem anderen tmux-Fenster öffnet, sodass ich die Dateien während der Bearbeitung weiter durchsuchen kann.

Was ich versucht habe

MC prüft, ob die Variable EDITOR gesetzt ist, und interpretiert sie dann als ein Programm zum Bearbeiten. Wenn dies der export EDITOR=vimFall ist, verwendet MC vim zum Öffnen von Dateien.

Ich habe versucht, darauf aufzubauen:

function foo () { tmux new-window "vim $1"; } export EDITOR=foo 

Wenn ja, $EDITOR some_filedann bekomme ich die Datei in vim in einem anderen tmux-Fenster geöffnet - genau das, was ich wollte.

Wenn ich versuche, in MC zu bearbeiten, wird es für eine Sekunde leer und kehrt dann zum normalen MC-Fenster zurück. MC scheint keine Protokolle zu führen und ich bekomme keine Fehlermeldung.

Die Fragen)

  • Weißt du was ich falsch mache?
  • Haben Sie eine brauchbare Lösung für das, was ich will?
  • Soll ich eine Funktionsanforderung / einen Fehler für MC erstellen?
1
Erstellen Sie ein Bash-Skript, keine Funktion. Ich glaube, 'mc' kennt beim Starten des Editors keine Shell-Funktionen. Marki555 vor 8 Jahren 0
Es funktionierte! Danke, zufällige Person aus dem Internet! Ihre Weisheit wird sehr geschätzt! :) butla vor 8 Jahren 0

1 Antwort auf die Frage

0
Marki555

Sie definieren eine Shell-Funktion, die nicht bekannt ist, mcwenn der Editor gestartet werden soll.

Der richtige Weg ist, ein Bash-Skript zu erstellen, keine Funktion. Setzen EDITORSie dann den Wert darauf, zum Beispiel:

$ cat ~/myEditor.sh #!/bin/sh tmux new-window "vim $1"  export EDITOR=~/myEditor.sh