Midnight Commander yapılandırma konumu konum başlatma seçeneği


11

Çalıştırırsanız mc -F , [Sistem verileri] yapılandırma dizini ve [Kullanıcı verileri] yapılandırma dizini olduğunu görürsünüz.

[Sistem verisi]

Config directory: /etc/mc/

[Kullanıcı bilgisi]

Config directory: /home/<username>/.config/mc/

Birincisi sistem çapında, ikincisi Kullanıcıya özeldir.

İkincisi, kullanıcının bulunduğu yere bağlı gibi görünüyor; diğer bir deyişle, ona bağlı. Bu, mc'yi (geçici olarak) aynı kullanıcıyla alternatif bir yapılandırmayla başlatmak istiyorsanız, daha exportönce HOME değişkenini değiştirmeden (ve değiştirmeden) yapamayacağınız anlamına gelir. Bu 'Başlangıçtan önce-Değişen-HOME' geçici çözümü, hile olsa da, kabul edilemez, çünkü ... HOME'u değiştirir.

Sizce ya

  1. Mc başlamadan önce kullanıcı yapılandırma dizinini dinamik olarak değiştirin (komut satırı seçeneği en uygun şey olacaktır, ancak orada görünmüyor)

  2. HOME'u önce değiştirmek, kullanıcı dir konumunu değiştirmenin tek yolu ise, mc başladıktan hemen sonra kullanıcı için 'doğal' HOME'u geri yükleyin

Farklı yapılandırılan mc bulut sunucuları aynı anda çalışıyorsa birbirlerini engellememelidir.

Yanıtlar:


11

Bu kişinin düşündüğü gibi daha basit olduğu ortaya çıktı. MC_HOME değişkeni, mc başlatılmadan önce alternatif yola ayarlanabilir. Man sayfaları cevabı hemen bulabileceğiniz bir şey değildir =)

şu şekilde çalışır: - her zamanki gibi

[jsmith@wstation5 ~]$ mc -F
Root directory: /home/jsmith

[System data]
<skipped>

[User data]
    Config directory: /home/jsmith/.config/mc/
    Data directory:   /home/jsmith/.local/share/mc/
        skins:          /home/jsmith/.local/share/mc/skins/
        extfs.d:        /home/jsmith/.local/share/mc/extfs.d/
        fish:           /home/jsmith/.local/share/mc/fish/
        mcedit macros:  /home/jsmith/.local/share/mc/mc.macros
        mcedit external macros: /home/jsmith/.local/share/mc/mcedit/macros.d/macro.*
    Cache directory:  /home/jsmith/.cache/mc/

ve alternatif yol:

[jsmith@wstation5 ~]$ MC_HOME=/tmp/MCHOME mc -F
Root directory: /tmp/MCHOME

[System data]
<skipped>    

[User data]
    Config directory: /tmp/MCHOME/.config/mc/
    Data directory:   /tmp/MCHOME/.local/share/mc/
        skins:          /tmp/MCHOME/.local/share/mc/skins/
        extfs.d:        /tmp/MCHOME/.local/share/mc/extfs.d/
        fish:           /tmp/MCHOME/.local/share/mc/fish/
        mcedit macros:  /tmp/MCHOME/.local/share/mc/mc.macros
        mcedit external macros: /tmp/MCHOME/.local/share/mc/mcedit/macros.d/macro.*
    Cache directory:  /tmp/MCHOME/.cache/mc/

Bu özelliğin örneğini kullanın:

Aynı kullanıcı adını uzak sunucuda paylaşmanız gerekir (erişim, rsa anahtarları ile ayırt edilebilir) ve üzerine yazmadan en sevdiğiniz mc yapılandırmasını kullanmak istersiniz. Eşzamanlı oturumlar birbirini etkilemez.

Bu, https://github.com/Russell91/sshrc adresinde açıklanan sshrc yaklaşımının bir parçası olarak iyi çalışır


Bu çözümün küçük bir dezavantajı: MC_HOME'u normal HOME'unuzdan farklı bir dizine ayarlarsanız mc, olağan ~ / .bashrc'nizin içeriğini yoksayar; böylece, bu dosyada tanımlanan özel takma adlarınız artık çalışmaz. Çözüm: ~ / .bashrc dosyanıza yeni MC_HOME dizinine bir symlink ekleyin
Cri

1

Yani, farklı kullanıcı dizinleri ile aynı kullanıcı olarak iki mc örneğini aynı anda çalıştırabilirsiniz , söyleyebildiğim kadarıyla. Yol kodlanmış.

Ancak, hangi yapılandırma dizininin kullanıldığını değiştirmek istiyorsanız, burada bir fikir (test edildi, çalışıyor). Muhtemelen mc koşusu olmadan yapmak istersiniz:

  • Alt dizini $HOME/mc_confiçeren bir dizin oluşturun one.
  • İçeriğini taşı $HOME/.config/mciçine $HOME/mc_conf/onealt dizinin
  • oneDizini olarak çoğaltın $HOME/mc_conf/two.
  • Bir komut dosyası oluşturun $HOME/bin/switch_mc:

    #!/bin/bash
    
    configBase=$HOME/mc_conf
    linkPath=$HOME/.config/mc
    
    if [ -z $1 ] || [ ! -e "$configBase/$1" ]; then
        echo "Valid subdirecory name required."
        exit 1
    fi
    
    killall mc
    rm $linkPath
    ln -sv $configBase/$1 $linkPath  
    
  • Koş şunu switch_mc one. rmböyle bir dosya hakkında havlamayacak, önemli değil.

Umarım orada neler olduğu açıktır - bu bir yapılandırma dizini yolunu bir sembolik bağlantı olarak ayarlar. Şimdi yaptığınız ve kaydettiğiniz yapılandırma değişiklikleri onedizinde olacaktır. Ardından çıkıp switch_mc twoeski yapılandırmaya dönebilir, sonra mc'yi yeniden başlatabilir, değişiklik yapabilir ve kaydedebilirsiniz, vb.

Sen-ebilmek almak-e doğru çıkarmak killall mcve etrafında oynamak; yapılandırma öğesi inibaşlangıçta okunan dosyadadır (böylece anında bu şekilde açamazsınız). Daha sonra, "Kurulumu kaydet" değilseniz çıkışa kadar dokunulmaz, ancak çıkışta üzerine yazılabilir, bu nedenle buradaki tehlike, çalışan örneğin daha önce veya dışında yaptığınız bir şeyi silmenizdir.


gerçekten işe yarıyor, fikriniz oldukça açık, zaman ayırdığınız için teşekkür ederim Ancak benim fikrim, birbirlerini etkilemeden aynı hesap altında farklı yapılandırılmış mc'ler çalıştırabilmekti. Bunu sorumda belirtmeliydim. config dir yolu aslında sabit kodlanmış, ancak kullanıcının ev dizinine RELATIVELY kodlanmış, bu $ HOME değeri, böylece mc başlangıç ​​befrore değiştirerek yapılandırma dir konumunu değiştirir - Bunu kontrol ettim. dezavantajı $ HOME kalır mc çalışır sürece değişti, mc orijinal HOME geri koymak için bir tür başlangıç ​​kanca varsa çözülebilir
Tagwint

Orijinal
q'umu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.