আমি কীভাবে ভিমের প্রকৃত উচ্চতা এবং প্রস্থ পাব?


18

winheight()এবং winwidth()বর্তমান উইন্ডোতে কলাম / রেখার সংখ্যাটি ফিরিয়ে দিন। আমি যা খুঁজছি তা হ'ল সম্পাদনা ক্ষেত্রের প্রকৃত উচ্চতা এবং প্রস্থের কাছাকাছি বা টার্মিনালে চালিত হলে প্রদর্শিত অঞ্চল। সমস্যা winheight()এবং winwidth()এই মানগুলি থেকে গণনা করা অনুপাতটি প্রকৃত অনুপাতের অনুপাতের সাথে যোগাযোগের বাইরে।

:echo winwidth('%') winheight('%') winwidth('%') * 1.0 / winheight('%')
104 51 2.039216

বাফার এরিয়ার স্ক্রিনশটটি আকারের 936x918 পিক্সেল আকারের প্রদর্শিত অনুপাত দেয় 1.019608। আমি মনে করি আমি ফন্টের আকার ব্যবহার করে প্রকৃত মান পেতে পারি, তবে কীভাবে?

এটি আমি কীভাবে উল্লম্ব বিভাজনে ভিমকে উন্মুক্ত সহায়তা করতে পারি তার ফলোআপ এটি ? । আমি নোবি 4 এর সমাধানটি মানিয়ে নেওয়ার চেষ্টা করছি ।


3
আমি মনে করি না যে আপনি প্লেইলে ভিম ফাংশনগুলির সাথে পিক্সেলগুলিতে মাত্রা পেতে পারেন। একটি উল্লম্ব বিভক্ত উদ্বোধনী সাহায্যের জন্য আমি অনুপাত হিসাব দিয়ে বিরক্ত করবেন না, আমি শুধু বিভক্ত উল্লম্বভাবে যদি টার্মিনাল উইন্ডোর যথেষ্ট চওড়া হল: cnoreabbrev h <C-r>=(&columns >= 160 && getcmdtype() ==# ':' && getcmdpos() == 1 ? 'vertical botright help' : 'h')<CR>
সাতো ক্যাটসুর

1
@ স্যাটোক্যাটসুরা বেশিরভাগ ওয়েব বিকাশকারীদের দ্বারা নির্ধারিত traditionতিহ্য অনুসরণ করে, যারা ডকুমেন্টের প্রস্থটি কোনও মোবাইল কিনা তা নির্ধারণ করতে এটি ব্যবহার করে। :(
মুরু

1
আসলেই নয়, যেহেতু আমি কেবল এটিই আমার কাছে চাপিয়ে দিচ্ছি। আমি কিছু সময়ের জন্য অ্যাসপেক্ট রেশিও নিয়ে খেললাম এবং ফলাফলগুলি সন্তোষজনক বলে আমি পেয়েছি। তারপরে মনে পড়ল টার্মিনালগুলি খোলার জন্য, "সাধারণ" আকারের এবং "প্রশস্ত" টার্মিনালের জন্য আমার কাছে দুটি শর্টকাট রয়েছে। সুতরাং আমার টার্মিনালগুলির প্রায় সবসময় একই আকার থাকে। অবশ্যই ওয়াইএমএমভি।
সাতো ক্যাটসুর

@ স্যাটোক্যাটসুর এই আদেশটি কিছু মারাত্মক অন্ধকার জাদু। আমি খুব অবাক হয়েছি যে ==#অপারেটরটি :hপরিষ্কার করতে সহায়তা করেছিল তা সম্পর্কে না জেনে আমি আসলে পুরো ফ্রিকিং কমান্ডটি বুঝতে পারি। এটি কি আমাকে ভিম বিশেষজ্ঞ করে তোলে? এমন কিছু হতে হবে। আরও খুঁজে বের করা প্রয়োজন।
স্টিভেন লু

উত্তর:


1

104 কলাম / 51 লাইন = 2.04

আপনার গণনা skew কারণ প্রতিটি ঘরের দিক অনুপাত উল্লম্ব।

টার্মিনাল.এপ-তে উদাহরণস্বরূপ, ২৩ টি ফন্ট এবং ডিফল্ট অক্ষর ব্যবধান সহ প্রতিটি টার্মিনাল কক্ষের মোট 72২৮xx65৫px এর প্রস্থ 7px এবং উচ্চতা ১৫ পিক্সের থাকে :

(104 * 7) / (51 * 15) = 728/765 = 0.95


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

আপনি যদি এটি পরিচালনা করে থাকেন, তবুও আপনার কোনও ঘরের আকার কমানোর একটি উপায় প্রয়োজন যা কোনও মান না থাকলে টার্মিনাল প্রোগ্রামের উপর নির্ভর করে পরিবর্তিত হতে পারে । আমি কেবলমাত্র আইটার্ম 2 পরীক্ষা করেছি যা ভাগ্যক্রমে একই ফলাফল।


অতএব আমি একটি স্থিতিশীল সমাধানের জন্য নির্বাচন করব। আপনি যে স্নিপেটটি রাখতে পারেন তাতে আমি সর্বনিম্ন প্রস্থের চেকটি গ্রাফ্ট করেছি plugin/help.vim:

function! Help(...)
  let l:topic = a:0 ? a:1 : ''
  if winwidth('%') >= 160 " Minimum width
    execute 'vertical botright help' l:topic
    execute 'vertical resize 78'
  else
    execute 'botright help' l:topic
  endif
endfunction

" Use :H to open a vertical or horizontal help split
command! -complete=help -nargs=? H call Help(<f-args>)

উইন্ডোটি যদি বর্তমান বাফারের 80 টি কলাম রাখতে যথেষ্ট বড় হয় তবে ডানদিকে একটি সংকীর্ণ সহায়তা বিভক্ত হবে, অন্যথায় বিভাজনটি নীচে খোলা হবে। আপনি এর সাথে বিভক্ত দিকটি কাস্টমাইজ করতে পারেন :vertical

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