डिफ़ॉल्ट संपादक को _ sudo systemctl edit [unit-file] _ के लिए vim में बदलें


18

[4.13.12-1-ARCH के साथ gnome3 और XDM पर gdm]

मैंने पहले ही अपने विज़ुअल और EDITOR env-var सेट कर लिए हैं vim। इसी तरह मैंने SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR अपने ~ / .bashrc में कोशिश की , कोई फायदा नहीं हुआ।

जब आर्क (सिस्टमड) के माध्यम से इकाई फ़ाइलों को संशोधित करना

 $ sudo systemctl edit _unit_ 

मैं खुद को घूरता हुआ पाता हूं nano। जीवन बहुत छोटा है और मैं vimहर तरह से चाहता हूं । मैं यह कैसे करु ?

जवाबों:


13

आप अपने स्वयं के उपयोगकर्ता के लिए चर सेट कर रहे हैं, लेकिन systemctlकमांड को रूट ( sudo) के रूप में चला रहे हैं । इसलिए, आपके उपयोगकर्ता के लिए आपके द्वारा निर्धारित चर अप्रासंगिक हैं।

इसे ठीक करने के लिए, आप या तो (लेकिन 1 के साथ जा सकते हैं):

  1. इसके sudoसाथ चलाएं -Eताकि यह मौजूदा पर्यावरण को निर्यात करे:

    sudo -E systemctl edit _unit_
    
  2. SYSTEMD_EDITORरूट करने के लिए वैरिएबल (आपको केवल इसकी आवश्यकता है) जोड़ें ~/.profile:

    export SYSTEMD_EDITOR="/bin/vi" 
    

    फिर साथ चलें

    sudo -i systemctl edit _unit_ 
    

अंत में, ध्यान दें कि आपको अपने संपादक को पूर्ण पथ निर्दिष्ट करने की आवश्यकता है, न कि केवल उसका नाम। तो यह है /bin/viऔर नहीं है vim


मैं sudo -E ...संशोधित होने के बाद पहले से ही काम कर रहा था /root/.bashrcsudo -i ...हालांकि सूडो को लॉगिन शेल ( ) के रूप में चलाने के बारे में नहीं सोचा था । न तो बहुत संतोषजनक हैं क्योंकि आपको संबंधित झंडे को याद करने की आवश्यकता है, लेकिन हे ... इससे भी बदतर चीजें हैं, मुझे लगता है ... फिर भी (शायद यह ब्याज की है), मैं पुष्टि करता हूं कि हम में से कुछ के लिए: SYSTEMD_EDITOR=/usr/bin/vim; export SYSTEMD_EDITOR(रूट के रूप में) सही। पथ सभी इस बात पर निर्भर करता है कि आपको vimपहली जगह में yr pkg कैसे मिला है। प्लस के रूप में मैंने रूट के लिए पेट को परिभाषित किया, vimपर्याप्त है। इसे करने का सिर्फ एक तरीका नहीं है। धन्यवाद @terdon।
Cbhihe

1
@cbhihe आह, ठीक है। मैंने बस कोशिश की vimऔर इसने शिकायत की जिसके कारण मैंने इसका उल्लेख किया। और हे, मैं एक Emacs उपयोगकर्ता :) हूँ
terdon

1
@ काबिले का मानना ​​है कि यह एक आसान विकल्प नहीं था। मैंने भी इसका उपयोग करके परीक्षण किया vim! बात बंद करने में मुझे तीन दिन लग गए।
terdon

24

पहली विधि, आप इस लाइन को इसमें जोड़ सकते हैं ~/.bashrc:

export SYSTEMD_EDITOR=vim

और फिर sudo visudoइस लाइन को जोड़ें:

Defaults  env_keep += "SYSTEMD_EDITOR"

प्रभावी होने के लिए नए बैश सत्र शुरू करें, फिर sudo systemctl edit <foo>हमेशा की तरह चलाएं ।

दूसरी विधि का उपयोग है update-alternatives:

अपने वांछित को स्थापित करें editor, जैसे vim.gtk3:

$ जो संपादक
संपादक / usr / बिन / संपादक है
$ sudo अद्यतन-विकल्प - स्थापना "$ (कौन सा संपादक)" संपादक "$ (जो vim.gtk3)" 15

फिर अपना इच्छित चुनें editor:

$ sudo update-alternatives --config editor
There are 7 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/vim.gtk3    50        auto mode
  1            /bin/ed             -100       manual mode
* 2            /bin/nano            40        manual mode
  3            /usr/bin/code        0         manual mode
  4            /usr/bin/gedit       5         manual mode
  5            /usr/bin/vim.basic   30        manual mode
  6            /usr/bin/vim.gtk3    50        manual mode
  7            /usr/bin/vim.tiny    15        manual mode

Press <enter> to keep the current choice[*], or type selection number: 6
update-alternatives: using /usr/bin/vim.gtk3 to provide /usr/bin/editor (editor) in manual mode

तीसरी विधि EDITORरनटाइम पर सीधा सेट है:

sudo EDITOR=vim systemctl edit <foo>

पूर्वता हैं पहली विधि> तीसरी विधि> दूसरी विधि

"GUI" संपादक को इस तरह सेट करने का प्रयास न करें geditक्योंकि क्यों न Gksu / gksudo या वैल्डलैंड के साथ sudo काम के साथ एक ग्राफिकल एप्लिकेशन लॉन्च किया जाए? और Gedit फाइलों को संपादित करते समय 100% CPU का उपयोग करता है


1
धन्यवाद 皞 皞, लेकिन मेरा वास्तव में मतलब था vim, नहीं gedit
Cbhihe

@ चेभी geditकेवल एक उदाहरण है जो साबित करता है कि यहां तक ​​कि गुई संपादक भी काम कर रहा है, निश्चित रूप से आप vimइस उत्तर के साथ उपयोग कर सकते हैं ।
林果 林果

1
ん ん 林, आप सही कह रहे हैं। वास्तव में मैंने sudoers फ़ाइल को संपादित करके yr समाधान लागू किया sudo visudo... मैं पहली प्रतिक्रिया स्वीकार करने में बहुत तेज था। जैसा कि /etc/suddoersआपने प्रस्तावित किया था, मैं फ़ाइल के संशोधन को ठीक से देख रहा था । धन्यवाद और yr समाधान नहीं चुनने के लिए क्षमा करें। मेरी गलती।
Cbhihe

[अद्यतन] मैंने सलाह जोड़ने के लिए अपना उत्तर संपादित नहीं किया है gedit
林果 林果

0

मेरे पास नैनो के साथ शून्य धैर्य है और एक मच्छर को तोप से मारना पसंद है।

मैं नैनो को हटाता हूं और इसे जगह में विम करने के लिए एक सिम्लिंक रखता हूं।

किया हुआ।


0

मैं एक अन्य उपनाम का उपयोग करता हूं:

sc='sudo SYSTEMD_EDITOR=/bin/vi /usr/bin/systemctl'

फिर बस:

sc edit service-name

यह आमतौर पर systemctlमामलों में 9 में से 7 अक्षरों को टाइप करने से बचने के लिए भी उपयोगी है restart, आदि।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.