আপনি কীভাবে ভিএম এর কুইকফিক্স বৈশিষ্ট্যটি ব্যবহার করবেন?


125

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

যাইহোক, আমি কী করব তার পরে জানি না .. সমস্ত ত্রুটিগুলি কীভাবে আমি 'স্ক্রোল' করব? আমি কীভাবে 'উইন্ডো' কুইকফিক্সটি বন্ধ করব? আমি আমার কোডটিতে পরিবর্তন করার পরে ত্রুটিগুলি যাচাই করার জন্য এটি কীভাবে পাব?

আমি ভিআইএম কুইকফিক্স ডক্সের দিকে নজর রেখেছি কিন্তু কমান্ডের পরিমাণ অপ্রতিরোধ্য এবং আমি যা চাই তা খুঁজে পাচ্ছি না। কোন সাহায্য প্রশংসা করা হবে।

একটি পার্শ্ব প্রশ্ন: .html ফাইলে থাকা কোডের জন্য জাভাস্ক্রিপ্টলিঙ্ক চেক করার কোনও উপায় আছে কি?

ধন্যবাদ!

উত্তর:


148

আপনি যেমন বলেছিলেন ততক্ষণে কুইকফিক্সের জন্য প্রচুর কমান্ড রয়েছে তবে আমি কেবলমাত্র সেগুলির একটি ছোট উপসেট ব্যবহার করব তা খুঁজে পেতে চাই:

:copen " Open the quickfix window
:ccl   " Close it
:cw    " Open it if there are "errors", close it otherwise (some people prefer this)
:cn    " Go to the next error in the window
:cp    " Go to the previous error in the window
:cnf   " Go to the first error in the next file
:.cc   " Go to error under cursor (if cursor is in quickfix window)

আমি সঙ্গে এই ব্যবহারের প্রবণতা :makeএবং :vimgrep, তাই আমি জাভাস্ক্রিপ্ট তিসি পরীক্ষক মন্তব্য করতে পারেন না, কিন্তু এই আপনি কিছু দিতে হবে দেখায়।

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

autocmd BufWritePost,FileWritePost *.html call JavascriptLint()

এটি স্বয়ংক্রিয় করতে। যদি jslএইচটিএমএল ফাইলগুলি সমর্থন না করে, তবে (অ্যাপ্লিকেশনটি প্যাচিংয়ের বা লেখককে এটি পরিবর্তন করতে বলার সংক্ষিপ্ততা), এটি সম্ভবত একটি হারিয়ে যাওয়ার কারণ ...


ধন্যবাদ, এই কমান্ডগুলি একটি ভাল শুরু, আমি কেবল কিছুটা খেলার জন্য এবং এটি কীভাবে কাজ করে সে সম্পর্কে অভ্যস্ত হতে হবে। আমি যদি কিউএফ উইন্ডোতে একটি ত্রুটিতে যেতে সিএনএন ব্যবহার করি, আমি কিউএফ উইন্ডোটি ছাড়াই আমার কোড সহ উইন্ডোতে ঝাঁপিয়ে দিতে পারি? এটি কি ত্রুটিযুক্ত লাইনে লাফ দিতে পারে? এবং আপনার ব্যবহারের পরামর্শ: কল কাজ করে, তবে এটি <স্ক্রিপ্ট সিআরসি> লিঙ্কগুলি অনুসরণ করে যা আমি চাই না।
হোরা

@ হোরা: :cnকিউএফ উইন্ডোটি বন্ধ করা উচিত নয়, তবে এটি ত্রুটিযুক্ত উইন্ডোটিতে স্যুইচ করবে: "জাম্প" বলতে আপনি কি এটি বোঝাতে চাইছেন? আপনি Ctrl-W pবা এর সাথে দ্রুত ফিরে যেতে পারেন :wincmd p, যাতে আপনি করতে পারেন :command! CN :cn | wincmd p<CR>বা এর মতো কিছু (অনির্ধারিত)। এটি আপনাকে :CNকমান্ড দেয় যা কুইকফিক্স উইন্ডোটি স্যুইচ না করে পরবর্তী ত্রুটিতে চলে। বিকল্পভাবে আপনি এমন কিছু করতে পারেন :au BufWinEnter quickfix nmap <buffer> <Enter> :.cc | wincmd p<CR>(আবার অপরিবর্তিত) এবং কুইকফিক্স উইন্ডোটি স্যুইচ না করে ত্রুটি নির্বাচন করতে এন্টার ব্যবহার করুন।
DrAl

1
একটি শিক্ষানবিসের জন্য "আপনি এটি করতে পারেন: এটি স্বয়ংক্রিয় করতে 'সামকোডিয়ের' এর অর্থ খুব বেশি নয়। এর অর্থ হ'ল কোডের দেখানো লাইনটি অবশ্যই ~ / .vimrc (_VIMRC এ উইন্ডোজ এএফআইকে) এ স্থাপন করা উচিত এবং ভিআইএম এর পরবর্তী শুরু থেকে প্রতিবার ফাইলটি সংরক্ষণ করা হলে এই আদেশটি চালু করা হবে। রাইট?
216

63

সবচেয়ে সহজ উপায় quickfix তালিকা (বা অবস্থান তালিকা, যে বিষয়টি জন্য) নেভিগেট করতে হয় প্লাগইনunimpaired

একবার quickfix জানালা জনবহুল, তাই [qএবং ]qএগিয়ে এবং ফিরে (যথাক্রমে) quickfix তালিকায় যান। [Qএবং ]Qশুরুতে এবং শেষে যান (যা বিশেষত আপনার পক্ষে যদি তালিকায় কেবল একটি আইটেম থাকে তবে এটি ভিম সম্পর্কে অভিযোগ করে [qএবং ]q)। সুতরাং কর্মপ্রবাহটি হ'ল:

  1. কমান্ডটি কুইকফিক্স তালিকার জনপ্রিয়তা যা চালান whatever
  2. [Qপ্রথম আইটেম যেতে টাইপ করুন
  3. [qএবং এর সাথে পরবর্তী আইটেমগুলির মাধ্যমে স্ক্রোল করুন (যদি থাকে)]q

আপনি যদি সিনটাস্টিক ব্যবহার করছেন তবে আপনি কুইকফিক্স তালিকার পরিবর্তে অবস্থানের তালিকাটি পাবেন। সমস্যা নেই; শুধু ব্যবহার [L, ]L, [l, এবং ]lএকই ভাবে।

unimpaired- অন্যান্য কুশলী ম্যাপিং লোড হয়েছে [eএবং ]e"বুদ্বুদ" লাইন আপ করুন এবং নিচে, [<Space>এবং ]<Space>; ইত্যাদি নীচের উপরে ফাঁকা রেখা ঢুকিয়ে, আমি কেউ কিছু তা এখানে আগে উল্লেখ অবাক হয়ে এটি সম্ভবত কারণ এটি জানুয়ারী 2010 পর্যন্ত উপস্থিত ছিল না, যদিও 2009 সালে প্রশ্নটি জিজ্ঞাসা করা হয়েছিল।


27

আপনার .vimrc ফাইলে নিম্নলিখিত দুটি লাইন রাখুন:

map <C-j> :cn<CR>
map <C-k> :cp<CR>

এখন আপনি সিটিআরএল-জে এবং সিটিআরটিএল-কে ব্যবহার করে ত্রুটিগুলি নিয়ে চলাচল করতে পারেন, যা স্ট্যান্ডার্ড ডাউন এবং আপ মোশন কমান্ড জে এবং কে নকল করে।


1
<c-j>কোনও এক সময় (টার্মিনালের উপর নির্ভর করে ?!) ভুল বা সম্পূর্ণ কাজ করছে না, কারণ এটি <এনএল> // এর মতো একই <c-n>এবং ব্যবহারের <c-p>পরিবর্তে // অন্যথায় // অন্যথায়: স্ট্যাকওভারফ্লো
eli

আমি এই জাতীয় F8 এবং F9 ব্যবহার করার সিদ্ধান্ত নিয়েছি: noremap <F7> :cprevious<CR>এবং noremap <F8> :cnext<CR>ইন.vimrc
ফ্লেম

আমি ইতিমধ্যে ব্যবহার <C-j>এবং <C-k>তেজ দু'ভাগ হয়ে tmux ফলকগুলি সঙ্গে মধ্যে নেভিগেট করতে তেজ tmux ন্যাভিগেটর । সংমিশ্রণ <C-M-j>এবং <C-M-k>একটি বিকল্প হতে পারে।
পল রাউজিউকস

24

আপনি এই ক্ষেত্রে :cc 2(বা অন্য কোনও সংখ্যা) লাফ দিতে ব্যবহার করতে পারেন , এই ক্ষেত্রে, কুইকফিক্স উইন্ডোতে দ্বিতীয় ত্রুটি। সঙ্গে নেভিগেট :cn, :cc 4ইত্যাদি প্রশ্নে লাইনে কার্সার করবে।


8

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

আমি উত্তর লিখেছি এই প্রশ্নের এবং এই প্রশ্নের কিভাবে এটা করবেন, প্লাস কিভাবে পেতে ব্যাখ্যা উৎস-কোড ব্রাউজিং / ট্যাগ-তালিকা সম্প্রদায় চালিত ব্যবহার তেজ জন্য jshint.com (যা উপায় আইএমও JSLint বেশী ভালো হয়) এবং মজিলার ডক্টর জেএস (পূর্বে জেসট্যাগগুলি )।


8

হয়তো এই অপশনটি অস্তিত্ব না যখন এই প্রশ্নের লিখিত ছিল (অথবা হয়তো, আমি বিব্রতকর করছি নিজেকে কিছু কারণ আমার .vimrcএই ঘটতে করে তোলে) কিন্তু যখন আমি একটি পেতে Quickfix List, আমি শুধু সঙ্গে এটি নেভিগেট jএবং kতারপর আঘাত <CR>(অর্থাত কী লিখুন) ফাইলের যে জায়গায় লাফাতে।

তারপরে, "একটি উইন্ডোটি সরান" এবং আমি ফিরে এসেছি Quickfix Listআই টাইপ Ctrl+ এ W jফিরে যেতে।

অবশেষে, আমার কাজ শেষ হয়ে গেলে আমি কেবল টাইপ করি :q, যেমন কোনও সাধারণ উইন্ডোটি বন্ধ করতে চাই।


এটাই আমি করতে চাই তবে আমি "পরিবর্তন করতে পারি না, 'পরিবর্তনযোগ্য' বন্ধ আছে"।
rtf

1
আপনি সম্ভবত আপনার এন্টার কী ওভার-রাইড করেছেন। আমার উদাহরণস্বরূপ ছিল nmap <CR> o<Esc>, তাই আমি স্বাভাবিক মোডে নতুন লাইন যুক্ত করতে পারি।
তাভি ইলভস

6

কুইকফিক্স উইন্ডোটি বেশিরভাগ অন্যান্য ভিআইএম উইন্ডোর মতো চালিত হয়: j লাইন নীচে, একটি লাইন কে,: পরবর্তী ত্রুটি / সতর্কতা ইত্যাদিতে ঝাঁপ দেওয়ার জন্য সিএন।

পরীক্ষা!


1
পরীক্ষার জন্য +1, আমি সবকিছু কীভাবে শিখলাম তা অনেকটাই।
হোরা

4

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

নীচে 3 টি ফাইলের প্রতিটি গ্রুপ তড়িঘড়ি ফলাফলের একটি সেট উপস্থাপন করে, যেমন একটি ভিমগ্রিপ থেকে। neতিহাসিক ফলাফল সেটগুলির মধ্য দিয়ে যাওয়ার জন্য স্নেয়ার এবং ঠান্ডা। এখানে চিত্র বর্ণনা লিখুন

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