Midnight Commander 中的自訂功能“編輯”

Midnight Commander 中的自訂功能“編輯”

問題

我正在使用 tmux,我希望 MC 在另一個 tmux 視窗中開啟檔案進行編輯,這樣我就可以在編輯時繼續瀏覽檔案。

我嘗試過的

MC 檢查是否設定了 EDITOR 變量,然後將其解釋為要編輯的程序,因此如果設定了,export EDITOR=vim那麼 MC 將使用 vim 開啟檔案。

我試圖以此為基礎:

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

如果我這樣做,$EDITOR some_file那麼我會在另一個 tmux 視窗中的 vim 中開啟檔案 - 這正是我想要的。

遺憾的是,當我嘗試在 MC 中編輯時,它會空白一秒鐘,然後回到正常的 MC 視窗。 MC 似乎沒有保留任何日誌,我也沒有收到任何錯誤訊息。

問題

  • 你知道我做錯了什麼嗎?
  • 對於我想要的東西,您有可用的解決方法嗎?
  • 我應該為 MC 建立功能請求/錯誤嗎?

答案1

您正在定義一個 shell 函數,該函數mc在嘗試啟動編輯器時是未知的。

正確的方法是建立 bash 腳本,而不是函數。然後EDITOR為其設定值,例如:

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

export EDITOR=~/myEditor.sh

答案2

您已經可以在編輯時瀏覽文件。 MC的內部編輯器是一個非模式對話框。只需按Alt-Shift-[(和Alt-Shift-[)即可在對話方塊之間切換(其中之一是文件瀏覽器)。

相關內容