আমি কি ভিমে লেখার ন্যায্যতা বলতে পারি?


38

পিকো বা ন্যানোতে কোনও পাঠ্য ফাইল সম্পাদনা করার জন্য এবং ভিমে না থাকার একমাত্র কারণ ছিল তার "ন্যায়সঙ্গত" কমান্ড ^J। এটি পাঠ্যের একটি অনুচ্ছেদে পুনরায় ফর্ম্যাট করবে, শব্দ বিরতিতে লাইন বিরতি তৈরি করবে যাতে পাঠ্যটি নির্দিষ্ট প্রস্থের স্ক্রিনে সুন্দরভাবে ভাসতে পারে - পূর্বনির্ধারিত 80 টি কলামের সাথে টেক্সট বিন্যাস করে কেবল শব্দের মধ্যে লাইন বিরতি তৈরি করে। ফাংশনটি যেমন সীমাবদ্ধ ছিল তেমনি এটি খুব দরকারী, দীর্ঘ মন্তব্য ব্লক, ডকুমেন্টেশন ফাইলগুলি ফর্ম্যাট করতে হবে বা কেবল আরও কিছু পাঠযোগ্য with

আমি কি ভিমে তেমন কিছু করতে পারি?

উত্তর:


37

আপনি মোশন কমান্ডের সাথে মিলিত gqবা gwঅপারেটরগুলি ব্যবহার করতে পারেন । ডিফল্টরূপে, এটি fmtপ্রদত্ত পাঠ্যটিকে ফর্ম্যাট করতে প্রোগ্রাম (লিনাক্সে) ব্যবহার করে । যাইহোক, আমার জ্ঞানের সেরা হিসাবে, এটি লাইনগুলিকে ন্যায়সঙ্গত করে না তাই আপনি সঠিকভাবে মার্জিন পাবেন।

আমি এটি যেভাবে ব্যবহার করি তা হ'ল gwip(সাধারণ মোডে) অনুচ্ছেদে কার্সারটি দিয়ে। এটি কার্সারকে একই অবস্থানে রেখে বর্তমান অনুচ্ছেদে ফর্ম্যাট করবে। শুধুমাত্র বর্তমান অনুচ্ছেদটি ফর্ম্যাট হয়েছে কিনা তা নিশ্চিত করতে আমি এটি এইভাবে ব্যবহার করি। একটি পাঠ্য ফাইল সম্পাদনা করার সময়, ফাইলের gwGশুরুতে (সাধারণ মোড) ইস্যু করা পুরো পাঠ্যের বিন্যাস করবে। একটি ভাল অনুশীলন হিসাবে, অনুচ্ছেদের মধ্যে কমপক্ষে একটি ফাঁকা রেখা ছেড়ে যাওয়ার বিষয়ে নিশ্চিত হন।

অনেকগুলি কনফিগারেশন করা যেতে পারে। দিয়ে শুরু করতে, এখানে কিছু প্রাসঙ্গিক সহায়তা আছেন: :h gq, :h gw, :h fo(ফর্ম্যাট বিকল্পগুলি), :h fp(বিন্যাসটি প্রোগ্রাম), :h fo-table(সম্ভাব্য অপশন একটি ব্যাখ্যা)।


1
gq / gw অবশ্যই যাওয়ার উপায় definitely এই বার্তায় যোগ করতে আপনি আরও বিকল্প থাকতে পারে বিন্যাস প্রোগ্রাম পরিবর্তন করতে পারেন। চেকআউট vimcast.org/episodes/formatting-text-with-par
Bambu

3
ডিফল্টরূপে, ভিম কোনও বাহ্যিক প্রোগ্রাম ব্যবহার করে না, যদিও আপনি 'formatprg'বিকল্পটি সেট করে কোনওটি বেছে নিতে পারেন ।
জামেসান

15

এই বিষয়টিতে একটি দুর্দান্ত ভিমকাস্ট রয়েছে।

http://vimcasts.org/episodes/formatting-text-with-par/

মূলত, আপনার ইনস্টল করতে হবে par:

$ brew install par
# or
$ sudo apt-get install par

এবং তারপরে, যেহেতু আপনি চান 80 টি কলামগুলিতে কলামগুলি মোড়ানো হোক:

:set formatprg=par\ -w80

এখন আপনি gqঅন্যান্য উত্তরগুলির মতো অপারেটরটি ব্যবহার করতে পারেন (যেমন gqip), এবং এটি ভিমের অন্তর্নির্মিত ফর্ম্যাটারের পরিবর্তে পার ব্যবহার করবে।

পার বেশ উন্নত, এবং এটি মত সুন্দরভাবে মতামত বিন্যাস করবে:

/* This is a long */
/* multiline comment */

11

থেকে :help usr_25:

JUSTIFYING TEXT                                                                 

Vim has no built-in way of justifying text.  However, there is a neat macro     
package that does the job.  To use this package, execute the following          
command:                                                                        

        :runtime macros/justify.vim                                             

This Vim script file defines a new visual command "_j".  To justify a block of  
text, highlight the text in Visual mode and then execute "_j".

সুতরাং, আপনাকে যা করতে হবে তা চালানো

:ru macros/justify.vim

এবং তারপর টাইপ করুন

_j

পুরো ফাইলটিতে পাঠ্যকে ন্যায়সঙ্গত করতে।

(অবশ্যই, আপনি ru macros/justify.vimনিজের .vimrc এ যুক্ত করতে পারেন যাতে আপনাকে প্রতিবার এটি টাইপ করতে হবে না))

দ্রষ্টব্য : এটি আপনার জন্য লাইন বিরতি যুক্ত করে না । আপনাকে সেগুলি ম্যানুয়ালি যুক্ত করতে হবে gq। এর জন্য আপনাকে অবশ্যই textwidthআপনার পছন্দসই মানটির মাধ্যমে (ডিফল্ট 0 হবে) সেট করতে হবে

set textwidth=80

এবং tyou যদি আপনি চান via -ফ্লেগের মাধ্যমে সেট করে স্বয়ংক্রিয় পাঠ্য মোড়ানো

set formatoptions+=t

আপনি যদি চান তবে পুরো জিনিসটি করার জন্য আপনি .vimrc এ একটি ম্যাপিং সেট করতে পারেন:

nnoremap <C-j> gggqG_j

এটি ফাইলের শুরুর দিকে ( gg) সরে যায় , সমস্ত লাইন ( gqঅবধি G) _jমোড়ানো হয় এবং তারপরে পাঠ্যটি ব্যবহার করে।


ফর্ম্যাটিংয়ে আরও ঘনিষ্ঠভাবে দেখার জন্য, দেখুন: ভিআইএম ব্যবহারকারী ম্যানুয়াল - বিন্যাসিত পাঠ্য সম্পাদনা করা
সুয়েহেগি

আমি :set fo+=aপুরো অনুচ্ছেদে স্বয়ংক্রিয় পুনরায় ফর্ম্যাট করার জন্য খুব দরকারী বিকল্পটি পেয়েছি । :help fo-tableঅন্যান্য বিকল্পগুলির জন্য একবার দেখুন । এখানে একটি দুর্দান্ত ভিডিও টিউটোরিয়াল রয়েছে
সুয়েহেগি

সম্পূর্ণ অন্তর্নির্মিত সমাধানের জন্য +1। _jম্যাপিং ম্যাক্রো দ্বারা যোগ আমার জন্য সম্পূর্ণ ফাইল ন্যায্যতা প্রতিপাদন করা বলে মনে হয়, অথবা এটি একটি linewise চাক্ষুষ নির্বাচন সঙ্গে পেতে পারে।
ches

5

ন্যানোর সহায়তা ^Jকমান্ডটিকে " ন্যায্যতা জানাতে " ডাকে যদিও এটি পাঠ্যের সত্যতা দেয় না , এটি স্ক্রিনের ডান প্রান্তের (বা কোনও কনফিগারযোগ্য কলামে, অনুমান) আগে লাইনগুলি ভেঙে পাঠ্যটিকে পুনরায় ফর্ম্যাট করে।

আপনি পরিবর্তনশীল সেটিং দ্বারা VIM একই জিনিস করতে পারি না textwidth, থেকে :help 'textwidth':

Textোকানো হচ্ছে এমন পাঠ্যের সর্বাধিক প্রস্থ। এই প্রস্থটি পেতে সাদা স্থানের পরে একটি দীর্ঘ লাইনটি নষ্ট হয়ে যাবে। একটি শূন্য মান এটি অক্ষম করে।

এটি বলার জন্য: আপনি টাইপ করার সময়, লাইনটি textwidthঅক্ষরের চেয়ে দীর্ঘ হয় , ভিআইএম লাইনটির দৈর্ঘ্য কম বা সমান রাখার জন্য প্রথম স্থানটিতে লাইনটি আবদ্ধ করবে textwidth

এটি কাজ করার জন্য অপশনটিতে formatoptionsঅবশ্যই চিঠিটি থাকতে হবে t। উপলভ্য বিকল্পগুলি দেখুন :help 'formatoptions'এবং দেখুন :help fo-table, উদাহরণস্বরূপ আপনি cমন্তব্য সহ ফর্ম্যাটিংয়ের কাজ করার বিকল্পটিতে আগ্রহী হতে পারেন ।

সম্পাদনা : আপনি একই অপারেশন করা প্রয়োজন ছাড়াই সম্পাদন করতে পারবেন tমধ্যে formatoptionsকমান্ড ব্যবহার করে gw{motion}, এটা সাম্প্রতিক কার্সারের অবস্থানে এবং পরে কার্সার অবস্থানে মধ্যে লেখার ফরম্যাট {motion}gwকমান্ড চাক্ষুষ মোডে পাওয়া যায়, এটা নির্বাচিত পাঠ বিন্যাস।


1
এটি টাইপিংয়ের জন্য ভাল। আমি কি পূর্ব-বিদ্যমান পাঠ্যের জন্য এটি প্রয়োগ করতে পারি?
এসএফ

3

এখানে দুটি সহজ বিকল্প রয়েছে:

  1. নির্বাচিত পাঠ্যের একটি ব্লক সহ, টাইপ করুন !fmt
  2. একটি ব্লকের শুরুতে আপনার কার্সার দিয়ে টাইপ করুন !}fmt

এই উভয়ই ইউনিক্সে পাঠ্যের একটি ব্লক প্রেরণ করে fmt, man fmtবিকল্পগুলির জন্য দেখুন । আপনি ভিএম থেকে বিকল্প আর্গুমেন্ট পাস করতে পারেন। উদাহরণস্বরূপ, একটি ব্লকটি 50 টি অক্ষরের প্রশস্ত বিন্যাস করতে টাইপ করুন !}fmt -w 50


সে সম্পর্কে দুঃখিত, এখনই স্থির
Kaan

আপনি টাইপ করেও আপনার পুরো ফাইলটি ফর্ম্যাট করতে পারেন এবং ফলাফল পছন্দ না হলে :%!fmtএকটি একক সাথে পূর্বাবস্থায় uফিরে আসতে পারেন।
ওয়াইল্ডকার্ড

-1

ভিজ্যুয়াল কমান্ড ব্যবহার করে পাঠ্যটি চিহ্নিত করুন এবং তারপরে ব্যবহার করুন:

:!par 40j 

যেখানে 40 কলামের প্রস্থ এবং এর jঅর্থ ন্যায়সঙ্গত ti


2
আমাদের সাইটে আপনাকে স্বাগতম! আপনার প্রশ্নটি বর্তমানে নিম্নমানের কারণ এটিতে আপনি যে সরঞ্জামটি ব্যবহার করছেন ( par) এবং আপনার সমাধান কেন কাজ করে সে সম্পর্কে ব্যাখ্যাগুলির অভাব রয়েছে । আপনার উত্তরের গুণমান উন্নত করতে এবং ভবিষ্যতের পাঠকদের জন্য আরও দরকারী করে তুলতে আপনি আরও বিশদ যুক্ত করতে চাইতে পারেন।
স্টাটক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.