আমি কীভাবে কেবল ইমাস / ভিআই / ভিআইএম দিয়ে কমান্ড লাইন থেকে পঠনযোগ্য একটি ফাইল খুলতে পারি


79

Emacs / vi / vim (কমান্ড লাইন থেকে) বলার উপায় আছে যে আমি ফাইলটি view-modeবা এর মধ্যে দেখতে চাই read-only

আমি জানি যদি কেবল ইমাস / ভিআই / ভিএম ইতিমধ্যে চালু থাকে তবে কেবল ফাইলটি কীভাবে পঠন করা যায়।


দ্রষ্টব্য: যদি আপনার কাছে ফাইলটিতে লেখার অনুমতি না থাকে তবে ভিম ডিফল্টরূপে এটি কেবল পঠন মোডে খুলবে। আসলে, আমি মনে করি একটি "পঠনযোগ্য কেবল" উপায় সরবরাহ করার চেয়ে ফাইল অনুমতি নিয়ন্ত্রণ করা আরও সহজ।
ফ্রাঙ্কলিন ইউ

উত্তর:


45

ইম্যাক্সের জন্য:

emacs FILE --eval '(setq buffer-read-only t)'

কেবলমাত্র পড়তে বাধ্য করার জন্য কোনও স্টার্টআপ বিকল্প নেই।

সম্পাদনা:
আপনি যদি নিজের শেল স্টার্টআপ স্ক্রিপ্টে এই ছোট ফাংশনটি রাখেন (উদাহরণস্বরূপ, বাশার্ক) আপনি কেবল টাইপ করে একটি ফাইল পঠনযোগ্য খুলতে পারেনev file_to_view

ev() {
  emacs "$1" --eval '(setq buffer-read-only t)'
}

11
আমি আশা করি এটির জন্য আমি ইম্যাকগুলি ডাউনওয়েতে পারতাম।
রবার্ট ক্যালহাউন

145

vim -R ফাইলের নাম


4
দুর্দান্ত কাজ করে তবে আমি
ট্রেয়ের

32
এবং সমস্ত ভীম ব্যবহারকারীরা "স্বীকৃত উত্তর" এর চেয়ে বেশি এটিকে উত্সাহিত করে প্রতিশোধ নেন: ডি
জোসোফক্স

1
দ্রষ্টব্য: কিছু বাক্সে 'ভিউ' কমান্ড সম্ভবত 'vi -R' এর উপাধি থাকতে পারে বলে মনে হচ্ছে।
আর্মিফদা

26

ফাইলের নাম দেখুন

মূলত পঠনযোগ্য মোডে vim; simples!

মন্তব্য দ্বারা ইঙ্গিত হিসাবে, ক্ষেত্রে 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)

1
যদিও কোনও সিনট্যাক্স হাইলাইট করা হয়নি।
নিফলে

7
@ নিফেল: সিনট্যাক্স হাইলাইটে কোনও পার্থক্য হওয়া উচিত না। আপনার vimসিনট্যাক্স হাইলাইট করা viewথাকলেও আপনার না থাকলে সম্ভবত এটির viewএকটি সংক্ষিপ্ত সংস্করণের লিঙ্ক vimযা সংশ্লেষের হাইলাইটিং সংকলিত নেই। :versionকমান্ডের আউটপুটগুলি তুলনা করুন ।
গ্যারিজাহন

1
কেন এটি "কেবলমাত্র কাজ করে" কারণ: ভিম argv[0]তার আচরণের সিদ্ধান্ত নিতে আসলে পড়বে । এটি একটি সাধারণ কৌশল; এএফআইকে কখনও কখনও জিসিসি এবং বাশ এটিও করে।
ফ্র্যাঙ্কলিন ইউ

10
vim -R <file>

সঙ্গে লেখার অনুমতি দেয় :w!

vim -c ":set nomodifiable"  <file>

বাফারে ফাইলটিতে কোনও পরিবর্তন আনতে ব্যবহারকারীকে বাধা দেয়। তবে ব্যবহারকারী এটি দিয়ে বাফারটি পরিবর্তন করতে পারে if:set modifiable

আপনি ব্যবহার করতে পারেন

vim -c ":noremap q :q<cr>" -c ":map : <Esc>" -c ":set nomodifiable" <file>

ব্যবহারকারীকে "মনোনীতযোগ্য" বন্ধ করা থেকে বিরত রাখতে, এবং টিপে ব্যবহারকারীকে ছাড়ার অনুমতি দিন q। কিন্তু, তারপরে ব্যবহারকারী মোটেই কমান্ড মোডে প্রবেশ করতে পারবেন না, যা আপনি চান তা হতে পারে বা নাও পারে।

আপনি কম কমান্ড দিয়েও ফাইলটি খুলতে পারেন:

less <file>

ভিএম-এর মতো পরিবেশে ফাইলটি দেখার জন্য তবে ফাইলটি পরিবর্তন করার ক্ষমতা ছাড়াই।


ব্যবহার করার জন্য +1 টি less, যদিও হিসাবে @nxdrvr আউট পয়েন্ট টিপতে পারেন বনাম কী তে editiable মোডে ফাইল খোলার জন্যvi
Sheharyar

9

স্বীকৃত উত্তরের জন্য ছোট্ট ফলোআপ: এটি কোনও শৃঙ্খলে হ্রাস করতে আপনি নিজের শেলটিতে এটির নাম রাখতে পারেন। উদাহরণস্বরূপ ব্যাশে আপনি আপনার .bashrc এ নিম্নলিখিতটি রাখতে পারেন:

emacsro() {
  emacs $1 --eval '(setq buffer-read-only t)'
}

(এটি করার জন্য বিভিন্ন শেলের বিভিন্ন ফর্ম্যাট থাকবে তবে আপনি ধারণাটি পাবেন)

আমি এটি স্বীকৃত উত্তরের জবাব হিসাবে একটি মন্তব্য হিসাবে যুক্ত করতাম, তবে একটি মন্তব্যে একটি বহু-লাইন "কোড" ব্লক পাওয়া সম্ভব হয়নি বলে মনে হয় এবং (যেভাবেই হোক বাশে) উপরের কোডটি সত্যই হওয়া দরকার 3 পৃথক লাইনে।


6

সম্পাদনা করার ক্ষমতা ছাড়াই কেবল ফাইলটি দেখতে:

cat <file> | less

ইন lessআপনি টিপে "সম্পাদনা ফাইল মোড" ফিরে যেতে পারেন vকী। তবে আপনি স্ট্যান্ডার্ড ইনপুট সম্পাদনা করতে পারবেন না, তাই cat <file>কম আউটপুট পাইপিংয়ের ফলে less'ভি' টিপে 'সম্পাদনা' মোডে যাওয়া বন্ধ হয়ে যায়।

ভিএম একই পদ্ধতির জন্য

cat <file> | vim -

4
vপরামর্শের জন্য ধন্যবাদ । নিফটি।
tshepang

2
+1, তবে দরকার নেই cat। শুধু ব্যবহার <FILENAME less
স্পারহক

@ স্পারখ্যাক, <file> lessএকটি ত্রুটি দেবে, আমি ধরে নিচ্ছি যে আপনি বোঝাতে চেয়েছিলেন less <file>, তবে উত্তরে যেমন ব্যাখ্যা করা হয়েছে, lessসরাসরি ব্যবহার করার সময়, ব্যবহারকারী ভি কী টিপতে এবং সম্পাদনা মোডে যেতে পারেন could পাইপিং এটি হওয়া catথেকে lessথামায়।
শেহেরায়র

@ শেহারিয়ার তিনি বুঝিয়েছিলেন আউটপুট পুনঃনির্দেশ। হতে পারে আপনি আরও বেশি পরিচিত less < FILENAME, আপনি ভিতে চাপলে আপনাকে "স্ট্যান্ডার্ড ইনপুট সম্পাদনা করতে পারবেন না" দেয় । তেজ সঙ্গে একইভাবে: vim - < FILENAME
ফ্রাঙ্কলিন ইউ

4

ইম্যাক্সের জন্য আপনি ভিউ-মোডও ব্যবহার করতে পারেন ।

emacsclient --create-frame --eval '(view-file "/tmp/EXAMPLE")'

বা টার্মিনালের ভিতরে বিকল্প:

emacsclient --nw --eval '(view-file "/tmp/EXAMPLE")'

অথবা আপনি আমার মোড়ক স্ক্রিপ্ট ব্যবহার করতে পারেন


1

ইমাসে আপনি করতে পারেন

emacs FILE -f view-mode

সিনট্যাক্স হাইলাইটিং প্রয়োগ করা হয়েছে। এটি কেবল পঠনযোগ্য বাফার হিসাবে ফাইলটি খোলেন না। কিছু কমান্ড, যেমন আই-অনুসন্ধান, এই মোডে নিয়ন্ত্রণ কী ছাড়াই অ্যাক্সেসযোগ্য।


0

স্ট্যান্ড আউট এ ফাইল পাঠানো, ফাইলের আকারের কারণে গ্রহণযোগ্য হতে পারে

cat <file>  # dump whole file to stdout
head <file> # view the first few lines
tail <file> # view the last n lines

0

আমি এখানে কারও ব্যবহারকারীর উত্তর অস্বীকার করতে যাচ্ছি না, তবে আমি Read-only Modeফাইল সম্পর্কে আরও কিছু তথ্য যুক্ত করতে চাই । অরিলি ডকুমেন্টেশন অনুসারে কেবল পঠন মোড এমন সময় আসবে যখন আপনি কোনও ফাইলটি দেখতে চান তবে সেই ফাইলটিকে অজানা কীস্ট্রোক এবং পরিবর্তনগুলি থেকে রক্ষা করতে চান। (আপনি vi চলাচলের অনুশীলনের জন্য একটি দীর্ঘ ফাইলের মধ্যে কল করতে চাইতে পারেন, বা আপনি কোনও কমান্ড ফাইল বা প্রোগ্রামের মাধ্যমে স্ক্রোল করতে চাইতে পারেন)। আপনি কেবল পঠন মোডে একটি ফাইল প্রবেশ করতে পারেন এবং সমস্ত vi আন্দোলন কমান্ড ব্যবহার করতে পারেন তবে আপনি ফাইলটি পরিবর্তন করতে পারবেন না।

কেবল পঠন মোডে একটি ফাইল দেখতে, হয় প্রবেশ করুন:

$ vi -R file

বা:

$ view file

(ভিআই কমান্ডের মতো ভিউ কমান্ড, ফাইলের নির্দিষ্ট স্থানে অগ্রসর হওয়ার জন্য যে কোনও কমান্ড-লাইন বিকল্প ব্যবহার করতে পারে)) আপনি যদি ফাইলটিতে কিছু সম্পাদনা করার সিদ্ধান্ত নেন, আপনি কেবল পঠন মোডকে ওভাররাইড করতে পারেন রাইট কমান্ডে একটি বিস্ময়বোধক পয়েন্ট যুক্ত:

:w!
or:

:wq!

আপনার যদি ফাইলটি লিখতে সমস্যা হয়।

এখানে আরও রেফারেন্সের জন্য

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.