เปลี่ยนโปรแกรมแก้ไขเริ่มต้นเมื่อ sudo visudo


23

เมื่อทำบรรณาธิการเริ่มต้นคือsudo visudo ฉันต้องการที่จะเปลี่ยนไปหรือ nano
vivim

ผมทำแล้วvimแก้ไขเริ่มต้นและใช้มันเป็นแทนสำหรับการgeditเป็น PHP เปิด .txt, .c และ h ไฟล์โดยการวางvim.desktopแฟ้มใน~/.local/share/applications/และโดยการแก้ไขอย่างถูกต้องอย่างใดอย่างหนึ่ง หรือ~/.local/share/applications/mimeapps.list แต่เห็นได้ชัดว่านี้ไม่ได้นำไปใช้กับ /etc/gnome/defaults.listnano

เบาะแสใด ๆ


คุณตรวจสอบman visudoไหม
fkraiem

ฉันค้นพบบางสิ่งเพิ่มเติมตั้งแต่ฉันเขียนฉันหวังว่าจะเพิ่มในภายหลัง การกระจาย Linux จัดการแตกต่างกัน
Volker Siegel

ใช่และฉันตั้งค่า env-var VISUAL เป็น vim และ "ส่งออก" ใน. bashrc และใน. bash_profile จากนั้นทำการจัดหาเชลล์ แต่ไม่มีประโยชน์ แม้จะออกจากระบบและเชื่อมต่อใหม่ในเซสชันเพื่อให้แน่ใจ
Cbhihe

2
ฉันเพิ่มsudo -E visudoคำตอบในภายหลังคุณลองหรือไม่ -E sudoไม่ได้ทำการลบ env vars ทั้งหมด มันเป็นเพราะอูบุนตูมีสายDefaults env_resetเข้า/etc/sudoers
Volker Siegel

นอกจากนี้คุณลองupdate-alternativesฉันยังเพิ่ม?
Volker Siegel

คำตอบ:


19

ปัญหาไม่ใช่ว่ามันใช้ไม่ได้กับnanoว่ามันใช้ไม่ได้กับเชลล์:

เพียงตั้งค่าVISUALตัวแปรสภาพแวดล้อม:

export VISUAL=vim

เพิ่มสิ่งนี้ด้วย ~ / .bashrc เพื่อให้ถาวร

ในขณะที่คุณดูเหมือนจะใช้เป็นกลุ่มทั่วไปชุดทั้งสองVISUALและEDITOR:

export VISUAL="vim"
export EDITOR="$VISUAL"

หรือมากกว่า POSIX- ถูกต้อง

VISUAL="vim" ; export VISUAL
EDITOR="$VISUAL" ; export EDITOR

ฉันถือว่าnanoเป็นค่าของหนึ่งหรือทั้งสองตัวแปร

ในการใช้ประโยชน์จากเครื่องมือแก้ไขใน visudo จริง ๆ แล้วเราจำเป็นต้องจัดการที่sudoไม่เก็บตัวแปรสภาพแวดล้อมตามปกติ ตัวเลือก-Eการเปลี่ยนแปลงนั้น

sudo -E visudo

หากไม่มีที่-Eนี่คุณจะได้รับค่าเริ่มต้นnanoอีกครั้ง


ตัวแปรสองตัวที่มีการใช้งานนานก่อนที่จะตั้งชื่อไฟล์*.desktopหรือmime*มีอยู่จริง
(และสิ่งที่น่าประทับใจคือพวกเขาถูกนำมาใช้จริงเป็นเรื่องธรรมดามาตรฐาน.)
ใน Ubuntu, sudo update-alternatives --config editorระบบเริ่มต้นดูเหมือนว่าจะถูกกำหนดด้วย มันแสดงให้เห็นเมนูเพื่อเปลี่ยนการเชื่อมโยงปัจจุบัน


ดูหัวข้อENVIRONMENTในman visudo:

  VISUAL           Invoked by visudo as the editor to use

  EDITOR           Used by visudo if VISUAL is not set

1
คุณลองหรือยัง โดยค่าเริ่มต้นจะsudoยกเลิกตัวแปรสภาพแวดล้อมส่วนใหญ่จากสภาพแวดล้อมสำหรับคำสั่งที่มันทำงาน VISUAL=vim sudo visudo(และรูปแบบที่คุณแนะนำ) ไม่ทำงานสำหรับฉันและไม่ควรคาดหวังว่าจะได้ผล sudo VISUAL=vim visudoทำงานอย่างไร (ผมเคยพยายามเพียงแค่ทั้งสองอีกครั้งเพื่อให้แน่ใจว่า.) โดยวิธีการVISUALและมีไม่มีการตั้งค่าตามค่าเริ่มต้นไม่ได้กำหนดให้EDITOR และไม่ใช่กลไกที่เลือกในการกำหนดค่าเริ่มต้น (ยกเว้นตราบเท่าที่ให้คำปรึกษาพวกเขาพบว่าพวกเขากำลัง unset หรือเปล่าและย้ายไป) nanoVISUALEDITORvisudonano
Eliah Kagan

3
มันทำงานร่วมกับsudo -E visudo- ซึ่งควรจะอยู่ในคำตอบที่ถูกต้องอย่างแน่นอน
Volker Siegel

+1 และฉันยอมรับคำตอบที่ยอดเยี่ยมปี Volker "Besten Dank!" ฉันยังคงได้รับข้อความแสดงข้อผิดพลาดพร้อมกับแฟล็ก -E เกี่ยวกับการไม่ได้รับอนุญาตให้ส่งต่อตัวแปรสภาพแวดล้อม แต่จากนั้นฉันก็เป็นผู้ใช้ที่ จำกัด การเข้าถึงเป็นผู้ดูแลระบบที่มีสิทธิ์ระดับผู้ดูแลระบบและบิงโก! ทำงานได้ดี
Cbhihe

โอ้ฉันมีความสุขที่จะเพิ่มอีกหนึ่งสิ่งที่ผิดพลาด / สามารถช่วย;) คุณสามารถตรวจสอบตัวเลือก (เส้นที่มีDefault) ใน / etc / sudoers ของคุณได้หรือไม่? ฉันคิดว่ามีตัวเลือกที่ห้ามไม่ให้มี แต่ไม่ได้อยู่ในไฟล์เริ่มต้นของฉัน
Volker Siegel

@VolkerSiegel: ฉันคิดว่าคุณหมายถึงenv_resetค่าเริ่มต้นใน/ etc / sudoers มันตั้งอยู่ในกรณีของฉัน
Cbhihe

8

ตามที่อธิบายไว้ในคำตอบนี้ให้เพิ่ม

Defaults editor=/path/to/editor

ไปsudoers ไฟล์

หมายเหตุ: จะใช้งานได้หากไฟล์ที่แก้ไขมีDefaults editor=/path/to/editorบรรทัดหรือรวมไฟล์ที่มีอยู่เท่านั้น

ตัวอย่างเช่น: visudo -f /etc/sudoers.d/my_sudoers_extensionจะใช้ค่าเริ่มต้นเป็นนาโน


2
+1: อันที่ดีและฉันไม่ได้สังเกตเห็นเมื่อฉันเริ่มกระทู้นี้ขอบคุณ
Cbhihe

3

หากคุณไม่เคยวางแผนที่จะใช้นาโนคุณสามารถลบออกได้ง่ายๆ จากนั้นระบบจะใช้ vi / vim เป็นค่าเริ่มต้น

sudo apt-get purge nano

ฉันรู้ว่ามันไม่ใช่คำตอบอย่างเป็นทางการ แต่เป็นหนึ่งในคำสั่งแรกสำหรับฉันหลังจากติดตั้ง Ubuntu


สิ่งนี้มีคุณสมบัติแน่นอนว่าเป็น "necroposting" แต่เฮ้ ... คำตอบของปีนี้น่าสนใจเพราะมันเกี่ยวข้องกับ Ubuntu ดิสทริบิวชันอื่น ๆ (ArchLinux ในหมู่พวกเขา) มีโปรแกรมแก้ไขที่คุณติดตั้งไว้ในอันดับที่ 1 ดังนั้นคุณจึงไม่มี pbm ที่ฉันพบกับ Ubuntu และไม่จำเป็นต้องใช้มาตรการที่คุณแนะนำ ในกรณีที่อยู่ในมือ (ubuntu + nano + vim) ฉันรู้สึกว่าหลายคนอาจมีความต้องการตัวเลือกในส่วนของบรรณาธิการ มันเป็นเรื่องจริงที่คนเราไม่ค่อยเห็นสิ่งที่ชอบemacsและvimอยู่ร่วมกันอย่างแข็งขันในโปรไฟล์ของผู้ใช้คนใดคนหนึ่ง อย่างไรก็ตามnanoและvimเกิดขึ้นพร้อมกันในป่า ... เก็บnano!
Cbhihe

คำตอบที่ดีที่สุดแน่นอน
botkop

emacsและvimอยู่ร่วมกันอย่างมีความสุขและใช้อย่างต่อเนื่อง nanoเหมือนศัตรูพืชยิ่งเร็วเท่าไรก็จะถูกลบออกจากระบบได้ดีขึ้น ฉันเข้าใจว่าบางคนอาจรู้สึกสบาย แต่คำตอบนี้ใช้ได้อย่างสมบูรณ์
ระลึก
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.