
問題
我正在使用 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-[
)即可在對話方塊之間切換(其中之一是文件瀏覽器)。