পাঠ্য হিসাবে ভিএমটি নির্বাচন আটকে দিন!


10

আমি কয়েক বছর ধরে VI ষ্ঠ এবং ভিআইএম ব্যবহার করছি (৩০ বা ততোধিক) (এক্সটার্মে, নিজস্ব উইন্ডো নয়, জিভিআইএম) এবং আমার কাছে ভিআইএম কমান্ডগুলির একটি বিশাল গ্রন্থাগার রয়েছে যা আমি নির্বাচন হিসাবে মাউস মিডল বোতামটি ব্যবহার করে ভিম দিয়ে থাকি।

উদাহরণস্বরূপ আমি প্রায়শই এমন জিনিসগুলি করতাম ...

 vi {many_hundreds_of_files}
   paste vim commands using mouse - one paste per file.

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

এর মধ্যে কয়েকটি ভিআইএম কমান্ড আটকানো 200+ লাইন দীর্ঘ (আমি স্ক্রিনে পপ-আপ করা টেক্সট ফাইলগুলিতে সঞ্চিত এবং 'অনুলিপি'! এটি আমার পুনরায় ফর্ম্যাটিং করা হাজার হাজার ফাইলের সেটে প্রচুর পরিবর্তন করে But তবে কেবলমাত্র ফাইলের নির্দিষ্ট সেটের জন্য, আমার প্রতিদিনের ভিএম কাজের জন্য নয় E EG: পাঠ্য / ডেটা ফাইলের জন্য বাল্কটি পুনরায় গঠন করতে।

সমস্যাটি...

আমার শেষ সিস্টেমের প্যাচ চলাকালীন (ফেডোরা 25) ভিএম এখন মাউস নির্বাচনটি পাঠ্য হিসাবে পাঠ্য হিসাবে পাঠায় এবং ভিএম কমান্ড হিসাবে আটকায় না, এবং আমি এটিকে থামাতে পারি না বলে মনে হয়!

এটি অন্য সিস্টেমে এখনও দুর্দান্ত কাজ করে (ফেডোরা 24)।

আমি যদি পাঠ্য হিসাবে পেস্ট করতে চাই তবে আমি আটকানোর আগে মোড প্রবেশ করান! আমি ভিআইএম চাই না নির্বাচন সারণিটি সন্নিবেশ মোডে না থাকলে স্বয়ংক্রিয়ভাবে নির্বাচনগুলি আটকে দিন। আমি বুঝতে পারি এটি সুরক্ষা বৈশিষ্ট্য হিসাবে বোঝানো হয়েছিল, তবে আমার কাছে এটি একটি প্রধান ব্যবহারের বিষয়।

আমি এমন কোনও মেশিন থেকে টার্মিনো এন্ট্রি (xterm-256color) ডেটিং করার চেষ্টা করেছি যা (বিশেষত "কিমিওস" টার্মিনো এন্ট্রি) করে না। আমি ভিএম ": সেট মাউস =" সেটিংয়ের দিকেও লক্ষ্য করেছি (যা নাল!) আমি জানি না যে এটি এক্সটার্ম (সন্দেহজনক), বা ভিআইএম (সম্ভবত) -র পরিবর্তিত লগ এবং গুগল অপ্রয়োজনীয় হয়েছে কিনা something

কিছুই পুরানো আচরণ বলে মনে হচ্ছে না।


একই সমস্যা কম বিস্তারিত অন্য ব্যবহারকারী, কোন সমাধান পাওয়া unix.stackexchange.com/questions/346293/...
এন্থনি

1
আমি সন্দেহ করি এটি সম্ভবত আরও সম্ভবত একটি vimপরিবর্তন: কীভাবে কীভাবে vimকোনও xtermকিবোর্ডের মাধ্যমে কিছু প্রবেশ করা যায় বা মাউস বোতামের মাধ্যমে আটকানো যায়? আমি এ জাতীয় কোনও প্রক্রিয়া জানি না। অন্যদিকে, xtermজানে যে এটি কার্যকর হচ্ছে vimতাই এটি iএবং <esc> এর সাথে পেস্টকে ঘিরে রাখার সিদ্ধান্ত নিতে পারে । (ক) বিভিন্ন ধরণের টার্মিনাল উইন্ডো দিয়ে চেষ্টা করুন এবং (খ) vimআলাদা নামের সাথে একটি অনুলিপি করুন । এটি সমস্যার কারণ সংকুচিত করতে সহায়তা করা উচিত।
ফিলিপস

আমি @ ফিলিপোসের সাথে একমত হতে পারে অন্য কিছু vimআপনার পেস্ট পদ্ধতি হাইজ্যাক করে। সম্ভবত আপনার মেশিনে ssh'ing বা telneting চেষ্টা করুন এবং সেভাবে আটকানো। আপনার যদি উইন্ডোজ বাক্স থাকে তবে আপনার ফেডোরা 25 মেশিনে টুকরো টুকরো টুকরো টুকরো ব্যবহার করুন এবং সেভাবে আটকান।
জিম ইউ

সরাসরি সম্পর্কিত নয়, তবে উইন্ডোজের gvim বছরের পর বছর ধরে এইভাবে আচরণ করে। আপনি যখন gvim ইনস্টল করেন, আপনি দুটি এক্সিকিউটেবল, gvim.exe(গ্রাফিকাল-ভিএম) এবং কমান্ড-লাইন পাবেন vim.exe। Gvim.exe এ "পুনর্গঠন" আটকান এবং আপনি পান itext। এটি vim.exe এ আটকান এবং আপনি পানtext
জিম ইউ

1
@ ফিলিপোস যে প্রক্রিয়া বন্ধনী পেস্ট করা যেতে পারে । আমি জানি না কীভাবে ভিম এটি সমর্থন করতে পারে, সম্ভবত pastetoggleবিকল্পটি?
গিলস

উত্তর:


12

বেশিরভাগ ওয়েব পৃষ্ঠাগুলি পেরিয়ে যাওয়ার পরে, অনেকে এমন কিছু ইঙ্গিত দিয়েছিল যা কাজ করে বলে মনে হচ্ছে না, আমি একটি ইঙ্গিত (একটি পেস্টের চারপাশে অতিরিক্ত পাঠ্য) পেয়েছি যা আমাকে সমস্যার কারণ এবং সমাধানের দিকে নিয়ে যায়।

দেখে মনে হচ্ছে যে ভিম এটিতে বেশ কয়েকটি 'জাল' টার্মক্যাপ এন্ট্রি তৈরি করেছে যা এটি নির্দিষ্ট টার্মিনালগুলি সনাক্ত করার সময় এটি ব্যবহার করে (এবং কখনও কখনও ভুল হয়ে যায় যদিও এই ক্ষেত্রে এটি ভুল ছিল না)।

ভিমে টার্মক্যাপ সেটিংস সংখ্যাসূচক হিসাবে যুক্ত হয় যেমন একটি সাধারণ ": সেট করুন" সেটিংস তালিকায় প্রদর্শিত হয় না। সেগুলি দেখতে আপনার ": সেট টার্মক্যাপ" ব্যবহার করতে হবে। নির্দিষ্ট 'অ-মানক' টার্মক্যাপ সেটিংস হ'ল "t_BE" (ভিএম দেখুন ": সহায়তা টি_বিই")। অন্তর্নির্মিত সহায়তা "xterm-bracketed- পেস্ট" এই অভ্যন্তরীণ থেকে Vim টার্মক্যাপ সেটিংস ব্যাখ্যা করে।

মূলত যদি এই সেটিংটি সংজ্ঞায়িত করা হয় (এই ক্ষেত্রে ভিমের মাধ্যমে টার্মক্যাপ / টার্মিনো নয়) তবে ভিএম এটি শুরু হওয়ার সাথে সাথে এটি এক্সটার্মে প্রেরণ করবে, যা এক্সটার্মকে বলে যে কোনও বাহ্যিক উত্স থেকে ব্যবহারকারী কোনও পাঠ্যকে ঘিরে বিশেষ কোড যুক্ত করতে পারে। যখন ভিম এগুলি দেখায় এটি স্বয়ংক্রিয়ভাবে কেবল সন্নিবেশ-মোডে যায় না তবে এটি 'পেস্ট-মোড' সেট করে যাতে পাঠ্য বিন্যাস করতে না পারে।

পরে (পেস্ট-মোড) আমি কি খুব দরকারী বলে মনে করি! পূর্ববর্তীটি আমাকে সমস্ত সমস্যা দিচ্ছে।

ব্রুট ফোর্স সলিউশনটি ".vimrc" এ যুক্ত করে বন্ধনীযুক্ত-পেস্ট অক্ষম করে is

:set t_BE=

একটি বিকল্প সমাধান ....

বন্ধনীযুক্ত-পেস্ট সম্পূর্ণরূপে অক্ষম করার পরিবর্তে, কমান্ড বা নরমাল-মোডে থাকা অবস্থায় টার্মিনাল পেস্টের (মাউস থেকে) প্রারম্ভিক ক্রমটি দেখলে ভিএম পদক্ষেপ নেওয়া বন্ধ করুন।

:nmap <PasteStart>  <NOP>
:nmap <PasteEnd>    <NOP>
:cmap <PasteStart>  <NOP>
:cmap <PasteEnd>    <NOP>

এর ব্যবহারের অর্থ হ'ল আপনি যদি সন্নিবেশ-মোডে থাকাকালীন পাঠ্যটি আটকান তবে ভিএম ইতিমধ্যে ইন্টেন্ট করা চেয়ে বেশি যে পাঠ্যটি বিন্যাস করতে চেষ্টা করবে না।

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

সমাধানগুলি সম্পর্কে মন্তব্য এবং পরামর্শগুলি স্বাগত।


এটি সাইগউইন ভিএম-তেও কাজ করে বলে মনে হচ্ছে তবে দুঃখের সাথে ভিএস ভিমে সমস্যাটি সমাধান করা যায় না
জেমস রবিনসন

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