ভিম শব্দের অক্ষর হিসাবে আমলাত গ্রহণ করে না


9

যখন আমি abücdউদাহরণস্বরূপ এবং dwসামনে কিছু যুক্ত একটি জার্মান পাঠ্য লিখি তখন এটি কেবল মুছে ফেলা হবে abকারণ এটি üশব্দের চরিত্র হিসাবে ব্যাখ্যা করে না ।

আমি যখন পুনর্গঠিত পাঠ্য সম্পাদনা করি তখন আমার কাছে থাকে

iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_

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

iskeyword=@,48-57,_,192-255

এই কোথা থেকে আসতে পারে?


3
আপনার set encoding=utf-8মধ্যে রাখুন .vimrc
cuonglm

এটি ইতিমধ্যে আমার মধ্যে .vim/vimrcএবং :set enc?আমাকে দেয় utf-8। একই সাথে fenc। তবুও কাজ হয় না।
মার্টিন উয়েডিং

পরে :set iskeyword&হয় üএখনও একটি শব্দের অংশ হিসেবে স্বীকৃত নয়?
রুইচিরো

আপনার আইসকিওয়ার্ড হিসাবে দেখান ( set iskeyword)। এটি কিছু মত "@,48-57,_,128-167,224-235"বা হওয়া উচিত "@,48-57,_,192-255"। আপনি কি ভিম বা ভিআই ব্যবহার করছেন? ( "@,48-57,_"
ভায়

1
আমি জিভিএম ব্যবহার করি এবং আছে iskeyword=@,48-57,_,192-255। এটি ম্যাজিকালি এখন একটি নতুন ভিম ইভেন্টে কাজ করে। এটি আশ্চর্যের বিষয়, আমাকে আরও যত্ন সহকারে এটি পালন করতে হবে।
মার্টিন উয়েডিং

উত্তর:


5

@চরিত্রের iskeywordসমস্ত অক্ষর, যার জন্য রয়েছে isalpha()(গ ফাংশন) সত্য; আধুনিক (গত 20 বছর) লাইবসি বাস্তবায়নে এটি ইউনিকোডের অক্ষরগুলির সন্ধান করে।

আপনার দ্বিতীয় iskeywordব্যবহার 97-122( 64-90এজেড ) এবং (এজেড), যা বিভিন্ন ডায়াক্রিটিক্সের (যেমন উমলাউট / ডায়ারেসিস / ট্রমা) সহ সমস্ত রূপগুলি অন্তর্ভুক্ত করে না।

সুতরাং সমাধানটি প্রতিস্থাপন 97-122এবং 64-90সাথে করা হয় @

এই iskeywordমজাদার এলআইএসপি সিনট্যাক্স ফাইল থেকে আসে; rstসিনট্যাক্স ফাইল কোড ব্লক হাইলাইট জন্য অন্যান্য সিনট্যাক্স ফাইলের একটি গুচ্ছ অন্তর্ভুক্ত করা হয়েছে।

ভাগ্যক্রমে আপনি g:rst_syntax_code_listভেরিয়েবলের সাথে কোন ভাষা অন্তর্ভুক্ত করবেন তা নির্ধারণ করতে পারেন । ডিফল্টটি হ'ল:

let g:rst_syntax_code_list = ['vim', 'java', 'cpp', 'lisp', 'php', 'python', 'perl']

যেহেতু আপনার পুনর্গঠিত পাঠ্য ফাইলটিতে আপনার LISP সিনট্যাক্স হাইলাইট করার প্রয়োজন নেই তাই আপনি সম্ভবত এটি সরাতে পারেন। এটি কেবল আপনার ভিএমআরসি ফাইলের যে কোনও জায়গায় যুক্ত করুন, যদি এটি সংজ্ঞায়িত করা হয় তবে সিনট্যাক্স ফাইলটি নিজের মান নির্ধারণের পরিবর্তে সেই মানটি ব্যবহার করবে।

আমার মতে, আপনি সম্ভবত ব্যবহার করতে চান:

let g:rst_syntax_code_list = []

কারণ অন্যান্য সিনট্যাক্স ফাইলগুলির কী কী মজাদার পার্শ্ব-প্রতিক্রিয়া সৃষ্টি করেছিল তা কে জানে ...


শীতল, আপনাকে ধন্যবাদ! উবুন্টুতে এখন পর্যন্ত আমার ক্ষেত্রে এটি ঘটেনি, এটি কেবল ফেডোরা ২২-তে হয়েছে ably সম্ভবত তাদের সিনট্যাক্স ফাইলগুলি কিছুটা আলাদা। এটা এখন কাজ করে.
মার্টিন উয়েডিং

@বর্ণানুক্রমিক অক্ষরের জন্য অবস্থান সহ ইঙ্গিতটি সত্যই সহায়ক ছিল।
জেলফির কালটস্টল

1

যদি কেউ উদাহরণস্বরূপ মার্কডাউন ফাইলগুলিতে অন্য ভাষার ব্যাকরণগুলিকে ইনলাইন করে, তবে সেই ভাষাগুলির সেটিংসটি মার্কডাউন সিনট্যাক্সের সেটিংসকে ওভাররাইড করে বলে মনে হচ্ছে। এটি ব্যবহার করে কেস কেস কিনা তা পরীক্ষা করতে পারেন:

:verbose set iskeyword?

এটির সমাধানের জন্য, প্রতিটি বার যখন একটি মার্কডাউন ফাইল প্রবেশ করে তখন একটি চালনা করার জন্য একটি অটো কমান্ডকে সংজ্ঞায়িত করতে পারে (এবং সম্ভবত অন্যান্য ভাষাও):

autocmd BufEnter,BufNewFile *.md set iskeyword=38,42,43,45,47-58,60-62,_,@

এটি আমার .vimrcজন্য সমস্যাটি স্থির করে দেওয়া। আমি ব্যবহার করছিলেন vim-pandocসিনট্যাক্স সহ inlined ভাষায় racket, python, shএবং কিছু। আমি মনে করি মার্কডাউন ফাইলগুলি রেখে যাওয়ার জন্য একটি অটো কমান্ড সংজ্ঞায়িত করার প্রয়োজন নেই, কারণ আপনি যখন অন্য ভাষার ফাইলগুলি প্রবেশ করেন, তখন তাদের সিনট্যাক্স ফাইলগুলির কীওয়ার্ড সেট করা উচিত, যদি আমি সঠিকভাবে বুঝতে পারি।

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