উত্তর:
যদি আমি কিছু মিস না করি তবে ভিম ইতিমধ্যে তা করে ফেলেছে। আমি যদি মাউস ব্যবহার করে বা v
কার্সারটি টাইপ করে এবং সরানোর মাধ্যমে কিছু পাঠ্য হাইলাইট করি তবে আমি পর্দার নীচে দেখতে পাচ্ছি
- দর্শন - 12
যেখানে ডানদিকে সংখ্যাটি হাইলাইট করা অক্ষরের সংখ্যা। এটি কেবলমাত্র যদি কাজটি একটি একক সারিতে থাকে তবে কাজ করে, অন্যথায় এটি সারি গণনা দেখায়।
আপনি টেক্সট এবং টাইপের কিছু অঞ্চলটি দৃশ্যত নির্বাচন করতে পারেন g Ctrl-Gযা নির্বাচিত লাইন, শব্দ এবং বাইটের সংখ্যা দেখায়।
set showcmd
করতে কেবল আপনার যুক্ত করুন vimrc
।
আপনি কী এবং কীভাবে কল্পনা করেন তার উপর নির্ভর করে ভিজ্যুয়ালাইজড পাঠ্যের জন্য অক্ষর গণনা এবং লাইন গণনা প্রদর্শনের মধ্যে ভিম ফ্লপ হয় (ভিম 7.4 সেপ্টেম্বর 2015-এ প্যাচড)
V will display line count
v$ will display character count
আপনি যদি একের বেশি লাইন ভিজ্যুয়ালাইজ করেন তবে এটি কেবল লাইন গণনা প্রদর্শন করে
g-CTRL-G displays 'byte count' which seems to be 'char count' +1 per line
v
চরিত্র-গণনা থেকে লাইন-কাউন্টে সাধারণ পরিবর্তনগুলি নির্বাচনটি একাধিক লাইনের বিস্তৃত হয়। তবে g CTRL-G
কাজটি সুন্দরভাবে করে।
:function VisualLength()
: exe 'normal "xy'
: echo "Visual: " . strlen(@x) . "\n"
: exe 'normal gv'
:endfunction
:map ,q "xy:call VisualLength()<CR>
প্রথমে আপনি বর্তমান নির্বাচনটি ইঙ্ক করে (বাফার এক্সে)
তারপরে আপনি সেই বাফারটির দৈর্ঘ্য প্রদর্শন করুন: strlen(@x)
( দর্শনটি - স্ট্যাটাস লাইনে প্রদর্শিত এটি এটিকে অস্পষ্ট করে তোলে , সুতরাং আমাদের একটি নতুন লাইন যুক্ত করতে হবে)
পূর্ববর্তী চাক্ষুষ পরিসীমা হাইলাইট করুন: gv
এটি ভিজ্যুয়াল মোডটি লাইন-, চরিত্রের- বা ব্লক-মোডের ছিল কিনা তা বিবেচনা করে না তবে বেশিরভাগ ক্ষেত্রে এটি যথেষ্ট।
আমি আপনার স্ক্রিনশট থেকে দেখতে পাচ্ছি যে আপনি উইন্ডোজটিতে চলছে, সুতরাং এই উত্তরটি আপনাকে ততটা সাহায্য করতে পারে না। তবে অন্যদের জন্য ...
ভিমের একটি আন্ডার-ইউজড (আইএমও) বৈশিষ্ট্যটি হ'ল বাহ্যিক আদেশগুলি ভারী উত্তোলন করতে দেয়।
এই ক্ষেত্রে, আপনি যদি ইউনিক্স-এর মতো সিস্টেমে থাকেন তবে আপনি এটি করতে wc
কমান্ডটি ব্যবহার করতে পারেন ।
সহজ উপায় হ'ল নির্বাচিত পাঠ্যটি কমান্ডের আউটপুট সহ টাইপ করে (নির্বাচিত পাঠ্য সহ) প্রতিস্থাপন করা:
:!wc
(তারপরে এন্টার টিপুন)।
এটি আপনার কমান্ড লাইনে প্রদর্শিত হবে:
'<,'>!wc
আপনি তথ্যটি পড়ার পরে, আপনি u
যেখানে শুরু করেছিলেন সেখানে ফিরে যেতে আপনি পূর্বাবস্থায় ফিরে যেতে পারেন।
দ্রষ্টব্য: এই প্রক্রিয়াজাতকরণ কেবল পুরো লাইনেই করা হয় । আপনি যদি আংশিক লাইনগুলি চান তবে আমার কাছে মনে হয় @ গ্যারিজন'ই g_CTRL-G
আপনার সেরা বাজি।
পরিবর্তে চালিয়ে আপনি পূর্বাবস্থায় ফেলার প্রয়োজনীয়তা এড়াতে পারেন:
:w !wc
এটি কমান্ডের স্ট্যান্ডার্ড ইনপুটটিতে নির্বাচিত লাইনগুলিকে "লেখায়", এবং কমান্ডের আউটপুটটি অস্থায়ীভাবে বাদ দিয়ে একটি নতুন অস্থায়ী বাফারে প্রদর্শিত হবে। দেখুন :help :write_c
আরও তথ্যের জন্য।
দ্রষ্টব্য: আমি :write_c
তথ্যটি পেয়েছি: /programming/1237780/vim-execute-shell-command-without-filtering
এখন, আরও সাধারণভাবে:
সহ এই উদাহরণটি wc
বেশ সরল, তবে আপনি কীভাবে এটি একটি শক্তিশালী পদ্ধতির ধারণা করতে পারেন। ইউনিক্সের ইতিমধ্যে প্রচুর পাঠ্য প্রক্রিয়াকরণ কমান্ড রয়েছে এবং আপনি ভিমস্ক্রিপ্ট (ইয়েচ) স্পর্শ না করেই এগুলি খুব সহজেই ভিমের অভ্যন্তরে ব্যবহার করতে পারেন।
এছাড়াও, আপনি যে কোনও কমান্ডলাইন প্রোগ্রাম লিখেছেন যে স্টিডিন / স্টাডাউট নিয়ে কাজ করে তা কেবল আপনার টার্মিনালেই নয়, ভিমের অভ্যন্তরেও উপকৃত হতে পারে।
আমি নিজেকে খুঁজে পাই, উদাহরণস্বরূপ, দৌড়ে tidy
এবং json-format
ভিএম এর ভিতরে থেকে ফাইলগুলি তৈরি করতে আমি আরও পাঠযোগ্য looking
আপনি উইন্ডোজেও এটি করতে পারেন, তবে উইন্ডোজে অন্তর্নির্মিত কমান্ডগুলির সমৃদ্ধ সেট নেই। যদিও এই সুবিধাগুলি পেতে আপনি সর্বদা GNUWin32 বা অনুরূপ ইনস্টল করতে পারেন ।
উইমস্ক্রিপ্টের মধ্যে একটি প্রোগ্রামেটিক উপায়ে, নির্বাচনটি যখন এক লাইনের মধ্যে সীমাবদ্ধ থাকে তখন এটি আমার পক্ষে কাজ করে:
let amount = virtcol("'>") - virtcol("'<")
(এর virtcol(..)
পরিবর্তে ব্যবহার করা যেমন সক্রিয় col(..)
হওয়ার সময় :set ve=all
এটি প্রত্যাশার মতো কাজ করে ))