vi কমান্ডলাইন, গোটো লাইন এবং কলাম


17

আমি দীর্ঘদিন ধরে emacsএবং vi( vim) এর ব্যবহারের সাথে মিশ্রণ করছি। তাদের প্রত্যেকেরই এর সুবিধা রয়েছে। আমি প্রক্রিয়া মত সংকলন থেকে ত্রুটি আউটপুট পার্স এবং একটি লাইন এবং কলাম নম্বর পেতে কিন্তু আমি কেবল emacsএকটি লাইন এবং কলামে সরাসরি ব্যবহার করতে পারেন:

emacs +15:25 myfile.xml

সঙ্গে viআমি শুধুমাত্র লাইন সংখ্যা আছে (man পৃষ্ঠা অনুযায়ী)

vi +15 myfile.xml

প্যাটার্নে কার্সার পজিশনে যাওয়ার বিকল্প রয়েছে ( vi +/pattern myfile.xml) যা আমি কখনই কাজ করতে পারি নি। প্যাটার্নটি সবসময় ফাইলের প্রথম উপস্থিতি না হওয়ায় এটি আমার পক্ষে সহায়ক হবে না।

আমি কীভাবে viএটি শুরু করতে পারি যাতে এটি আমার ফাইলের লাইন 15 এর 25 কলামে যায়? আমি কি -cবিকল্প দিয়ে কিছু করতে পারি ?


3
আপনি তেজ বাঁধা সাল থেকে, তোমরা কি ভেবে দেখেছ quickfixসিস্টেম, যা ত্রুটি (নেভিগেট একটি তালিকা তেজ মধ্যে থেকে কম্পাইলার রান, ত্রুটি আউটপুট parses, মান :cp, :cn, :clকমান্ড), এবং প্রথম এক সময়ে আপনার কার্সার অবস্থানের?
র্যান্ডম 832

আপনি যদি ভিআই তে কোনও ফাইল খুলেন এবং টাইপ করেন তবে :15এটি 15 পয়েন্টে চলে যাবে আশা করি এটি আপনাকে সহায়তা করবে
কোড নিনজা

উত্তর:


17

তুমি ব্যবহার করতে পার:

vi '+normal 15G25|'  myfile.xml

2
ব্যাখ্যা: vi এর বেশিরভাগ কমান্ড (অর্থাত্, বেশিরভাগ অক্ষর) এর আগে একটি সংখ্যার (বা ব্যাপ্তি) পূর্বে এর ডিফল্ট আচরণ পরিবর্তন করতে বা এটি পুনরাবৃত্তি করতে (বা এটি একটি নির্দিষ্ট পরিসরে প্রয়োগ করা হয়) হতে পারে। Vi এর ভিতরে, কমান্ড মোডে, আপনি 15G15 লাইনে 25|যেতে এবং 25 কর্নে যেতে পারেন And এবং ক্রিস্টা দেখায় কীভাবে কমান্ড-লাইন থেকে এটি করা যায়।
অলিভিয়ার ডুলাক

7

সঙ্গে ফাইল-লাইন প্লাগইন , আপনি কেবল ফাইলের নাম লাইন এবং কলাম সংযুক্ত করতে পারবেন, উভয় আদেশ যুক্ত VIM এবং ভিতরে invoking যখন :edit:

vim myfile.xml:15:25

এই অস্তিত্বটি সম্পর্কে জানতে পেরে ভাল, তবে আমি মনে করি আমি এমন একটি উত্তর ব্যবহার করব যাতে অতিরিক্ত প্লাগইনের প্রয়োজন হয় না
ডোমিনিক

@ ডোমিনিক আপনি vim myfile.xml +15একটি প্লাগইন ছাড়া সারি জন্যও করতে পারেন , তবে যতদূর আমি জানি কলাম নয়
ইজকাটা

5

কেবল মজা করার জন্যই -c 'normal 14j24l'আপনাকে লাইন 15 অক্ষরে রাখবে


4

-cবিকল্পটি সম্পর্কে আমি জানি না , তবে আপনার এটি করা উচিত:

vi '+cal cursor(15,25)' myfile.xml

(প্রথম বন্ধনের কারণে আপনি উদ্ধৃতিটি নিশ্চিত করুন ())


cursor()কলামটির জন্য বাইট সূচক ব্যবহার করে তবে এটি সাধারণত একটি চরিত্রের গণনা।
ইনগো কারকাত

@ ইঙ্গোকার্কাত কি আসলেই কিছু যায় আসে? পাঠ্যটি ইউটিএফ -8।
ডোমিনিক

2
এটি ASCII বিহীন অক্ষরের জন্য গুরুত্বপূর্ণ, যা একাধিক বাইট দ্বারা প্রতিনিধিত্ব করা হয়। এছাড়াও, একটি ট্যাব এবং নিয়ন্ত্রণ অক্ষর সাধারণত একাধিক প্রদর্শন কলাম দখল করে।
ইনগো কারকাত

2

মূল্যবান:

-c command 

প্রারম্ভকালে প্রদত্ত প্রাক্তন কমান্ডটি চালান। Vi এর জন্য কেবল এক -c বিকল্প অনুমোদিত ; ভিম 10 পর্যন্ত গ্রহণ করে this এই বিকল্পটির একটি পুরানো ফর্ম +command, এখনও সমর্থিত।

+commandএকই একক হয়েছে ex commandযখন ব্যবহার সীমাবদ্ধতা vi

+/patternএছাড়াও সঙ্গে এক কমান্ড সীমাবদ্ধ vi

( ভিএম এবং প্রাক্তন সম্পাদক থেকে নেওয়া )


1

আপনি নীচের কোডটি আপনার ভিএমআরসি-তে যুক্ত করতে পারেন, আপনি যখন নিজের ফাইলে ফিরে আসবেন, ভিমে স্বয়ংক্রিয়ভাবে পুরানো অবস্থানে ফিরে আসুন:

if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.