আমি কীভাবে ভিএম দিয়ে কোনও ফাইলের এনকোডিং পরিবর্তন করতে পারি?


235

আমি কোনও ফাইলের লাইন শেষ পরিবর্তন করতে ভিএম ব্যবহার করতে অভ্যস্ত:

$ file file
file: ASCII text, with CRLF line terminators
$ vim file
:set ff=mac
:wq
$ file file
file: ASCII text, with CR line terminators

কোনও ফাইলের ইউনিকোড এনকোডিং পরিবর্তন করার জন্য কি একই জাতীয় প্রক্রিয়া ব্যবহার করা সম্ভব? আমি নিম্নলিখিত চেষ্টা করছি, যা কাজ করে না:

$ file file.xml
file.xml: Unicode text, UTF-16, little-endian
$ vim file
:set encoding=utf-8
:wq
$ file file.xml
file.xml: Unicode text, UTF-16, little-endian

আমি কাউকে বলতে দেখেছি যে সে "ফাইলেনকোডিং = utf-8 সেট করতে পারে, তারপরে ফাইলটি আপডেট করে লিখতে পারে এবং এটি কাজ করে" তবে আমি মনে করি যে কিছু অনুপস্থিত ছিল, অথবা অন্যথায় তিনি বিভ্রান্ত ছিলেন। "তারপরে আপডেট করুন" বলতে তিনি কী বোঝাতে চেয়েছিলেন তা আমি জানি না।

উত্তর:


254

ডক থেকে :

: লিখুন ++ এনক = utf-8 russian.txt

সুতরাং আপনার লিখন কমান্ডের অংশ হিসাবে এনকোডিংটি পরিবর্তন করতে সক্ষম হওয়া উচিত।


2
আপডেট করা ডকুমেন্টেশন লিংক: vimdoc.sourceforge.net/htmldoc/usr_45.html#45.4
ব্রায়ান রজার্স

163

লক্ষ্য করুন যে এর মধ্যে পার্থক্য রয়েছে

এনকোডিং সেট করুন

এবং

ফাইলেনকোডিং সেট করুন

প্রথম ক্ষেত্রে, আপনি টার্মিনালে প্রদর্শিত আউটপুট এনকোডিংটি পরিবর্তন করবেন। দ্বিতীয় ক্ষেত্রে, আপনি লিখিত ফাইলটির আউটপুট এনকোডিং পরিবর্তন করবেন।


1
ধন্যবাদ! আপাচি utf-8 আউটপুট দিচ্ছিল, তাই পিএইচপি ছিল, তাই ব্রাউজারটি বলেছিল, তাই ভিম বলেছেন set encoding, এবং এখনও পৃষ্ঠাগুলিতে মাংলিত চরিত্রগুলি দেখা গেছে যা আইসো -8859-1 হিসাবে ঠিক ছিল। ব্যবহার করে set fileencodingএকটি দুর্দান্ত 'ল্যাটিন 1' দেখানো হয়েছে
18:39 এড্রিয়ানো ভারোলি পিয়াজা

77

এটি করার জন্য ভিএম ব্যবহার করার সময় এটি সম্পূর্ণভাবে সম্ভব, আপনি কেবল আইকনভি ব্যবহার করবেন না কেন? আমি বোঝাতে চাইছি - কেবল এনকোডিং রূপান্তর করতে পাঠ্য সম্পাদক লোড করা খুব ছোট পেরেকের জন্য খুব বড় হাতুড়ি ব্যবহার করার মতো বলে মনে হচ্ছে।

শুধু:

iconv -f utf-16 -t utf-8 file.xml > file.utf8.xml

এবং তুমি করে ফেলেছ.


19
ডাউনসাইড, আইকনভিটি উইন্ডোজে সহজেই উপলব্ধ নাও হতে পারে।
অ্যাড্রিয়ানো ভারোলি পিয়াজা

2
পছন্দ করেছেন

1
আমি একাধিক বলতে চাই ডাউনলোডসমূহ "শুধু ইনস্টল করুন", এমনকি একটি পোর্টেবল সংস্করণ সঙ্গে "" গঠন করে "সহজে পাওয়া যায়।
আদ্রিয়ানো Varoli বারান্দা

2
@ কোড্র-টিম উল্লিখিত হিসাবে @ অ্যাড্রিয়ানো-ভেরোলি-পিয়াজা নং, আইকনভ উইন্ডোজ-এ সাইগউইন এবং মিংডাব্লু-র সাথে উপলব্ধ।
t0r0X

1
@ মারিও না, ভিম উইন্ডোজে খুব সহজেই উপলব্ধ: vim.org/download.php#pc
t0r0X

52

ঠিক আপনার পদক্ষেপের মতোই ফাইলেনকোডিং সেট করার কাজ করা উচিত। তবে আমি সম্পাদককে ফাইলটিকে ইউটিএফ 8 হিসাবে বিবেচনা করতে সহায়তা করতে একটি "সেট বোমা" যুক্ত করতে চাই।

$ vim file
:set bomb
:set fileencoding=utf-8
:wq

8
আপনার উত্তরের জন্য ধন্যবাদ, এটি আমাকে ইউটিএফ বাইট অর্ডার চিহ্ন সম্পর্কে আরও শিখিয়েছে। তবে এফওয়াইআই, কোনও বিওএম নির্ধারণ ইউটিএফ -8 এর জন্য অপ্রয়োজনীয় / অবিশ্বাস্য মনে হয় কারণ এটি 16 বা 32 এর মতো নির্দিষ্ট বাইট-দৈর্ঘ্যের ফর্ম্যাট নয় an ব্যাখ্যা এবং রেফারেন্সের জন্য এখানে দেখুন । এটি ভিমের জন্য কোনও সমস্যা (এবং এমনকি সহায়ক) নয়, আমি কেবল ভেবেছিলাম লোকেরা যাতে সচেতন হয় তবে এটি অন্য কোথাও সামঞ্জস্যতার সমস্যার কারণ হতে পারে should
জোয়েলহারদী

2
এটা bombনাকি bom, এবং তা কি হতে পারে unset? সম্পাদনা : হ্যাঁ, আপনি এটি মাধ্যমে মুছে ফেলতে পারেন set nobomb
আইসড ওয়াটার

6
হ্যাঁ, VIm আমাদের bomb(ab সহ) সেট আপ করে ।
ruffin

দস্তাবেজগুলি অনুসারে, :set bombচালু আছে :set fenc=utf-8.. দেখুন:he bomb
ইভান ক্যারল

12
আমাদের সমস্ত বেস এনকোডিং এখন ইউটিএফ -8
রোব্লগিক

6

ফাইলটি পড়ার ঠিক আগে কমান্ড লাইনে এনকোডিংটি পরিবর্তন করা কার্যকর হতে পারে :

rem On MicroSoft Windows
vim --cmd "set encoding=utf-8" file.ext
# In *nix shell
vim --cmd 'set encoding=utf-8' file.ext

দেখুন শুরু , --cmd


3
প্রথম প্রকরণটি * নিক্স শেলগুলিতেও কাজ করা উচিত। 'single quotes'কেবলমাত্র সমস্ত মেটা অক্ষর এড়াতে প্রয়োজন, যা সাধারণত আপনি চান তা নয়।
jpaugh
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.