मैं आम तौर पर VISUAL
और EDITOR
पर्यावरण चर दोनों को एक ही चीज़ पर सेट करता हूं , लेकिन क्या अंतर है? मैं उन्हें अलग तरह से क्यों सेट करूंगा? एप्लिकेशन विकसित करते समय, मुझे VISUAL
पहले EDITOR
या इसके विपरीत देखने का विकल्प क्यों चुनना चाहिए ?
मैं आम तौर पर VISUAL
और EDITOR
पर्यावरण चर दोनों को एक ही चीज़ पर सेट करता हूं , लेकिन क्या अंतर है? मैं उन्हें अलग तरह से क्यों सेट करूंगा? एप्लिकेशन विकसित करते समय, मुझे VISUAL
पहले EDITOR
या इसके विपरीत देखने का विकल्प क्यों चुनना चाहिए ?
जवाबों:
EDITOR
संपादक (पुराने की तरह "उन्नत" टर्मिनल कार्यक्षमता के उपयोग के बिना काम करने के लिए सक्षम होना चाहिए ed
या ex
के मोड vi
)। इसका उपयोग टेलेटाइप टर्मिनलों पर किया गया था।
एक VISUAL
संपादक पूर्ण स्क्रीन संपादक के रूप में vi
या हो सकता है emacs
।
उदाहरण के लिए यदि आप बैश (उपयोग C-x C-e
) के माध्यम से एक संपादक को आमंत्रित करते हैं , तो बैश पहले VISUAL
संपादक की कोशिश करेगा और फिर, यदि VISUAL
विफल रहता है (क्योंकि टर्मिनल पूर्ण-स्क्रीन संपादक का समर्थन नहीं करता है), तो यह कोशिश करता है EDITOR
।
आजकल, आप EDITOR
परेशान छोड़ सकते हैं या इसे सेट कर सकते हैं vi -e
।
ed
और इसी तरह बहुत लोकप्रिय नहीं हैं , इसलिए मेरा मानना है कि केवल उपेक्षा VISUAL
और उपयोग करना ठीक है EDITOR
।
C-x C-e
बाश में टिप के लिए धन्यवाद । बेहद सुविधाजनक।
EDITOR
उदाहरण के लिए बस सेटिंग पर्याप्त नहीं है git
। बिना VISUAL
सेट किया जा रहा git
ध्यान न दी EDITOR
और बस का उपयोग करता है nano
(डिफ़ॉल्ट में संकलित, मुझे लगता है)।
ed
। जब GUI के साथ संपादकों के बारे में आया - और GUI द्वारा, मेरा मतलब है CLI GUI (vim, emacs, इत्यादि ।-- ncurses), डेस्कटॉप वातावरण GUI नहीं - संपादन प्रक्रिया नाटकीय रूप से बदल गई है, इसलिए दूसरे चर की आवश्यकता उत्पन्न हुई। इस संदर्भ में, सीएलआई जीयूआई और डेस्कटॉप वातावरण जीयूआई संपादक कमोबेश एक जैसे हैं, इसलिए आप या तो विज़ुअल सेट कर सकते हैं; हालाँकि, EDITOR एक मूल रूप से भिन्न वर्कफ़्लो के लिए है। बेशक, यह सब ऐतिहासिक है। कोई भी इन दिनों एड का उपयोग नहीं करता है।
स्वीकृत उत्तर संभवतः एक अच्छा, छोटा उपचार है, लेकिन यह तब और गहरा जाने का प्रयास होगा जब विसाल और एडिटोर के बीच का अंतर अभी भी मायने रखता है ( एडम काट्ज के उत्तर पर निर्माण )।
POSIX कल्पना अभी भी दृश्य मोड संपादकों और लाइन संपादकों के बीच अंतर करती है। यह वास्तव में उन दिनों में वापस आया जब सीरियल कनेक्शन पर कर्सर की स्थिति कठिन थी (विशेषकर सीरियल कनेक्शन की गति के कारण)। Vi के लिए विकिपीडिया लेख vi (एक दृश्य मोड संपादक) और पूर्व (एक लाइन संपादक) के बीच के अंतर पर कुछ उपयोगी पृष्ठभूमि देता है। यदि आप अनुसंधान को काफी गहराई से खोदते हैं, तो आपको "पूर्व" युक्ति का "राष्ट्रीय" खंड मिलेगा , जो इस बात का एक कारण बताता है कि अभी भी कल्पना में है:
यह माना जाता है कि vi के भाग कठिन होंगे, यदि असंभव नहीं है, तो ब्लॉक-मोड टर्मिनल पर संतोषजनक ढंग से लागू करने के लिए, या बिना किसी पते के कर्सर के बिना एक टर्मिनल, इस प्रकार यह अनिवार्य आवश्यकता नहीं है कि ऐसी सुविधाएँ सभी टर्मिनलों पर काम करें । हालांकि, यह मंशा है कि vi कार्यान्वयन सभी टर्मिनलों पर क्षमताओं का पूरा सेट प्रदान करना चाहिए जो उन्हें समर्थन देने में सक्षम हों।
मुझे अपने 300 बॉड मॉडम को छोड़ने के बाद से इसकी आवश्यकता नहीं है, लेकिन मैं कल्पना कर सकता हूं कि लोग जो एम्बेडेड सिस्टम (और / या वास्तव में पासा कनेक्शन) से कनेक्ट करने के लिए धीमी धारावाहिक लाइनों का उपयोग करते हैं, वे अभी भी पसंदीदा लाइन मोड के लिए सक्षम होने की सराहना कर सकते हैं एक "दृश्य" संपादक से अलग संपादक vi। VT100- शैली टर्मिनल कोड एक हानिपूर्ण, शिथिल, संकीर्ण कनेक्शन पर सीमित अनुप्रयोगों में "ब्लोट" हो सकता है।
हम में से बाकी लोगों के लिए, यह "सही" उत्तर लगता है "उन दोनों को अपना पसंदीदा संपादक बनाने के लिए सेट करें"। स्थानीय विंडो / आलेखीय संपादक (जैसे उदात्त या gvim) बनाम एक टर्मिनल विंडो संपादक (जैसे vi या emacs) के लिए इस अंतर का सह-चयन करना ठीक हो सकता है, लेकिन संभवतः विरासत कारणों का एक पहाड़ है, जो संभवतः आशा के अनुरूप काम नहीं करेगा। ।
कुछ उपकरण केवल EDITOR को स्वीकार करते हैं, उदाहरण के लिए शेल बिल्ट fc :
-e ENAME select which editor to use. Default is FCEDIT, then EDITOR, then vi
मैंने निष्कर्ष निकाला है कि $VISUAL
चित्रमय है और $EDITOR
कमांड लाइन है। तो अपरिभाषित, कुछ भी मांग $VISUAL
करनी चाहिए तो कोशिश $EDITOR
अगले।
( उद्धरण की आवश्यकता है: मैं उचित प्रलेखन, शायद एक आदमी पृष्ठ या POSIX कल्पना प्राप्त करना पसंद करूंगा?)
फिलहाल, मेरे पास इस तरह से सामान है ~/.bashrc
और ~/.zshrc
:
EDITOR="$(command -v vim)"
# we have gvim, not in an SSH term, and the X11 display number is under 10
if command -v gvim >/dev/null 2>&1 \
&& [ "$SSH_TTY$DISPLAY" = "${DISPLAY#*:[1-9][0-9]}" ]; then
export VISUAL="$(command -v gvim) -f"
SUDO_EDITOR="$VISUAL"
else
SUDO_EDITOR="$EDITOR"
fi
gvim
बिना -f
उन प्रोग्रामों के साथ काम नहीं करेगा जो आपके संपादन पर कार्य करने की अपेक्षा करते हैं। इसमें निश्चित रूप से sudoeditor
( sudo -e
) शामिल हैं ।
यदि आपके पास चक्कर लगाने के लिए व्हॉट्सएप है तो यह टूट सकता है। यदि यह एक समस्या है, या तो इसे ठीक से स्थापित करें या फिर जैसे सहानुभूति पर विचार करें/usr/local/bin/gvim
$VISUAL
निर्भर करता है कि क्या आपके पास एक टर्मिनल है जो कर्सर पोजिशनिंग में सक्षम है, न कि आपके पास एक विंडो सिस्टम उपलब्ध है।
$DISPLAY
, लेकिन यह जानना अच्छा है।
चूँकि कोई भी वातावरण ऐसा प्रतीत नहीं होता जहाँ vi या समान विफल हो जाएँ, मैंने VISUAL को किसी ऐसी चीज़ की स्थापना के लिए ले लिया है, जिसे एक्स एक्सपीएल और पूर्व की आवश्यकता है।
ज्यादातर, जब कुछ प्रोग्राम VISUAL का उपयोग नहीं करता है, तो बस मुझे परेशानी होती है।
$VISUAL
एक शेल स्निपेट के रूप में व्यवहार करते हैं जो वे (शेल-उद्धृत) फ़ाइल नाम को जोड़ते हैं, लेकिन कुछ इसे एक निष्पादन योग्य के नाम के रूप में मानते हैं जो वे खोज कर सकते हैं या नहीं$PATH
। इसलिए एक निष्पादन योग्य के लिए पूर्ण पथ परVISUAL
(औरEDITOR
) सेट करना सबसे अच्छा है ( यदि आप उदाहरण के लिए विकल्प चाहते हैं तो एक आवरण स्क्रिप्ट हो सकती है)।