সহজ উপায় হ'ল binary
বিকল্পটি ব্যবহার করা । থেকে :help binary
:
This option should be set before editing a binary file. You can also
use the -b Vim argument. When this option is switched on a few
options will be changed (also when it already was on):
'textwidth' will be set to 0
'wrapmargin' will be set to 0
'modeline' will be off
'expandtab' will be off
Also, 'fileformat' and 'fileformats' options will not be used, the
file is read and written like 'fileformat' was "unix" (a single <NL>
separates lines).
The 'fileencoding' and 'fileencodings' options will not be used, the
file is read without conversion.
[..]
When writing a file the <EOL> for the last line is only written if
there was one in the original file (normally Vim appends an <EOL> to
the last line if there is none; this would make the file longer). See
the 'endofline' option.
যদি আপনি এটি না করেন এবং আপনার পরিবেশটি একটি মাল্টিবাইট এনকোডিং ব্যবহার করছে (যেমন ইউটিএফ -8, বেশিরভাগ লোকেরা ব্যবহার করে), ভিম পাঠ্যটি এ জাতীয়ভাবে এনকোড করার চেষ্টা করে যা সাধারণত দুর্নীতি দায়ের করে।
আপনি কোনও ফাইল খোলার মাধ্যমে এবং এটি ব্যবহার করে যাচাই করতে পারেন :w
। এটি এখন পরিবর্তন করা হয়েছে।
আপনি সেট করেন তাহলে LANG
এবং LC_ALL
করতে C
(হওয়া ASCII), তেজ কিছু রূপান্তর করে না এবং ফাইল একই থাকার (এটা এখনও একটি newline যোগ যদিও) যেহেতু তেজ কোনো multibyte এনকোডিং করতে প্রয়োজন হবে না।
আমি ব্যক্তিগতভাবে বাইনারিগুলির set wrap
জন্য অক্ষম করতেও পছন্দ করি , যদিও অন্যরা এটি সক্ষম করতে পছন্দ করে। YMMV। আর একটি দরকারী জিনিস হ'ল :set display=uhex
। থেকে :help 'display'
:
uhex Show unprintable characters hexadecimal as <xx>
instead of using ^C and ~C.
এবং একটি সর্বশেষ টিপ হিসাবে, আপনি %B
( :set rulerformat=0x%B
) দিয়ে শাসকের কার্সারের নিচে অক্ষরের হেক্স মানটি প্রদর্শন করতে পারেন ।
আরো উন্নত: xxd
আপনি xxd(1)
ফাইলটি আরও পঠনযোগ্য ফর্ম্যাটে রূপান্তর করতে এবং আপনার ("এটি গুরুত্বপূর্ণ বিষয়)" সম্পাদিত "পঠনযোগ্য ফর্ম্যাট" পার্স করে এবং বাইনারি ডেটা হিসাবে এটি আবার লিখতে পারেন use xxd
এর অংশ vim
, তাই আপনি যদি vim
ইনস্টল করে থাকেন তবে আপনারও হওয়া উচিত xxd
।
এটি ব্যবহার করতে:
$ xxd /bin/ls | vi -
অথবা আপনি যদি ইতিমধ্যে ফাইলটি খোলেন, আপনি এটি ব্যবহার করতে পারেন:
:%!xxd
এখন আপনার পরিবর্তনগুলি করুন, আপনাকে ডিসপ্লের বাম-হাতের অংশে এটি করতে হবে (হেক্স নম্বরগুলি), ডানদিকে পরিবর্তনগুলি (মুদ্রণযোগ্য উপস্থাপনা) লেখার ক্ষেত্রে উপেক্ষা করা হবে।
এটি সংরক্ষণ করতে, ব্যবহার করুন xxd -r
:
:%!xxd -r > new-ls
এটি এতে ফাইলটি সংরক্ষণ করবে new-ls
।
বা বাইনারিটি বর্তমান বাফারে লোড করতে:
:%!xxd -r
থেকে xxd(1)
:
-r | -revert
reverse operation: convert (or patch) hexdump into binary. If
not writing to stdout, xxd writes into its output file without
truncating it. Use the combination -r -p to read plain hexadeci‐
mal dumps without line number information and without a particu‐
lar column layout. Additional Whitespace and line-breaks are
allowed anywhere.
এবং তারপরে এটি :w
লিখতে ব্যবহার করুন। ( সাবধান! আপনি binary
একই ফাইলের উপরে লেখার আগে বিকল্পটি সেট করতে চান , উপরের একই কারণে)।
এটিকে কিছুটা সহজ করার জন্য পরিপূরক কী-বাইন্ডগুলি:
" Hex read
nmap <Leader>hr :%!xxd<CR> :set filetype=xxd<CR>
" Hex write
nmap <Leader>hw :%!xxd -r<CR> :set binary<CR> :set filetype=<CR>
আপনি 'টুলস ➙ কনভার্ট টু এইচএক্স' এবং 'সরঞ্জাম। কনভার্ট ব্যাক' এর অধীনে জিভিম ব্যবহার করছেন তবে মেনু থেকে এটি উপলব্ধ।
তেজ টিপস উইকি আরো তথ্য এবং কিছু সাহায্যকারী স্ক্রিপ্টের একটি পৃষ্ঠা আছে। ব্যক্তিগতভাবে, আমি মনে করি আপনি যদি প্রায়শই বাইনারি ফাইলগুলি সম্পাদনা করেন তবে সত্যিকারের হেক্স সম্পাদক ব্যবহার করে আপনি সম্ভবত আরও ভাল। ভিম
কাজটি সাজানোর মতো কাজ করতে পারে তবে এটি অবশ্যই এর জন্য নকশাকৃত নয় এবং আপনি যদি কখনও :set binary
ভিম ছাড়াই লিখেন তবে আপনার বাইনারি ফাইলগুলি ধ্বংস হতে পারে!