क्या emacs / vi / vim (कमांड लाइन से) यह बताने का कोई तरीका है कि मैं फ़ाइल को view-mode
या में देखना चाहता हूं read-only
।
मुझे पता है कि किसी फाइल को कैसे पढ़ना है, यह केवल तभी पढ़ें जब emacs / vi / vim पहले से चल रहा हो।
क्या emacs / vi / vim (कमांड लाइन से) यह बताने का कोई तरीका है कि मैं फ़ाइल को view-mode
या में देखना चाहता हूं read-only
।
मुझे पता है कि किसी फाइल को कैसे पढ़ना है, यह केवल तभी पढ़ें जब emacs / vi / vim पहले से चल रहा हो।
जवाबों:
Emacs के लिए:
emacs FILE --eval '(setq buffer-read-only t)'
केवल पढ़ने के लिए बाध्य करने के लिए कोई स्टार्टअप विकल्प नहीं है।
संपादित करें:
यदि आप अपने शेल स्टार्टअप स्क्रिप्ट (उदाहरण के लिए .bashrc) में इस छोटे फ़ंक्शन को डालते हैं, तो आप केवल-पढ़कर केवल एक फ़ाइल खोल सकते हैंev file_to_view
ev() {
emacs "$1" --eval '(setq buffer-read-only t)'
}
vim -R फ़ाइल नाम
फ़ाइल नाम देखें
मूल रूप से रीड-ओनली मोड में विम; साधारण!
टिप्पणी से संकेत दिया के रूप में, मामले में view
सादे से जुड़ा हुआ है vi
, यहाँ हैं बैश आदेशों पहले स्थिति का निरीक्षण किया और फिर इसे ठीक करने के लिए:
# non-destructive inspection
which vim
which view
ls -l $(which view)
# overwrite current view with symlink to vim, requires root
ln -sfv $(which vim) $(which view)
vim
सिंटैक्स हाइलाइटिंग है, लेकिन आपका view
नहीं है, तो शायद आपका view
एक न्यूनतम संस्करण के लिए लिंक vim
है, जिसमें सिंटैक्स हाइलाइट संकलित नहीं है, :version
कमांड के आउटपुट की तुलना करें ।
argv[0]
अपने व्यवहार को तय करने के लिए पढ़ेगा । यह एक आम चाल है; AFAIK कभी-कभी जीसीसी और बैश भी ऐसा करता है।
vim -R <file>
के साथ लिखने की अनुमति देता है :w!
vim -c ":set nomodifiable" <file>
बफर में फ़ाइल में कोई भी परिवर्तन करने से उपयोगकर्ता को रोकता है। लेकिन उपयोगकर्ता बफर को संशोधित कर सकता है:set modifiable
आप उपयोग कर सकते हैं
vim -c ":noremap q :q<cr>" -c ":map : <Esc>" -c ":set nomodifiable" <file>
उपयोगकर्ता को "नाममात्र" को बंद करने से रोकने के लिए, और उपयोगकर्ता को दबाकर छोड़ने की अनुमति दें q
। लेकिन, तब उपयोगकर्ता कमांड मोड में प्रवेश नहीं कर सकता है, जो आप चाहते हैं या नहीं हो सकता है।
आप कम कमांड वाली फाइल भी खोल सकते हैं:
less <file>
फ़ाइल को विम-जैसे वातावरण में देखने के लिए, लेकिन फ़ाइल को बदलने की क्षमता के बिना।
less
, हालाँकि @nxdrvr के अनुसार, आप संपादन योग्य मोड में फ़ाइल को खोलने के लिए v कुंजी दबा सकते हैंvi
स्वीकार किए गए उत्तर के लिए छोटे अनुवर्ती: आप इसे एक आदेश में कम करने के लिए अपने शेल में इसे उर्फ कर सकते हैं। उदाहरण के लिए बैश में आप अपने .bashrc में निम्नलिखित डाल सकते हैं:
emacsro() {
emacs $1 --eval '(setq buffer-read-only t)'
}
(अलग-अलग गोले ऐसा करने के लिए अलग-अलग प्रारूप होंगे, लेकिन आपको यह विचार मिलता है)
मैंने इसे स्वीकृत उत्तर के जवाब में एक टिप्पणी के रूप में जोड़ा होगा, लेकिन एक टिप्पणी में एक बहु-पंक्ति "कोड" ब्लॉक होना संभव नहीं था, और (वैसे भी) उपरोक्त कोड में वास्तव में होने की आवश्यकता है 3 अलग लाइनों पर।
संपादित करने की क्षमता के बिना फ़ाइल देखने के लिए:
cat <file> | less
में less
आप दबाकर "संपादित फ़ाइल मोड" पर जा सकते हैं vकुंजी। लेकिन आप मानक इनपुट को संपादित नहीं कर सकते हैं, इसलिए आउटपुट cat <file>
को कम करने के लिए, less
'v' दबाने पर 'संपादन' मोड में जाने से रोकता है।
उसी दृष्टिकोण के लिए
cat <file> | vim -
v
सुझाव के लिए धन्यवाद । निफ्टी।
cat
। बस उपयोग करें <FILENAME less
।
<file> less
एक त्रुटि देगा, मैं आपको मान रहा हूं less <file>
, लेकिन जैसा कि उत्तर में बताया गया है, less
सीधे उपयोग करते समय, उपयोगकर्ता v कुंजी दबा सकता है और संपादन-मोड में जा सकता है। यह होने से रोकने के cat
लिए पाइपिंग less
।
less < FILENAME
, जो आपको V दबाते समय "मानक इनपुट संपादित नहीं कर सकता" देता है । इसी तरह विम के साथ vim - < FILENAME
:।
Emacs के लिए आप व्यू-मोड का भी उपयोग कर सकते हैं ।
emacsclient --create-frame --eval '(view-file "/tmp/EXAMPLE")'
या टर्मिनल के अंदर विकल्प:
emacsclient --nw --eval '(view-file "/tmp/EXAMPLE")'
या आप मेरे रैपर स्क्रिप्ट का उपयोग कर सकते हैं
मैं यहां किसी को भी उपयोगकर्ता के जवाब के लिए नहीं जा रहा हूं, लेकिन मैं Read-only Mode
फ़ाइल के बारे में कुछ और जानकारी देना चाहूंगा । ओविली डॉक्यूमेंटेशन के अनुसार रीड-ओनली मोड ऐसा समय होगा जब आप किसी फाइल को देखना चाहते हैं, लेकिन उस फाइल को अनजाने कीस्ट्रोक्स और परिवर्तनों से बचाना चाहते हैं। (आप vi आंदोलनों का अभ्यास करने के लिए एक लंबी फ़ाइल में कॉल करना चाह सकते हैं, या आप कमांड फ़ाइल या प्रोग्राम के माध्यम से स्क्रॉल करना चाह सकते हैं)। आप केवल-पढ़ने के लिए मोड में एक फ़ाइल दर्ज कर सकते हैं और सभी vi आंदोलन कमांड का उपयोग कर सकते हैं, लेकिन आप फ़ाइल को बदलने में सक्षम नहीं होंगे।
फ़ाइल को केवल पढ़ने के लिए मोड में देखने के लिए, या तो दर्ज करें:
$ vi -R file
या:
$ view file
(व्यू कमांड, जैसे vi कमांड, फ़ाइल में किसी विशिष्ट स्थान पर आगे बढ़ने के लिए कमांड-लाइन विकल्पों में से किसी का उपयोग कर सकता है।) यदि आप फ़ाइल में कुछ संपादन करने का निर्णय लेते हैं, तो आप रीड-ओनली मोड को ओवरराइड कर सकते हैं। लिखने के आदेश में एक विस्मयादिबोधक बिंदु जोड़ना:
:w!
or:
:wq!
यदि आपको फ़ाइल लिखने में कोई समस्या है।
आगे रेफरी के लिए यहाँ