গিট সমাপ্তি:
আমার সিস্টেমে গিটের ফাইলের নাম স্বতঃপূরণ নিয়ে আমার সমস্যা হচ্ছে। আমি ওএস এক্স (10.9.3) এ (1.9.3) zsh
দিয়ে (5.0.5) ব্যবহার করছি git
। উভয় zsh
এবং git
homebrew মাধ্যমে ইনস্টল করা হয়নি। (সম্পূর্ণ সংস্করণ আউটপুট পোস্টের নীচে রয়েছে।)
git
ফাইলের নাম সমাপ্তি আমার প্রত্যাশা মতো স্থান সন্নিবেশ করছে না। যখন আমি নামের সাথে কোনও জায়গার সাথে কোনও ফাইলের নাম লিখি, শেলটি ফাঁকা ছাড়াই ফাইলের নাম সন্নিবেশ করায়। zsh
এর অন্তর্নির্মিত সমাপ্তি এটি করে না, তবে git
তা করে।
আমি যা দেখছি তার একটি উদাহরণ এখানে।
তাদের নামে ফাঁকা কয়েকটি ফাইল সহ আমার কাছে একটি সংগ্রহস্থল রয়েছে os
% ls -la
test
test four - latest.txt
test three.txt
test two
শেল ব্যাকস্ল্যাশ যখন ফাইলের নাম সন্নিবেশ করানোর জন্য আমি ট্যাব সমাপ্তি ব্যবহার করি তখন প্রত্যাশা অনুযায়ী ফাইলের নামগুলি পালিয়ে যায়।
% echo "testing" >> test<tab>
তিনবার ট্যাব মারার পরে এটি স্বয়ংক্রিয়ভাবে পূর্ণ হয়।
% echo "testing" >> test\ four\ -\ latest.txt
––– file
test test\ four\ -\ latest.txt test\ three.txt test\ two
git status
এই ফাইলের নামগুলি উদ্ধৃতিতে দেখায় (এটি সম্পূর্ণরূপে বুঝতে পারে কী ঘটেছে):
% git status --short
M test
M "test four - latest.txt"
M "test three.txt"
M "test two"
তবে আমি যখন git add
ট্যাব স্বতঃপূরণ দিয়ে চেষ্টা করি তখন তা পাশের দিকে চলে যায়।
% git add test<tab>
তিনবার ট্যাব মারার পরে এর ফলাফল:
% git add test four - latest.txt
test test four - latest.txt test three.txt test two
আমি এই একটি বিট regressing চেষ্টা করেছি আমার dotfiles, সংস্করণ নিয়ন্ত্রণে আছেন তাই আমি চেষ্টা করেছি zsh 4.3.15
, git 1.8.3
এবং এক বছর আগে থেকে আমার dotfiles যখন আমি প্রায় কিছু না এই কাজ করেন। অদ্ভুতভাবে, এই সেটআপটি এখনও ভেঙেছিল।
আমি এটিকে সংক্ষিপ্ত আকারে সম্পন্ন হওয়া ফাইলের কাছে সংকুচিত করেছি :_git
/usr/local/share/zsh/site-functions
% echo $FPATH
/usr/local/share/zsh/site-functions:/usr/local/Cellar/zsh/5.0.5/share/zsh/functions
% ls -l /usr/local/share/zsh/site-functions
_git@ -> ../../../Cellar/git/1.9.3/share/zsh/site-functions/_git
_hg@ -> ../../../Cellar/mercurial/3.0/share/zsh/site-functions/_hg
_j@ -> ../../../Cellar/autojump/21.7.1/share/zsh/site-functions/_j
git-completion.bash@ -> ../../../Cellar/git/1.9.3/share/zsh/site-functions/git-completion.bash
go@ -> ../../../Cellar/go/HEAD/share/zsh/site-functions/go
যদি আমি নিজে পরিবর্তন $FPATH
আমার সামনে .zshrc
রানের compinit
(বা শুধু অপসারণ /usr/local/share/zsh/site-functions/_git
সিম্বলিক লিঙ্ক), তারপর সম্পূর্ণকরণ ফিরে আসবে zsh
এবং কাজের আশানুরূপ।
zsh
সমাপ্তির ছাড়া _git
:
% git add test<tab>
তিনবার ট্যাব মারলে সঠিক ফলাফল পাওয়া যায়:
% git add test\ four\ -\ latest.txt
––– modified file
test test\ four\ -\ latest.txt test\ three.txt test\ two
পার্শ্ব দ্রষ্টব্য: আমি git-completion.bash
লিঙ্কটি সরিয়ে দেওয়ার চেষ্টা করেছি এবং এটি কেবল জিনিসগুলি পুরোপুরি বিরতি দেয়:
% git add test<tab>
এই আবদ্ধ-নেস উত্পাদন করে:
% git add test__git_zsh_bash_func:9: command not found: __git_aliased_command
git add test
––– file
test test\ four\ -\ latest.txt test\ three.txt test\ two
আমি সত্যিই এটি সঠিকভাবে কাজ করতে চাই: বাকী সম্পূর্ণতাগুলি _git
দুর্দান্ত ছিল কারণ তারা এর চেয়ে বেশি রেপো সচেতন zsh
, তবে সঠিকভাবে পালানোর জন্য আমার স্পেস বা অন্যান্য বিশেষ অক্ষরযুক্ত ফাইলের নাম প্রয়োজন।
সফ্টওয়্যার সংস্করণ:
% zsh --version
zsh 5.0.5 (x86_64-apple-darwin13.0.0)
% git --version
git version 1.9.3
% sw_vers
ProductName: Mac OS X
ProductVersion: 10.9.3
BuildVersion: 13D65
আমি ফাইল _git
এবং git-completion.bash
ফাইলগুলি আপলোড করেছি : গিট- কমপ্লিউশন.বাশ এবং _ গিট ( _git.sh
তাই ক্লাউড অ্যাপের নাম পরিবর্তিত হয়ে ব্রাউজারে এটি দৃশ্যমান করে দেবে))
_git
। compadd -Q
অদ্ভুত দেখতে কলগুলি : এর -Q
অর্থ "বিশেষ অক্ষরগুলি উদ্ধৃত করবেন না"। কলগুলি -Q
থেকে সরিয়ে দেওয়ার চেষ্টা করুন compadd
।
zsh
শব্দটি বিভাজনকারী কমান্ড-প্রতিস্থাপনের ফলাফলগুলির না হয়ে ডিফল্ট আচরণের কারণে এই সমস্যা হয়েছে । প্রকৃতপক্ষে - \bs
পালানোর প্রয়োজন নেই - বা আপনি এটি কীভাবে দেখেন তার উপর নির্ভর করে নিরর্থক। "SH_WORD_SPLIT"
Zsh.sourceforge.net/FAQ/zshfaq03.html
${=$(completion)}
বা যা কিছু তারা ফিরে আসে তা সম্পাদনা করুন।