উত্তর:
[]
আপনার সন্ধানের একটি অক্ষর শ্রেণিতে ব্যাপ্তি ব্যবহার করে , আপনাকে ASCII হেক্সাডেসিমাল চরিত্রের সীমাটি বাদ দিতে সক্ষম হবেন , সুতরাং ASCII সীমার বাইরেhlsearch
থাকা অন্যান্য সমস্ত অক্ষরকে হাইলাইট করে (আপনার সক্ষম করেছেন ধরে নেওয়া ) :
/[^\x00-\x7F]
এটি ASCII এবং ASCII (0-127) এর মধ্যে অক্ষরের জন্য একটি নেতিবাচক ম্যাচ করবে (মাধ্যমে ), এবং আমার সাধারণ পরীক্ষায় কাজ করে বলে মনে হচ্ছে। বর্ধিত এএসসিআইআইয়ের জন্য অবশ্যই ব্যবহারের পরিবর্তে ব্যাপ্তি বাড়ান ।[^]
0x00
0x7F
\xFF
\x7F
/[^\x00-\xFF]
আপনি এটি দশমিক মাধ্যমে এর মাধ্যমে প্রকাশ করতে পারেন \d
:
/[^\d0-\d127]
আপনার যদি প্রিন্টযোগ্য অক্ষরগুলি বাদ দেওয়ার মতো আরও নির্দিষ্ট কিছু প্রয়োজন হয় তবে আপনার এই ব্যাপ্তিগুলি অক্ষর শ্রেণিতে যুক্ত করতে হবে []
।
হ্যাঁ, কোনও মিলিত স্ট্রিংয়ের জন্য হাইলাইট করার জন্য একটি দেশীয় বৈশিষ্ট্য রয়েছে। ভিমের ভিতরে, করুন:
:help highlight
:help syn-match
syn-match
একটি স্ট্রিং সংজ্ঞা দেয় যা ম্যাচগুলিতে একটি গ্রুপে পড়ে।
highlight
গ্রুপ দ্বারা ব্যবহৃত রঙ নির্ধারণ করে। আপনার ভিআইএমআরসি ফাইলগুলির জন্য সিনট্যাক্স হাইলাইট করার কথা ভাবুন।
সুতরাং আপনি আপনার .vimrc ফাইলটিতে নীচের আদেশগুলি ব্যবহার করতে পারেন:
syntax match nonascii "[^\x00-\x7F]"
highlight nonascii guibg=Red ctermbg=2
:
আপনার vimrc কমান্ড সামনে।
termbg
উবুন্টু সার্ভার 12.10 এ ইনস্টল করা হিসাবে ভিআইএম 7.3-তে কোনও আইনি কমান্ড বলে মনে হচ্ছে না।
termbg
উবুন্টু সার্ভার 12.10 ইনস্টল যেমন VIM 7.3 একটি আইনি প্যারামিটার হবে বলে মনে হচ্ছে না।
term
পটভূমির রঙ থাকতে পারে না, রঙিন টার্মিনালটি cterm
পারে can
অন্যদের জন্য (এখন থেকে কম দুর্ভাগ্যজনকভাবে) লোকেরা এখানে অনুসন্ধান ইঞ্জিনের মাধ্যমে শেষ হয় এবং অ-এসসিআইআই অক্ষর হাইলাইটিং সম্পন্ন করতে পারে না, এটি চেষ্টা করে দেখুন (এটি আপনার .vimrc এর মধ্যে রাখুন):
highlight nonascii guibg=Red ctermbg=1 term=standout
au BufReadPost * syntax match nonascii "[^\u0000-\u007F]"
এটির নিয়মিত (ফাইল টাইপ [ফাইল এক্সটেনশন] ভিত্তিক) সিনট্যাক্স সংজ্ঞাগুলির সাথে সংঘর্ষ না করার অতিরিক্ত সুবিধা রয়েছে।
E319: Sorry, the command is not available in this version: au BufReadPost * syntax match nonascii "[^\u0000-\u007F]" Press ENTER or type command to continue
লিনাক্স পুদিনা 17.3
containedin=ALL
আপনি এটি তৈরি করে শেষ লাইনের শেষে যুক্ত করতে পারেন au BufReadPost * syntax match nonascii "[^\u0000-\u007F]" containedin=ALL
। আমি এটির মূল্যবোধটি খুঁজে পাচ্ছি (যখন ইউনিকোডের অনুমতি দেওয়া হয়েছে), এখানে আসল উত্তরটি কোনও বিবৃতিতে অ- if
autocmd BufRead ....
এই রেজেক্স পাশাপাশি কাজ করে। এটি briceolion.com থেকে " ভিম রিমুভাল নন- এসসিআই অক্ষরগুলি" র জন্য প্রথম Google হিট এবং এর সাথে :set hlsearch
হাইলাইট করবে:
/[^[:alnum:][:punct:][:space:]]/
:%s/[^[:alnum:][:punct:][:space:]]//gc
যা প্রথমে হাইলাইট করে, তারপরে প্রতিস্থাপন করে।
আপনি যদি মুদ্রণযোগ্য অক্ষরগুলিতেও আগ্রহী হন তবে এটি ব্যবহার করুন:/[^\x00-\xff]/
আমি এটি একটি ফাংশনে ব্যবহার করি:
function! NonPrintable()
setlocal enc=utf8
if search('[^\x00-\xff]') != 0
call matchadd('Error', '[^\x00-\xff]')
echo 'Non printable characters in text'
else
setlocal enc=latin1
echo 'All characters are printable'
endif
endfunction
enc
করার চেষ্টা করুন fenc
। আমি এনকোডিংটি পরিবর্তন করেছি কারণ আমার ডিফল্ট এনকোডিংটি ছিল (2013 সালে) লাতিন 1। অক্ষরটি ল্যাটিন 1 হলে ফাংশনটি মুদ্রণযোগ্য অক্ষরগুলিকে হাইলাইট করে না। হাইলাইটিং দেখতে খুব ERROR
আপনার রঙিন সিনট্যাক্স ফাইলটিতে কী থাকতে হবে। এই খনিhi Error guifg=Black guibg=Orange
আমি পেয়েছিলাম এই বিষয়ে এবং উত্তর অন্যান্য উত্তর উপর ভিত্তি করে এখানে আমি আমার এই জুড়েছেন .vimrc
, যাতে আমি অ ASCII টাইপ করে হাইলাইট নিয়ন্ত্রণ করতে পারেন <C-w>1
। এটি মন্তব্যের অভ্যন্তরেও দেখায়, যদিও আপনার ব্যবহৃত প্রতিটি ফাইল সিনট্যাক্সের জন্য আপনাকে মন্তব্য গ্রুপ যুক্ত করতে হবে। এটি হ'ল যদি আপনি একটি zsh ফাইল সম্পাদনা করেন তবে zshComment
আপনাকে লাইনে যুক্ত করতে হবে
au BufReadPost * syntax match nonascii "[^\x00-\x7F]" containedin=cComment,vimLineComment,pythonComment
অন্যথায় এটি অ-এসকিআই চরিত্রটি প্রদর্শন করবে না (আপনি যদি সমস্ত গোষ্ঠীতে অ-এস্কি অক্ষরগুলি দেখানোর বিষয়ে নিশ্চিত হতে চান তবে আপনি অন্তর্ভুক্ত = সমস্ত সেট করতে পারেন)। মন্তব্যটি কীভাবে আলাদা ফাইল টাইপ করা হয় তা পরীক্ষা করতে পছন্দসই টাইপের একটি ফাইল খুলুন এবং :sy
ভিমে প্রবেশ করুন, তারপরে মন্তব্যের জন্য সিনট্যাক্স আইটেমগুলি অনুসন্ধান করুন।
function HighlightNonAsciiOff()
echom "Setting non-ascii highlight off"
syn clear nonascii
let g:is_non_ascii_on=0
augroup HighlightUnicode
autocmd!
augroup end
endfunction
function HighlightNonAsciiOn()
echom "Setting non-ascii highlight on"
augroup HighlightUnicode
autocmd!
autocmd ColorScheme *
\ syntax match nonascii "[^\x00-\x7F]" containedin=cComment,vimLineComment,pythonComment |
\ highlight nonascii cterm=underline ctermfg=red ctermbg=none term=underline
augroup end
silent doautocmd HighlightUnicode ColorScheme
let g:is_non_ascii_on=1
endfunction
function ToggleHighlightNonascii()
if g:is_non_ascii_on == 1
call HighlightNonAsciiOff()
else
call HighlightNonAsciiOn()
endif
endfunction
silent! call HighlightNonAsciiOn()
nnoremap <C-w>1 :call ToggleHighlightNonascii()<CR>
উপরের উত্তরগুলির কোনওোটাই আমার পক্ষে কাজ করেনি।
সুতরাং আমি ব্যবহার :1,$ s/[^0-9a-zA-Z,-_\.]//g
এটি আমার আগ্রহী বেশিরভাগ চরিত্রকে রাখে।
কেউ ইতিমধ্যে প্রশ্নের উত্তর দিয়েছেন। যাইহোক, অন্যদের জন্য যে এখনও সমস্যা রয়েছে তাদের জন্য, মন্তব্যগুলিতে (বা বিষয়টিতে কোনও সিনট্যাক্স গোষ্ঠী) অ-এস্কি অক্ষর হাইলাইট করার আরও একটি সমাধান এখানে solution এটি সেরা নয়, তবে এটি একটি অস্থায়ী সমাধান।
কেউ চেষ্টা করতে পারে:
:syntax match nonascii "[^\u0000-\u007F]" containedin=ALL contained |
\ highlight nonascii ctermfg=yellow guifg=yellow
এটিতে অন্যান্য সমাধান থেকে মিশ্রিত অংশ রয়েছে। আপনি মুছে ফেলতে পারেন contained
, তবে, ডকুমেন্টেশন থেকে নিজের পুনরুক্তার সম্ভাব্য সমস্যা হতে পারে (যেমন আমি বুঝতে পারি)। অন্যান্য সংজ্ঞায়িত নিদর্শনগুলি দেখতে syn-contains
বিভাগটিতে এটি অন্তর্ভুক্ত থাকবে।
:help syn-containedin
:help syn-contains
থেকে অনুলিপি করা সমস্যা: আইটেমটি ভিএম-তে উচ্চ হাইলাইট অগ্রাধিকারে সেট করুন
/[^\d0-\d127]