স্বেচ্ছাসমূহ প্রস্থের উইন্ডোতে 80 টি অক্ষরে নরম মোড়ানো


126

আমার আসল উইন্ডো প্রস্থ নির্বিশেষে আমি 80 টি অক্ষরে কিছু কোড মোড়ানোর জন্য আমি ভিমের নরম মোড়ানোর ক্ষমতা ( :set wrap) ব্যবহার করতে চাই ।

আমি এখনও এটি করার উপায় খুঁজে পাইনি - সমস্ত নরম মোড়ক জানালার প্রস্থের সাথে আবদ্ধ বলে মনে হচ্ছে

  • textwidthএবং wrapmarginউভয়ই শক্ত মোড়ানোর জন্য (তারা ফাইলে নতুন লাইনের অক্ষর সন্নিবেশ করায়)
  • একাধিক উইন্ডোতে উল্লম্ব বিভাজক এবং :vertical resize 80(সম্ভবত :set breakat=কোনও চরিত্রের বিরতি দেওয়া সম্ভব) এর মধ্যে একটির কাজ (যদিও এটি কিছুটা হ্যাচিশ), কিন্তু :set numberলাইন সংখ্যা হিসাবে ব্যবহার করার সময় বিভাজনগুলি কলামের একটি পরিবর্তনশীল সংখ্যা গ্রহণ করে (নির্ভর করে ফাইলের দৈর্ঘ্যে) এবং এগুলি 80 এর অংশ।

ভিমে এটি করার কোনও উপায় আছে কি? অন্যান্য উত্স অনুসারে, এটি আশাব্যঞ্জক বলে মনে হচ্ছে না

এই মুহুর্তে আমার অনুমান কেবলমাত্র /^.\{80}\zs.\+আমার ডিফল্ট অনুসন্ধান হিসাবে রয়েছে যাতে এটি কমপক্ষে হাইলাইট হয়। আমি :syntaxএটির জন্য একটি আইটেম যুক্ত করার কথা ভেবেছিলাম , তবে এটি অন্যান্য সিনট্যাক্স আইটেমকে ওভারল্যাপ করার সময় ভেঙে গেছে, তাই আমি এই ধারণাটি ফেলেছি।


আসলে, আপনি কীভাবে একটি ডিফল্ট অনুসন্ধান সেট আপ করেছিলেন?
থিথম্যান

উত্তর:


37

আপনি পারে

  • :set numberwidth=6এবং মাধ্যমে লাইন সংখ্যা কলামের জন্য একটি বৃহত্তর ন্যূনতম প্রস্থ সেট করুন
  • তারপরে আপনি আপনার উইন্ডোটিকে :set columns=86সঠিক আকারে (বা মাউস দিয়ে) আকার দিতে পারেন।

আপনি যদি এতে মিলিয়ন লাইনের সাহায্যে কোনও ফাইল সম্পাদনা করেন তবে আপনার সমস্যা হতে পারে তবে এটি অসম্ভব। আপনি এভাবে স্ক্রিন রিয়েল এস্টেটের 6 টি কলাম নষ্ট করছেন। সুতরাং এখনও সব ধরণের সমস্যা আছে।

আপনি এখানে এবং এখানে:match যেমন বলেছেন তেমন 80 টি কলামটি হাইলাইট করতে পারেন ।

এর বাইরে আমি এটি করার কোনও উপায় দেখতে পাচ্ছি না। দেখে মনে হচ্ছে এটি একটি দুর্দান্ত বৈশিষ্ট্য হবে।


দুর্ভাগ্যক্রমে ভিম উইন্ডোটি পুনরায় আকার দেওয়ার সাথে সাথে কলামগুলি সেটিংস রাখে না। এটি উইন্ডো পরিচালকদের টাইলিংয়ের ক্ষেত্রে দুর্ভাগ্যজনক পরিস্থিতির দিকে নিয়ে যায় যেখানে উইন্ডোটি খুব প্রশস্ত থাকলে 80 কলামে নরম মোড়ানোর কোনও ভাল উপায় নেই।
মহাকর্ষ

এটি কাজ করে, তবে এটি আঠালো নয়। আমি অনুমান করি যে পরবর্তী পদক্ষেপটি আপনার পছন্দের ফাইল টাইপের জন্য কলামগুলি নতুন পছন্দসই আকারে রাখতে একটি অটোকিমডি সেটআপ করা।
xer0x

1
এটি সঠিক উত্তর যা এটি আপনাকে নিশ্চিত না করে তা নিশ্চিত করে। এবং আমি নিশ্চিত যে আমিই একা নন যিনি কেবল এই জন্য আমার টার্মিনাল উইন্ডোর আকার পরিবর্তন করতে চান না। আমি নন-ভিএম ব্যবহারের জন্য আরও অনেক প্রস্থ চাই।
শ্রীধর সারনোবাত

20

এটা চেষ্টা কর:

set columns=80
autocmd VimResized * if (&columns > 80) | set columns=80 | endif
set wrap
set linebreak
set showbreak=+++

আপনি সর্বদা 80 টি কলাম if (&columns > 80) |চাইলে আপনি এটি সরাতে পারেন ।


আমার আইটার্ম টার্মিনালে এটি উইন্ডোটিকে আরও ছোট করে তোলে। আমি নিশ্চিত না যে এটি আমার পরিবেশের কোনও সমস্যা (আমি দেখতে পাচ্ছি যে আপনি স্বয়ংক্রিয় আকার পরিবর্তন করে কিছু করছেন) তবে অন্যথায় এটি পছন্দসই নয়। যদিও পরামর্শ জন্য ধন্যবাদ।
শ্রীধর সারনোবাত

অটোকএমডি আমার জন্য পুরোপুরি কাজ করেছিল (গুয়াক টার্মিনাল ব্যবহার করে)।
mzcarlos

অ্যালক্রিটিতে টিমাক্স + নিওভিমের সাথে আকর্ষণীয় কাজ করে।
মেহ

16

আমার কাছে নরম মোড়কের কোনও সমাধান নেই, তবে একটি কলাম চিহ্নিত করার জন্য, ভিম .3.৩ অনুসারে (প্রকাশিত ২০১০-০-15-১)) :set colorcolumn=80কলামটি ৮০ হাইলাইট করবে The রঙটি আপনার সিনট্যাক্স ফাইলের উপর নির্ভর করবে।

দেখুন তেজ 80 কলাম উদ্বেগ বিন্যাস , :h colorcolumn


উদ্ধৃতিগুলি বৈধ ইউআরএল নয় তাই এটি বোধগম্য হয়। অ্যাঙ্কারের নামটিতে অবৈধ ইউআরএল অক্ষর থাকা উচিত নয়, অন্য সাইট বিকাশকারীদের ত্রুটিগুলি ঠিক করা উচিত নয়।
শ্যাডো উইজার্ড আপনার পক্ষে কান

1
শ্যাডো উইজার্ড আমার উত্তরের আগের সংশোধনটির কথা উল্লেখ করছে যাতে আমি মার্কডাউন ব্যবহার করে ইউআরএলগুলিতে কীভাবে একক উদ্ধৃতি স্থাপন করব সে সম্পর্কে আমি অবাক হয়েছি। তারপরে ইব % 27 ব্যবহার করার পরামর্শ দিল , যা কাজ করেছিল। ধন্যবাদ, ইব।
ftvs

সম্প্রতি আবিষ্কার হয়েছে কীভাবে শুধুমাত্র 80 ~:let w:eighty_column_match = matchadd('ColorColumn', '\%81v.\+', 100)
রম্পিওন

colorwidthতাই আমি আনন্দিত এই পোস্ট করছি জিনিস, অন্যান্য কারণে সহায়ক।
শ্রীধর সারনোবাত

2

আপনি চেষ্টা করেছেন 'linebreak'?

        *'linebreak'* *'lbr'* *'nolinebreak'* *'nolbr'*
  'linebreak' 'lbr' boolean (default off)
        local to window
        {not in Vi}
        {not available when compiled without the  |+linebreak|
        feature}
If on Vim will wrap long lines at a character in 'breakat' rather
than at the last character that fits on the screen.  Unlike
'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file,
it only affects the way the file is displayed, not its contents.  The
value of 'showbreak' is used to put in front of wrapped lines.
This option is not used when the 'wrap' option is off or 'list' is on.
Note that <Tab> characters after an <EOL> are mostly not displayed
with the right amount of white space.

3
হুম ... তবে breakatএটি কেবল একটি প্যাটার্ন (কোনও দৈর্ঘ্য নয়), তাই আমি দেখতে পাচ্ছি না যে আমি কীভাবে 80 এ নরম
মোড়কে

হুম, আমি অবাক হয়েছি যে এমন একটি রেইজেক্স তৈরি করা সম্ভব যা শব্দের সাথে মিলবে যার মোট দৈর্ঘ্য (এর মধ্যে সাদা অংশ) n অক্ষরের চেয়ে কম বা সমান।
শেন ক্রেইটন-ইয়ং

@ শেনক্রাইটন-ইয়াং: ^.{,80}\bনরম / প্রসারিত ট্যাব ব্যবহার করেন এমন লোকদের জন্য করবেন। নোট করুন যে পার্ল রেজেক্স, ভিম রেজেক্স নয়।
মার্ক কে কোয়ান

0

এটি করার কোনও ভাল উপায় নেই। আমরা একটি অস্থায়ী হ্যাক করতে setlocal softwrapসঙ্গে autocmdযদি আমরা @eborisch উত্তর পরিবর্তন করুন। আমরা যখন প্রতিবার বাফারটি প্রবেশ করি প্রতিবারই যদি আকার পরিবর্তন করি এবং স্থানীয় ভেরিয়েবল softwrapসেট করা হয় তখন আমরা একটি নির্দিষ্ট দৈর্ঘ্যের আকার পরিবর্তন করি, আমরা পছন্দসই আচরণটি পাই।

ধরা যাক আমরা ৮০ টি কলামে নরম মোড় করতে চাই, আমরা নিম্নলিখিতটি লিখতে পারি .vimrc

augroup softwrap
    autocmd VimResized * if (exists('b:softwrap') && &columns > 80) | set columns=80 | endif
    autocmd BufEnter * set columns=999
augroup END

একটি নির্দিষ্ট বাফারের জন্য মোডটি চালু করতে, নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

let b:softwrap=1
set columns=80

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