ฉันจะค้นหาและตั้งค่าตัวแปรสภาพแวดล้อม $ EDITOR ของฉันได้อย่างไร


27

เมื่อฉันใช้ ipython หรือ ipython3 ฉันสามารถใช้คำสั่ง% edit เพื่อเปิดโปรแกรมแก้ไขเพื่อเขียนสคริปต์ python ของฉันปัญหาของฉันคือเครื่องมือแก้ไขเริ่มต้นเป็นกลุ่มและฉันไม่ได้ใช้งานตัวแก้ไขนั้นจริงๆ สิ่งที่ฉันต้องการจะทำคือเปลี่ยนเครื่องมือแก้ไขเป็นนาโนหรือ gedit ฉันคิดว่าจะอยู่กับเทอร์มินัลฉันต้องการเปลี่ยนเป็นโปรแกรมแก้ไขนาโน

เมื่อฉันพิมพ์ใน 'แก้ไข?' คำสั่งเข้าไปใน terminal ipython บอกว่า:

% edit เรียกใช้เครื่องมือแก้ไขของ IPython เวอร์ชันเริ่มต้นของ hook นี้ถูกตั้งค่าให้เรียกโปรแกรมแก้ไขที่ระบุโดยตัวแปรสภาพแวดล้อม $ EDITOR ของคุณ หากไม่พบมันจะเริ่มต้นที่ vi ภายใต้ Linux / Unix และ notepad ภายใต้ Windows ดูจุดสิ้นสุดของ docstring นี้เพื่อดูวิธีเปลี่ยน hook editor

จากนั้นเมื่อฉันเห็นจุดสิ้นสุดของ docstring ฉันเห็นสิ่งนี้:

การเปลี่ยน hook เอดิเตอร์ดีฟอลต์:

หากคุณต้องการเขียน hook บรรณาธิการของคุณเองคุณสามารถใส่ลงในไฟล์กำหนดค่าที่คุณโหลดเมื่อเริ่มต้น hook เริ่มต้นถูกกำหนดไว้ในโมดูล IPython.core.hooks และคุณสามารถใช้เป็นตัวอย่างเริ่มต้นสำหรับการแก้ไขเพิ่มเติม ไฟล์นั้นยังมีคำแนะนำทั่วไปเกี่ยวกับวิธีตั้งค่า hook ใหม่สำหรับใช้งานเมื่อคุณได้กำหนดแล้ว

ขอโทษที่เป็นมือใหม่ แต่ฉันหลงทางที่นี่ ฉันไม่แน่ใจว่าจะไปที่โมดูล IPython.core.hook ได้อย่างไรหรือเพียงแค่ตั้งค่าตัวแปรสภาพแวดล้อม $ EDITOR เป็นนาโน

ข้อเสนอแนะใด ๆ

คำตอบ:


37

คุณสามารถตั้งค่า$EDITORตัวแปรด้วยคำสั่งนี้:

export EDITOR="/usr/bin/nano"

สิ่งนี้จะกำหนดตัวแปรEDITORสำหรับเซสชันปัจจุบันและส่งไปยังสภาพแวดล้อมของกระบวนการลูกทั้งหมด ในการตั้งค่าอย่างถาวรคุณต้องกำหนดไว้ในหนึ่งในไฟล์การกำหนดค่าระบบ /etc/environmentระดับสูงสุดที่คุณสามารถทำเช่นนี้คือการกำหนดไว้ใน สิ่งนี้กำหนดไว้ทั่วโลก:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
EDITOR="/usr/bin/nano"

ตรวจสอบว่ามีการกำหนดตัวแปร:

$ echo $EDITOR
/usr/bin/nano

หมายเหตุบรรณาธิการ: มักจะดีกว่าที่จะวางตัวแปรสภาพแวดล้อมในตัวคุณเอง~/.profileซึ่งง่ายกว่ามากในการแก้ไขหากมีสิ่งผิดปกติ


ฉันเพิ่มบรรทัด 'EDITOR = "/ usr / bin / nano" "ลงในไฟล์ / etc / environment ของฉัน แต่ดูเหมือนว่าจะไม่ทำงาน ฉันจำเป็นต้องรีบู๊ตหรือไม่
Willoczy

ตอนนี้รีบูตระบบและการตั้งค่าของคุณจะใช้
Danatela

เริ่มเซสชันใหม่และคุณทำเสร็จแล้ว!
Luis Siquot

3
คุณไม่จำเป็นต้องรีบูตเพื่อให้การเปลี่ยนแปลงมีผลเพียงแค่เรียกใช้source /etc/environmentหลังจากที่คุณแก้ไขไฟล์
cremefraiche

@cremefraiche ฉันกลัวว่าไม่ถูกต้อง มันไม่ใช่ไฟล์สคริปต์ดังนั้นคุณจึงไม่สามารถ "ซอร์ส" ได้ มันจะถูกต้องสำหรับไฟล์ config ทั่วไปอื่น ๆ เช่น. profile สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือออกจากระบบและลงชื่อกลับ นั่นเป็นครั้งเดียวที่ไฟล์ถูกอ่าน อ่านหัวข้อสั้น ๆ นี้: help.ubuntu.com/community/…
Haggra

18

เพิ่มบรรทัด

export EDITOR=nano

เพื่อคุณ~/.profileและ~/.bashrcในภาพดังต่อไปนี้ ไม่ได้ใส่คำพูดรอบnano

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นเรียกใช้

source ~/.profile 
source ~/.bashrc

ที่พร้อมต์หลังการแก้ไข.profileและ.bashrcเพื่อให้การเปลี่ยนแปลงมีผล

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้%editในจะเปิดipythonnano

~/.bashrc จะถูกเรียกหา interactive + non-loginshell

ในขณะที่ ~/.profileจะถูกเรียกร้องให้interactive + login shell

ในกรณีของคุณก็พอที่จะเพียงแค่เพิ่มในแทน~/.bashrc~/.profile


1
.bashrcควรใช้เฉพาะสำหรับการตั้งค่าทุบตีเฉพาะ (เช่นตัวเลือกเปลือกนามแฝง ฯลฯ ) ในขณะที่.profileควรจะใช้สำหรับการตั้งค่าตัวแปรสภาพแวดล้อมเช่นEDITOR(ซึ่งถูกใช้โดยโปรแกรมเช่นsudoedit, gitฯลฯ ) ดูunix.stackexchange.com/a/3085/22812และunix.stackexchange.com/a/42765/22812
Anthony G - ความยุติธรรมสำหรับ Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.