ভিমকে সমস্ত চরিত্রের চরিত্র হিসাবে দেখান


771

আমি ভিমকে একটি চরিত্র হিসাবে সমস্ত সাদা স্পেস দেখানোর উপায় খুঁজে পাচ্ছি না। আমি যা কিছু পেয়েছি তা ট্যাবগুলি, পিছনের জায়গাগুলি সম্পর্কে was


14
আমি ঠিক এই সমস্যাটি সমাধান করার চেষ্টা করছি। দয়া করে, আপনি যদি এদিকে আসেন তবে জড়িত আরও একটি প্রতিক্রিয়া তৈরি করা থেকে বিরত থাকুন :set list। এটা আমাদের প্রশ্নের উত্তর দেয় না। (অন্যান্য আগতদের কাছে : নীচে মুর্কিদের প্রতিক্রিয়া সহায়ক, যদিও এটি আসল সমাধান নয় ))
এলিওটিটিএবল

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

11
নতুন দর্শনার্থীদের জন্য: এটি ভিএম এর নতুন সংস্করণে সমাধান করা হয়েছে! দেখুন brettanomyces এর নিচে উত্তর
এলিওটিটিসিবল

1
সম্পর্কিত (তবে পার্থক্যের স্ট্যাক): vi.stackexchange.com/questions/422/…
পিওরফেরেট

উত্তর:


693

অন্যরা যেমন বলেছে, আপনি ব্যবহার করতে পারেন

:set list

যা মিলবে

:set listchars=...

অদৃশ্য অক্ষর প্রদর্শন করুন।
এখন, কোনও স্পষ্ট বিকল্প নেই যা আপনি হোয়াইটস্পেস দেখানোর জন্য ব্যবহার করতে পারেন , তবে তালিকার ক্ষেত্রে আপনি বিট হোয়াইটস্পেসের জন্য সমস্ত কিছু দেখানোর জন্য একটি চরিত্র সেট করতে পারেন। উদাহরণস্বরূপ, আমার এইরকম দেখাচ্ছে

:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<

সুতরাং, এখন, আপনি ব্যবহার করার পরে

:set list

স্পষ্টভাবে অন্য কিছু হিসাবে দেখানো হয় না এমন সমস্ত কিছুই সত্যিকার অর্থে একটি সরল পুরাতন সাদা স্থান।

যথারীতি, কীভাবে listcharsকাজ করে তা বুঝতে, সহায়তাটি ব্যবহার করুন। এটি চরগুলি কীভাবে প্রদর্শিত হতে পারে (উদাহরণস্বরূপ স্থানের স্থান যেমন) এবং কীভাবে তা করা যায় সে সম্পর্কে দুর্দান্ত তথ্য সরবরাহ করে:

:help listchars

(: উৎস এটি তাই আপনি পরিবর্তনগুলি মাঝামাঝি সহজে সম্পাদনা দেখতে পারেন এটি একটি টগল যোগ করার জন্য সহায়ক হতে পারে VIM: সেট তালিকা .vimrc একটি টগল যেমন ):

noremap <F5> :set list!<CR>
inoremap <F5> <C-o>:set list!<CR>
cnoremap <F5> <C-c>:set list!<CR>

4
"সমস্ত কিছু যা স্পষ্টভাবে অন্য কিছু হিসাবে দেখানো হয় না"? U + 2000..U + 200A পরিসীমা থেকে ইউনিকোড স্পেস ব্যবহার করে দেখুন। যদি স্থির-প্রস্থের ফন্ট তাদের সমর্থন করে তবে এগুলি ঠিক 0x20 স্পেস হিসাবে প্রদর্শিত হবে।
জাইএক্স

2
@ জাইএক্স - আমি পুরো ইউনিকোডটি নিচ্ছিলাম না, তবে ব্যবহারের ক্ষেত্রে অক্ষরগুলির বরং সাধারণ সেট। আপনি যদি উত্তরের সাথে অসন্তুষ্ট হন তবে উন্নতির পরামর্শ দিতে দ্বিধা বোধ করবেন।
রক

20
@ কেকারবাস -: আমন্ত্রিত সেট করুন
রুক

দুর্দান্ত টিপ! আমি ফাইলে সেট তালিকাচার্স লাইন রাখার পরামর্শ দিচ্ছি .vimrc, যাতে অদৃশ্য অক্ষরগুলি প্রদর্শনের এই সুন্দর উপায়টি যে :set listকোনও সময় সহজেই সক্ষম করা যায় (এই পৃষ্ঠাটি আবার গুগল না করে)।
মেলিবিয়াস

8
@ckarbass একইভাবে আপনি ভিমে যে কোনও কিছু টগল করুন - একটি যুক্ত করুন! অবশেষে. সুতরাং এটি হয়ে যায়: তালিকা তৈরি করুন!

274

প্যাচ 7.4.710 হিসাবে আপনি এখন তালিকার ব্যবহার করে স্থানের জায়গায় প্রদর্শন করতে একটি অক্ষর সেট করতে পারেন!

:set listchars+=space:␣

সুতরাং, সমস্ত সাদা স্পেস অক্ষরকে একটি চরিত্র হিসাবে দেখাতে আপনি নিম্নলিখিতটি করতে পারেন:

:set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
:set list

মেলিং তালিকায় আলোচনা: https://groups.google.com/forum/?fromgroups#!topic/vim_dev/pjmW6wOZW_Q


2
এটি বেশ দুর্দান্ত, তবে আমি ভাবছি যে কেন অন্য চরিত্রের তুলনায় ইওল চরিত্রটি আলাদাভাবে রঙিত হয় না।
সিএমসিডিগ্রাগনকাই

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

4
আমি স্পেস অক্ষর ( space:·) এর জন্য ইউনিকোডের মিডল ডট (U + 00B7) ব্যবহার করি, যেমনটি এমএস ওয়ার্ড, নোটপ্যাড ++ ইত্যাদির মতো লাগে
ডাইনি

1
@ ইউজার 35359531 ইউনিকোড ওপেন বাক্স অক্ষর (␣) লিখতে <ctrl-v> u2334 চেষ্টা করুন। আরও তথ্যের জন্য গাঁথুনি.গেক.এনজেড / অারাবেস্ক / স্পেশাল-চ্যাকার্টারস ইন-ভিভ দেখুন
ব্রেট ওয়াই

3
<C-K>.Mজন্য ভিএম টাইপ করুন ·। দেখুন :h digraphবিস্তারিত জানার জন্য।
johnchen902

252

:set list সক্রিয় করতে.

:set nolist অক্ষম করা।


11
মোডগুলির মধ্যে কীভাবে টগল করতে হবে তা আমাদের দেখানোর জন্য আপনাকে ধন্যবাদ। আপনি ভাববেন যে অন্যান্য উন্নত উত্তরগুলি এটি শিখিয়ে দেবে।
জোনাথন কোমার

1
হ্যাঁ এটি সহায়ক। আমি আশা করি এটি শীর্ষস্থানীয় উত্তর হিসাবে আমি এই উত্তরটি নিজেরাই পেয়েছি কেবল এটি সন্ধান করার জন্য যে এটি ইতিমধ্যে সাইটে রয়েছে।
ইজসো

8
: set list!আরও ভাল :)
স্কিপার

@ স্কিপ্পার কী পরিমাণে? এটি বাদে এটি একই সংখ্যক কী প্রেসগুলি Shiftএবং !এটি টাইপ করা উভয়ই শক্ত no। যদি আপনি এটি আপনার .vimrc এ রাখছেন তবে আমি সম্মত হই যে এক্সামালাম ফর্মটি পড়া সহজ।
ড্যান বেচার্ড

7
@ ডান আপনি যদি এটি টগল করতে এবং অপেক্ষাকৃত স্বল্প সময়ের দিকে তাকিয়ে থাকেন তবে আপনার :set list!প্রবেশের প্রয়োজন ছাড়া এটি করবেন nolist!কেবল যাই হোক না কেন বর্তমানে সেট করা হয় বিপরীত আছে। আমি এটি সর্বদা ব্যবহার করি বিশেষত যখন :set paste!। আমি খুঁজে তীর কী টিপে ঘৃণা :set pasteবা :set nopasteতোমার
skippr

187

আমি মনে করি যে এখানে অন্যান্য উত্তরগুলি আরও বিস্তৃত, তবে আমি ভেবেছিলাম যে আমি সাধারণত এমন একটি কৌশল ভাগ করব যা আমি সাধারণত দৃষ্টিভঙ্গিভাবে ট্যাব এবং স্পেসকে আলাদা করতে ব্যবহার করি:

:syntax on
:set syntax=whitespace

এগুলি হাইটস্পেস প্রোগ্রামিং ভাষার জন্য সিনট্যাক্স হাইলাইট করার নিয়ম - ট্যাবগুলি সবুজ রঙে এবং লাল রঙের ফাঁকা স্থানগুলিতে প্রদর্শিত হয়। :)

:set listঅন্যান্য অনেক উত্তর দ্বারা উল্লিখিত হিসাবে একত্রিত করা যেতে পারে , যদিও ট্যাবগুলি তখন green আমি সবুজ হিগলাইট ব্যতীত প্রদর্শিত হবে তবে স্পেসগুলি লাল দেখানো হবে।


7
আমি এটি পছন্দ করি, এটি বেশ চতুর, এবং অন্যান্য উত্তরগুলির চেয়ে কিছুটা ভাল অনুভব করে। যদিও এটি এমন কোনও সমাধান নয় যা সর্বদা ব্যবহারযোগ্য।
কম্পিউটারড্রুড

4
আমি আরও প্রচলিত পদ্ধতি পছন্দ করি তবে আবিষ্কারের জন্য আমি এটি +1 করছি।
সিটিস ভ্যান ডার মোলেন

27
আমি জানতাম যে ভাষার জন্য দরকারী হবে কিছু
ড্যান বেচার্ড

1
আপনি হাইলাইট করার জন্য .vim সিনট্যাক্স ফাইলটির সাথে লিঙ্ক করার বিষয়ে কি আপত্তি আছে
SeldomNeedy

2
@ সেলডমনি আপনি কিছু ডাউনলোড করার দরকার নেই, সাদা স্থান স্পষ্ট করার নিয়মগুলি বছরের পর বছর ধরে ভিমের সাথে প্রেরণ করা হচ্ছে। এগুলি মূলত অন্তর্নির্মিত হওয়া উচিত যদি না আপনি ভিমের কোনও অদ্ভুত বা সত্যই পুরানো সংস্করণ ব্যবহার করেন।
এলিয়ট

91

:set listএকটি চরিত্র হিসাবে সমস্ত সাদা স্পেসগুলি প্রদর্শন করবে। সব কিন্তু একটি স্থান তার স্বাভাবিক রাষ্ট্র, যার মানে আপনি এখনও একটি প্লেইন পুরানো স্থান দেখতে পান, তাহলে এটি সত্যিই একটি প্লেইন পুরানো স্থান যে চেয়ে ভিন্ন হবে। :)


35
এটিকে আবার বন্ধ করুন:set nolist
গ্রেগ কে

6
যদি আপনি মহাকাশ পাঠ্য 2 এর মতো "শো হোয়াইটস্পেস" চালু করে স্পেস চরিত্রটি দেখতে চান? আমি এটি সত্যিই সহায়ক বলে মনে করি।
অলিকাল

আমি এখানে এসেছি তার জন্য নয় তবে খুব সহায়ক। ধন্যবাদ।
হার্পারভিল

4
এছাড়াও কোনও বিকল্পের সাথে !শেষে টগল করা যায় না:set list!
টালার্স

আমি এটির :se hls | /\_sজন্য একটি লাইনার ব্যবহার করি । set listস্পেসগুলি উপেক্ষা করার সময় সমস্ত কিছু পান । সঙ্গে আবার বন্ধ :se nohls। এই পোস্টে এটি সম্পর্কে বিশদ: albertech.blogspot.com/2015/02/…
জার

73

যদি আপনি সেট করেন:

:highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none

এবং তারপরে কোনও স্থানের জন্য অনুসন্ধান করুন, প্রতিটি স্থানের অক্ষরকে আন্ডারলাইন চরিত্র হিসাবে দেখানো হবে।

আপনি এই আদেশটি কোনও কার্যকর ফাংশনে ব্যবহার করতে পারেন যা স্পেসগুলির "আন্ডারকোরিং" টগল করে।

set hls
let g:HLSpace = 1
let g:HLColorScheme = g:colors_name
function ToggleSpaceUnderscoring()
    if g:HLSpace
        highlight Search cterm=underline gui=underline ctermbg=none guibg=none ctermfg=none guifg=none
        let @/ = " "
    else
        highlight clear
        silent colorscheme "".g:HLColorScheme
        let @/ = ""
    endif
    let g:HLSpace = !g:HLSpace
endfunction

একটি শর্টকাট কী এর সাথে ফাংশনটি মানচিত্র করুন:

nmap <silent> <F3> <Esc>:call ToggleSpaceUnderscoring()<CR>

নোট : কালারশেম সেট হয়ে যাওয়ার পরে ভিমক্রিতে ফাংশনটি সংজ্ঞায়িত করুন।


1
ঠিক আছে, এটি কিছুটা হ্যাক, তবে এটি এখন পর্যন্ত যে কোনও কিছুর চেয়ে নিকটবর্তী। অনুদান পুরষ্কার! : ডি
এলিওটিটিসিবল

45

বর্তমান বাফারের জন্য আপনার সিনট্যাক্স বিধির উপর নির্ভর করে এরকম কিছু কাজ করতে পারে:

:syn match WhiteSpace / / containedin=ALL conceal cchar=Æ
:setl conceallevel=2 concealcursor=nv

এটির জন্য একটি লুকানো বৈশিষ্ট্য সহ 7.3.3 ভিএম দরকার

10/24/2014 আপডেট করুন এটিতে কিছুটা প্রসারিত করতে। অবশ্যই কনলযুক্ত চরিত্রগুলির জন্য কিছু হাইলাইটিং সংজ্ঞা দেওয়া সম্ভব।

  • আপনি কীভাবে গোপন অক্ষরগুলি দেখতে চান তা কনফিগার করতে পারেন। হাইলাইট করার জন্য, আপনাকে কমপক্ষে একবার 'গোপন' হাইলাইটিং গোষ্ঠীটি কনফিগার :h hl-Concealকরতে হবে (এতে সহায়তা দেখুন এটি আপনার রঙিনচেমে করা যেতে পারে এবং তারপরে আপনাকে এটি পুনরায় কনফিগার করতে হবে না But তবে এটি সমস্ত গোপন অক্ষরকে প্রভাবিত করে (যেমন আপনার যদি সিনট্যাক্স স্ক্রিপ্ট আরও কিছু আইটেম গোপন করে, সেগুলি আপনার সাদা স্থানের অক্ষর হিসাবে প্রদর্শিত হবে) Thatএটি দেখতে দেখতে পারে:

    :hi Conceal ctermfg=7 ctermbg=NONE guifg=LightGrey guibg=NONE

  • সিনট্যাক্স স্ক্রিপ্টটি skipwhiteকীওয়ার্ডটি ব্যবহার করে এমন একটি বিশদ বলে মনে হচ্ছে যে ভিম স্পেসগুলি হাইলাইট করবে না । আশেপাশে কোনও উপায় থাকবে না (সম্ভবত এটি ঠিক হয়ে যাবে, আমি একটি প্যাচ পোস্ট করেছি) )

  • আশেপাশে ভাসমান একটি প্যাচ রয়েছে যা স্পেসগুলি listমোডে দেখতে কেমন হবে তা কাস্টমাইজ করার অনুমতি দেয় । লেখার সময় সর্বশেষ এক মনে করা হয় এই এক । (এর অর্থ এটি ব্যবহার করার জন্য আপনার নিজের ভিম তৈরি করা দরকার)।
  • conceallevelএবংconcealcursor জানালা স্থানীয় অপশন আছে। এর অর্থ তারা বিভিন্ন উইন্ডোতে আলাদা হতে পারে (এবং সম্ভবত ফাইল টাইপ প্লাগইনস বা অন্যান্য প্লাগইন স্ক্রিপ্টগুলিও সেট করবে)।
  • সিনট্যাক্স হাইলাইটিং গোষ্ঠীগুলি যখনই কোনও সিন্ট্যাক্স সংজ্ঞা ফাইল পুনরায় লোড করা হয় তখন সম্পাদন করা প্রয়োজন। এটি একটি BufWinEnterবা সম্ভবত একটি Syntaxবা এমনকি FileTypeস্বতঃআকমান্ড ব্যবহার করেও করা যেতে পারে । (কোনটি আসলে কাজ করে তা পরীক্ষা করে দেখিনি)।

শেষ দুটি আইটেমটির অর্থ, আপনাকে কয়েকটি অটোম্যান্ড সেটআপ করতে হবে যা সিনট্যাক্সের নিয়মগুলি এবং করিসস্প্যান্ডিং বিকল্পগুলি পুনরায় সেট করে। প্রথমটির জন্য, কেউ একটি ColorSchemeঅটোকমন্ড ব্যবহার করে হাইলাইট সেটআপ করতে চাইতে পারে (যাতে কোনও বর্ণ স্কিম কী সেট আপ করে তার থেকে পৃথক, গোপন অক্ষরগুলি সর্বদা একই দেখায়)। সম্পূর্ণ সমাধানের জন্য, রোমেনলের উত্তরটি দেখুন, এটি আপনাকে একটি সূচনা দেয়। যদি আপনি কোনও ফাংশন সেটআপ করেন তবে আপনি বিশেষ হাইলাইটিংটি চালু বা বন্ধ প্রদর্শন করতে একটি টগল কমান্ডটি সহজেই সেটআপ করতে পারেন।

আপডেট 10/26/2014 আমি একটি প্লাগইন তৈরি করেছি এই প্রশ্নটি থেকে ।

04/22/2015 আপডেট করুন একটি প্যাচ ভিমে অন্তর্ভুক্ত করা হয়েছে যা listবিকল্পটি ব্যবহার করে এটি সম্ভব করে তোলে । সহজভাবে সেট করুন set list listchars+=space:␣ এটি ভিম 7.4.711 হিসাবে কাজ করে


এটি দুর্দান্ত কাজ করে! এটি কীভাবে যুক্ত করা যায় .vimrc?
এরিক

1
যেহেতু এটি বর্তমান বাফারে কাজ করে, আপনার সম্ভবত এটি একটি অটোমোমন্ডে মোড়ানো প্রয়োজন। বুফএন্টর বা এমনকি সিন্ট্যাক্স স্বতঃআপনার কাজ আপনার জন্য কাজ করতে পারে:
ক্রিশ্চিয়ান ব্র্যাব্যান্ড ডেস্ক

3
Æএই জন্য চরিত্র একটি অদ্ভুত পছন্দ, কেন না ·?
মারিয়াস গেডমিনাস

1
এটি আসলে সঠিক উত্তর। এই চরিত্রটিতে সঠিক সিনট্যাক্স হাইলাইট করার জন্য কীভাবে কোনও ধারণা? আমি এটা পছন্দ করেন তাহলে এটা ছিল একটি খুব ম্লান ·
বিমান হামলায়

@ ক্রিশ্চিয়ানব্রাব্যান্ড, আপনার রেপো দূষণকারী এনআরআরগ্রন সম্পর্কিত ফাইলগুলির একটি গুচ্ছ রয়েছে।
রোমেনেল

31

আমি এটি ব্যবহার করি

/\s
:set hlsearch

সাদা স্থান হাইলাইট করতে। এটি সমস্ত সাদা স্পেস অনুসন্ধান করে এবং তারপরে হাইলাইটটিকে পপ আউট করতে সক্ষম করে। তবে এটি কোনও বিশেষ চরিত্র মুদ্রণ করে না


সহজ সমাধান imho। অনুসন্ধান সাফ করার জন্য একটি কমান্ডের সাহায্যে দুর্দান্ত জুড়ি (আমি ব্যবহার করি nnoremap <leader><space> :noh<cr>)
লেনা

24

যদি সাদা স্পেসগুলির দ্বারা আপনি বোঝাতে চান '' অক্ষর, আমার পরামর্শটি কেবল অনুসন্ধান / প্রতিস্থাপন হবে। অন্যদের hinted হয়েছে, set listপরিবর্তন অ মুদ্রণ একটি দৃশ্যমান চরিত্র কনফিগার এর অক্ষর listchars

স্পষ্টভাবে কিছু অন্যান্য চরিত্র হিসাবে স্পেসগুলি দেখানোর জন্য, নীচের মতো কিছু কৌশলটি করা উচিত:

:%s/ /█/g

তারপরে আবার ফিরে যেতে পরিবর্তনটিকে পূর্বাবস্থায় ফিরিয়ে আনুন।

(পেতে █ আমি এই সঠিক কী ক্রম টিপলাম :%s/ /CTRL-KFB/g:)


2
আমি এটি অন্যান্য উত্তরগুলির চেয়ে ভাল পছন্দ করি এটি দেখতে :set listআমার কাছে বিপরীত , দৃশ্যমান চরিত্র ('স্পেস') কে একটি _ন প্রাইজিং_ (??) এক হিসাবে পরিবর্তন করে। আমি ভাবছি যদি কেউ এই অভ্যন্তরীণ ম্যাচটি ব্যবহার করতে পারে যেমন :match MyBlackBlockChar "appropriate_regexকৌশলটি করা উচিত, তাই না?
সুধী

অন্যান্য উত্তরগুলি দরকারী, তবে এটিই প্রথম যা আসলে
ওপির

1
বা :%s/\s/█/gসমস্ত সাদা স্থানের জন্য। এছাড়াও, :set hlsearchপ্লাস :&s/\s//gnদরকারী হতে পারে।

16

স্পেসগুলি হাইলাইট করতে, কেবল এটির জন্য অনুসন্ধান করুন:

/ <স্পেস>

মন্তব্য:

  • <স্পেস> এর অর্থ কেবল স্থানের অক্ষর টাইপ করুন।
  • এর সাথে অনুসন্ধানের ফলাফলগুলি হাইলাইট করা সক্ষম করুন: hlsearch সেট করুন

    স্পেস এবং ট্যাবগুলি হাইলাইট করতে:

    / [<স্পেস> <ট্যাব>]

    হাইলাইটগুলি মুছে ফেলার একটি দ্রুত উপায় হ'ল অন্য যে কোনও কিছুর সন্ধান করা: / এস্যাসিডেফ

    (কেবল এলোমেলো অক্ষরের কোনও সংক্ষিপ্ত তালিকা টাইপ করুন)


  • 1
    এটি 3 বছর আগে পোস্ট করা উত্তর হিসাবে একই। এছাড়াও: নোহ হাইলাইট করা পাঠ্যের জন্য / এসএসডিএফের চেয়ে দ্রুত। অথবা আপনি এমনকি এফ 1 সেট করতে পারেন: নোহ যে আপনি সম্ভবত এটি প্রায়শই ব্যবহার করবেন।

    @ ড্রেভাল ধরে নিচ্ছেন আপনি বেনেডিক্ট ক্যাপেলের উত্তরটি উল্লেখ করছেন এটি আসলে ভিন্ন ভিন্ন /<space>বনাম /\s। আমি মনে করি যে এখানে পরামর্শটি ব্যবহার করা স্পষ্ট নয় এবং দ্রুত।
    icc97

    14

    নীচের কোডটি ক্রিশ্চিয়ান ব্র্যাব্যান্ডের উত্তরের উপর ভিত্তি করে এবং ওপি যা চায় তা করে বলে মনে হচ্ছে:

    function! Whitespace()
        if !exists('b:ws')
            highlight Conceal ctermbg=NONE ctermfg=240 cterm=NONE guibg=NONE guifg=#585858 gui=NONE
            highlight link Whitespace Conceal
            let b:ws = 1
        endif
    
        syntax clear Whitespace
        syntax match Whitespace / / containedin=ALL conceal cchar=·
        setlocal conceallevel=2 concealcursor=c
    endfunction
    
    augroup Whitespace
        autocmd!
        autocmd BufEnter,WinEnter * call Whitespace()
    augroup END
    

    সেই লাইনগুলিকে আপনার যুক্ত করুন ~/.vimrcএবং এখনও অপূর্ণ দেখতে একটি নতুন ভিম সেশন শুরু করুন ঘটে তা ।

    ডিফল্ট রঙগুলি সম্পাদনা এবং অক্ষর গোপন করতে নির্দ্বিধায়


    ক্যাভেট: *FuncBodyবেশ কয়েকটি ভাষায় সিনট্যাক্স গোষ্ঠীর কিছু মধ্যম বিন্দু প্রদর্শন করতে বাধা দেয়। আমি জানি না (এখনও?) কীভাবে সেই সমাধানটি আরও নির্ভরযোগ্য করে তোলা যায়।


    "সিনট্যাক্স গোষ্ঠীর উপর নির্ভর করে" আমি এটিই বোঝাতে চেয়েছি যে আমি স্কিপওয়াইট পতাকাটির সাথে মিলিয়ে সিএন কীওয়ার্ডের সাথে এটি একটি সমস্যা suspect
    ক্রিশ্চিয়ান ব্র্যাব্যান্ড

    @ ক্রিশ্চিয়ান ব্র্যাব্যান্ড, হ্যাঁ, আপনি এটিকে "স্বয়ংক্রিয়" তৈরি করার পাশে ইতিমধ্যে যা করেছেন আমি তার থেকে বেশি যেতে পারিনি।
    রোমেনেল

    1
    হ্যাঁ, এটি skipwhiteসিনট্যাক্স বিধিগুলির মধ্যে যুক্তি, যা সিনট্যাক্স গোষ্ঠীটিকে ম্যাচ করতে বাধা দেয় (যদিও এটি সমস্ত গ্রুপে অন্তর্ভুক্ত থাকতে দেওয়া উচিত)।
    খ্রিস্টান ব্র্যাব্যান্ড

    ইন্ডেন্ট গাইডের সাহায্যে এই কাজটি সুন্দরভাবে করার কোনও উপায় আছে যা ইন্ডেন্টেশনে ব্যাকগ্রাউন্ড যুক্ত করে? আমার সন্দেহ হয় যে এটি ব্যাকগ্রাউন্ডের রঙটি ওভাররাইড না করার বিষয়, তবে এটি আপত্তিজনক বলে মনে হচ্ছে না।
    মাইক 15

    সাদা স্থান হাইলাইট করার প্রয়োজন হয় না যখন একই অক্ষম করবেন কিভাবে? এক প্রকারের শর্ট টগল কমান্ড খুঁজছি।
    ইয়ুভ্যাসি

    11

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

    আমার সমাধানটি হল ট্যাবগুলি দেখানো এবং একাধিক স্পেস আন্ডারলাইন করা। এটি মুর্চির উত্তর এবং এই টিউটোরিয়াল থেকে ধার নিয়েছে । এটি সিনট্যাক্স হাইলাইটিং ব্যবহার করে বলে এটি স্থির থাকে:

    set list listchars=tab:\|\ 
    highlight Whitespace cterm=underline gui=underline ctermbg=NONE guibg=NONE ctermfg=yellow guifg=yellow
    autocmd ColorScheme * highlight Whitespace gui=underline ctermbg=NONE guibg=NONE ctermfg=yellow guifg=yellow
    match Whitespace /  \+/
    

    এটি ব্যবহার করে, ট্যাবগুলি এর মতো |এবং স্পেস হিসাবে প্রদর্শিত হয় _, যা আমি কোড শৈলীর মিশ্রণ করছি তা বলা খুব সহজ করে তোলে।

    আমি কেবলমাত্র খারাপ দিক খুঁজে পেয়েছি হ'ল এই স্নিপেট প্রসঙ্গে মেলে (ব্যাকুলের মত) মেলে পটভূমির রঙ সামঞ্জস্য করে না।


    8

    উপরের সমস্ত উত্তরগুলি ভিএম এর মধ্যে স্থানগুলি দৃশ্যমান করার চেষ্টা করে। আপনি যদি সত্যিই বিন্দু হিসাবে দৃশ্যমান স্থান থাকার জন্য জোর দিয়ে থাকেন, তবে আরও একটি উপায় আছে ...

    এটি যদি ভিমে করা না যায় তবে আপনার ফন্টটি পুরোপুরি পরিবর্তন করুন। আমি উবুন্টু ওয়ান মনো ফন্টটি অনুলিপি করে ফন্টফোর্স ব্যবহার করে সম্পাদনা করেছি। এটি আলাদা ফন্ট হিসাবে রাখতে হরফের পুরো নাম, পরিবার, পছন্দসই পরিবার, সামঞ্জস্যপূর্ণ পূর্ণ (ফন্টফোজে এটি ফন্ট তথ্যটিতে টিটিএফ নামগুলির অধীনে) পরিবর্তন করতে ভুলবেন না। মাঝখানে একটি বিন্দু হিসাবে স্পেস অক্ষরটি সম্পাদনা করুন এবং ফন্টটি ~ / .font এ সংরক্ষণ করুন এখন আপনি এটি আপনার জিভিএম বা পুরো টার্মিনালের জন্য ব্যবহার করতে পারেন ... আমি "অনুলিপি করেছি!" অক্ষর, লাইনটি সরানো এবং বিন্দুটি মাঝখানে সরানো। এটি 5 মিনিটেরও বেশি সময় নিয়েছে ...

    দ্রষ্টব্য: স্পেস ক্যারেক্টার পরিবর্তন (0x20) এর ফলে পুরো ভিআইএম স্ক্রিনে বিন্দু থাকার অসুবিধার সৃষ্টি হয় ... (তবে এটি স্পেসগুলি ট্যাবগুলি থেকে আলাদা করবে ...)


    2
    আমি বিন্দু দিয়ে পুরো স্ক্রিনটি পূরণ করার নোটটি না পড়া পর্যন্ত এটি সত্যিই দুর্দান্ত পদ্ধতির মতো শোনাচ্ছে। : /
    friederbluemle

    3
    সৃজনশীলতার জন্য পয়েন্ট! :-)
    jpaugh

    7

    বিদ্যমান উত্তরগুলি থেকে আমি যা চেয়েছিলাম ঠিক তা পাইনি। নীচের কোডটি সমস্ত পেছনের স্থান উজ্জ্বল লালকে হাইলাইট করবে। কেবল আপনার সাথে নিম্নলিখিতগুলি যুক্ত করুন.vimrc

    highlight ExtraWhitespace ctermbg=red guibg=red
    match ExtraWhitespace /\s\+$/
    autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
    autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
    autocmd InsertLeave * match ExtraWhitespace /\s\+$/
    autocmd BufWinLeave * call clearmatches()
    

    5
    :match CursorLine /\s\+/
    

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


    আমি এই পদ্ধতিটি ব্যবহার করে ট্যাব এবং স্পেসগুলির মধ্যে পার্থক্য বলতে পারি না, যা খুব খারাপ, তবে আমি ভালবাসি যে এটি একটি লাইনার।
    রুস্তাভোর

    5

    আমি স্পেসস্পেস দেখানোর জন্য বিশেষ অক্ষর ব্যবহার করতে চাই, এটি আরও স্পষ্ট। এমনকি টগল করার জন্য একটি মানচিত্রও একটি দ্রুত বৈশিষ্ট্যের জন্য, একটি মূল বৈশিষ্ট্য।

    আপনি এই বৈশিষ্ট্যগুলি 2004 সালের পর থেকে আপডেট করা হয়নি এমন একটি পুরানো ভিম স্ক্রিপ্টে দেখতে পারেন:

    vim-scripts/cream-showinvisibles@vim.org

    Vim -scripts এবং vundle প্রকল্পের জন্য ধন্যবাদ এই প্লাগইনটিকে আবার করতে পারেন

    তেজ-স্ক্রিপ্ট / ক্রিম showinvisibles @ GitHub

    আরও ভাল, এটিতে আমার দুটি সেন্ট হ'ল একটি কনফিগারযোগ্য শর্টকাট যুক্ত করা (পূর্বনির্ধারিত পরিবর্তে F4)

    সুতরাং এটি ~ / .vimrc এ যুক্ত করুন

    Plugin 'albfan/cream-invisibles'
    
    let g:creamInvisibleShortCut = "<F5>" "for my F4 goto next error
    

    ভিএম-তে প্লাগইন ইনস্টল করুন

    :PluginInstall
    

    এবং আপনি সেখানে যান


    5

    ইউনিকোড সাদা স্থানের অক্ষরগুলি কভার করতে:

    set list
    set listchars=tab:│\ ,nbsp:·
    highlight StrangeWhitespace guibg=Red ctermbg=Red
    " The list is from https://stackoverflow.com/a/37903645 (with `\t`, `\n`, ` `, `\xa0` removed):
    call matchadd('StrangeWhitespace', '[\x0b\x0c\r\x1c\x1d\x1e\x1f\x85\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]')
    

    ফলাফল:

    • কেবলমাত্র অর্ডিনাল স্পেস (U + 0020) ঠিক একটি জায়গার মতো দেখায় (" ")
    • ট্যাবটি (U + 0009) " │ " (দুটি অক্ষর: একটি দীর্ঘ পাইপ এবং তারপরে একটি অর্ডিনাল স্পেস; এগুলি ধূসর বর্ণের colorscheme murphy) মতো দেখাচ্ছে
    • সাধারণ নন-ব্রেকিং স্পেস (U + 00A0) দেখতে " ·" দেখতে একটি বর্ণ (একটি চরিত্র; এটি ধূসরcolorscheme murphy )
    • অন্য কোনও সাদা বর্ণের বর্ণটি " " লাল রঙের মতো দেখায়

    1
    রঙিনের জন্য আমার টার্মিনালটি তৈরি করতে "ctermbg = red" যুক্ত করতে সম্পাদিত। ব্যক্তিগতভাবে আমি set listchars=tab:»\ ,space:·আপনার উল্লেখের জন্য ব্যবহার করেছি ।
    জনি ওয়াং

    @ জোহনিওয়ং আপডেটের জন্য ধন্যবাদ। এটি প্রাথমিকভাবে সমালোচক দ্বারা প্রত্যাখ্যাত হয়েছিল, কিন্তু আমি কোডটি পরীক্ষা করেছি, এবং এটা (unsurprisingly) জন্য উভয় কাজ করে gvimএবং vim
    কিরিল বুলিগিন

    1
    জমকালো উত্তর, সাফারি এবং ফায়ারফক্সে রেন্ডার না হওয়া সরু নন-ব্রেক স্পেস (হেক্স 202f) ক্যাপচার করার জন্য আমার ঠিক এটি দরকার ছিল।
    ক্রিস কোবারজাক

    4

    আপনি ব্যবহার করতে পারেন

    :set list
    

    সত্যিই একটি লাইনের কাঠামো দেখতে। আপনি স্পষ্টভাবে ট্যাব এবং নিউলাইন দেখতে পাবেন। আপনি যখন একটি ফাঁকা দেখতে পাচ্ছেন, এটি সত্যিই একটি ফাঁকা।


    3

    হাইলাইট অনুসন্ধান

    :set hlsearch 
    

    মধ্যে .vimrcযে

    এবং স্পেস ট্যাব এবং গাড়ীর রিটার্ন অনুসন্ধান করুন

    / \|\t\|\r
    

    বা সমস্ত সাদা স্থানের অক্ষর অনুসন্ধান করুন

    /\s
    

    সমস্ত অ-শ্বেত স্থানের অক্ষরের সন্ধানের জন্য (শ্বেতস্পেসের অক্ষরগুলি দেখানো হয় না, তাই আপনি শব্দের মধ্যে শ্বেতস্পেসের অক্ষরগুলি দেখেন তবে পূর্ববর্তী সাদা বর্ণের অক্ষরগুলি নয়)

    /\S
    

    লাইনের শেষে - সমস্ত পেছনের সাদা স্থানের অক্ষরগুলি দেখানোর জন্য

    /\s$
    

    2

    মন্তব্যগুলিকে .vimrc এ এই হ্যাকগুলি রাখুন , সুতরাং শেলটিতে, সহজভাবে:

    echo '
      " how-to see the non-visible while spaces
      " :set listchars=eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣
      " set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
      " :set list
      " but hei how-to unset the visible tabs ?!
      " :set nolist
      ' >> ~/.vimrc
    

    1
    :se list
    :se nolist
    

    :seযথেষ্ট, :setপ্রয়োজন নেই।


    1

    আপনি স্পেসগুলি হাইলাইট করতে পারেন (ফাঁকা স্থানগুলি একটি ব্লকের সাথে প্রতিস্থাপন করে):

    :%s/ /█/g
    

    (লেখার পূর্বে এটি পূর্বাবস্থায় ফেরা)


    1

    এটি আমার .vimrc এ যুক্ত করা আমার পক্ষে কাজ করে। কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনার কাছে অন্য কোনও বিরোধ নেই ..

    autocmd VimEnter * :syn match space /\s/
    autocmd VimEnter * :hi space ctermbg=lightgray ctermfg=black guibg=lightgray guifg=black
    
    আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
    Licensed under cc by-sa 3.0 with attribution required.