'গিট' থেকে 'জি' নাম কীভাবে রাখবেন যাতে ব্যাশ-সমাপ্তির নিয়ম সংরক্ষণ করা যায়?


25

আমি যদি এটি করি:

alias g='git'

আমি সমস্ত সমাপ্তির বিধিগুলি আলগা করি (উদাহরণস্বরূপ, যখন টাইপ করার পরে আমি টিএবিতে আঘাত করি তখন শাখা এবং দূরবর্তীগুলি স্বয়ংক্রিয়ভাবে সম্পূর্ণ হয় না g push o)।


আমার কাছে আপনার কাছে উত্তর না থাকলেও আমাকে এক মিনিট সময় নিয়ে ভাবতে হবে এবং যদি এই দুটি অন্য চিঠিটি টাইপ না করে সত্যিই আপনাকে খুব বেশি সুবিধা দিচ্ছে?
মার্কো সেপ্পি

4
অবশ্যই! আমি সম্ভবত দিনে প্রায় 100 বার 'g' টাইপ করছি।
পাউয়ে গোকিকি

3
এমনকি ছোট খাট নামকরণের জন্য প্রায়শই ব্যবহৃত শর্ট কমান্ডগুলি আলিয়াজ করা আমাকে দিনে শত শত কীপ্রেস বাঁচায়। আমার শেলের ইতিহাস অনুসারে, আমি g=gitগত মাসে 756 বারের মতো ওরফে ব্যবহার করেছি , অর্থাত্ আমি 'জি' এবং 'আই' কীগুলি মোট 1512 বার টিপতে সংরক্ষণ করেছি। এটি, আমার গিট এলিয়াসগুলির সাথে একত্রিত, সম্ভবত আমাকে মাসে হাজারে হাজার হাজার কী চাপ দেয়।

কাস্ট্রোকগুলি সংক্ষিপ্ত করার প্রধান পয়েন্টটি আপনার মস্তিষ্কের সাথে হাত রাখতে সহায়তা করে।
টাইলার কলিয়ার

Superuser.com/questions/436314/… এ স্ক্রিপ্টটি এত ভালভাবে কাজ করেছে বলে আমি মনে করি এটি উল্লেখ করার যোগ্য।
ব্র্যান্ডিজি 26'16

উত্তর:


21

যথাযথভাবে অনুলিপি করা ও সংশোধন করা /etc/bash_completion.d/git, আপনার নিচের লাইনগুলি যুক্ত করুন ~/.bashrc:

complete -o bashdefault -o default -o nospace -F _git g 2>/dev/null \
    || complete -o default -o nospace -F _git g

হা! Wunderbar! যেমনটি করা উচিত ঠিক তেমন কাজ করে :)
পাওয়ে গোসিকি

1
আমাকে source /usr/share/bash-completion/completions/gitআমার .bashrc
pcx

.bashrcএখানে কোডটি কাজ করে কিনা তা নিশ্চিত নয় তবে এই উত্তরটি অবশ্যই পুরানো। /etc/bash_completion.d/git14.04-এ বিদ্যমান বলে মনে হচ্ছে না। দেখুন lzap এর উত্তর নিচে।
ম্যাক্স ওয়ালেস

18

সর্বশেষতম বাশ-সমাপ্তির উজানের স্থানটি সরানো হয়েছে এবং জিনিসগুলিকে কিছুটা নাম দিয়েছেন। এটি বরফ:

source /usr/share/bash-completion/completions/git
__git_complete g __git_main

যখন আপনি মুখোমুখি হন উবুন্টুর সাম্প্রতিক সংস্করণগুলিতে এটি ব্যবহার করুন (উদাঃ 14.04, ফেডোরা 22+):

completion: function `_git' not found

সম্পূর্ণ করার সময়।


2
মনে হচ্ছে এখানে একমাত্র সঠিক উত্তর।
pjvandehaar

__git_complete gc _git_checkoutআরও নির্দিষ্ট এলিয়াসগুলির জন্য সম্পূর্ণকরণ সেট আপ করতে (বা অনুরূপ) ব্যবহার করুন । /usr/.../gitসঠিক নামটি খুঁজতে উপরে হিসাবে অনুসন্ধান করুন ।
ম্যাক্স ওয়ালেস

1
@ ম্যাক্সওয়ালেস - যখন আপনি .gitconfig (যেমন জিসি = চেকআউট) এ নির্দিষ্ট গিট পদ্ধতির জন্য উপকরণগুলি সেট করেন, তাদের জন্য সম্পূর্ণরূপে সম্পূর্ণরূপে কনফিগার করার দরকার নেই।
পাইটর আলেকসান্দার চিমিলোভস্কি

1
ধন্যবাদ পিয়োটরএলিক্সান্ডার চেমিওলোস্কি ধন্যবাদ! কিন্তু আমি মনে করি না টপ লেভেল ব্যাশ alias লেখা যে কাজ (যেমন না gc=> git checkout) হিসেবে aliasing বিরোধিতা cকরার checkoutমধ্যে git, এবং বলার অপেক্ষা রাখে না git c। আমি ভুল হলে শুধরে.
ম্যাক্স ওয়ালেস

@MaxWallace হ্যাঁ, আপনি সঠিক আমার ভুল হয়,;)
পাযত্র Aleksander Chmielowski


2

প্রথমে আসল সমাপ্তি কমান্ডটি সন্ধান করুন। উদাহরণ:

$ complete | grep git

complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git

এখন এগুলি আপনার স্টার্টআপ স্ক্রিপ্টে যুক্ত করুন (উদাঃ ~ / .bashrc):

# copy the original statement, but replace the last command (git) with your alias (g)
complete -o bashdefault -o default -o nospace -F __git_wrap__git_main g

# load dynamically loaded completion functions (may not be required)
_completion_loader git

_completion_loaderলাইন প্রয়োজনীয় নাও হতে পারে। তবে কিছু পরিস্থিতিতে, কমান্ডটি টাইপ করার পরে এবং TABপ্রথমবার টিপানোর পরে সমাপ্তির ফাংশনটি কেবল গতিসম্পন্নভাবে লোড হয় । সুতরাং যদি আপনি আসল কমান্ডটি ব্যবহার না করে থাকেন এবং উপনাম + চেষ্টা করেন তবে TABআপনি "বাশ: সমাপ্তি: ফাংশনটি পাওয়া যায় নি" এর মতো একটি ত্রুটি পেতে পারেন।


দুর্দান্ত কাজ করে। আমার জন্য এটি সঠিক উত্তর, গ্রেপ কমান্ডটি সম্পূর্ণ কার্যকর। সমাপ্তি লোডার প্রয়োজন ছিল না।
পল কার্লটন 0

1

এটি করার আপডেটেড উপায় (সম্পূর্ণ আমার পক্ষে কাজ করবে না):

  1. cd - আপনার হোম ডিরেক্টরিতে স্যুইচ করুন
  2. wget https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
  3. যোগ source ~/git-completion.bashআপনার .bashrc ফাইলের (যদি আপনি আপনার হোম ফোল্ডারে এই ফাইলটি করতে না থাকে, ব্যাশ স্বয়ংক্রিয়ভাবে জন্য চেহারা হবে)
  4. যোগ alias g='git'আপনার .bashrc ফাইলের।
  5. একটি নতুন সেশন শুরু করুন বা এর সাথে আপনার পরিবর্তনগুলি উত্স করুন source ~/.bashrc

2
আপনি যে অংশটি যুক্ত করেছেন __git_complete g _git
সেগুলিতে

0

কেবলমাত্র সম্পূর্ণতার জন্য, আমি ~/.bash-completionফাইলটি ব্যবহার করে একটি উত্তর যুক্ত করতে চাই , যা বাশ-সমাপ্তি স্ক্রিপ্টের শেষে উত্সাহিত হয়:

_xfunc git __git_complete g __git_main
_xfunc git __git_complete gl _git_log
_xfunc git __git_complete gd _git_diff
_xfunc git __git_complete gb _git_branch

তারপরে আমার ~/.bashrcকেবলমাত্র এলিয়াস আছে। আমি চেষ্টা করছিলাম:

  • ~/.bashrcবাশ-সমাপ্তির স্টাফ দিয়ে আমার কলুষিত করা এড়িয়ে চলুন (জিনিস যেখানে এটি থাকে সেখানে রাখুন) ✓ ✓
  • আমার শেল into পুরো গিট-সমাপ্তি উত্সাহিত এড়াতে ☹

অপ্রত্যাশিতভাবে _xfuncযাইহোক গিট-সমাপ্তির উত্স। আমি কীভাবে এটি সঠিকভাবে করতে হবে তা বুঝতে পেরে আমি এই উত্তরটি আপডেট করব (আমি এখানে লাঞ্চপ্যাডেও জিজ্ঞাসা করেছি )।


-1

এখানে দেখুন: https://gist.github.com/scue/576310b7c6b7714aad05

wget https://gist.github.com/scue/576310b7c6b7714aad05/raw/459d46761c231f5c373c1cf496920b01bb6669d2/.bash_aliases.git -O ~/.bash_aliases.git
echo "test -e ~/.bash_aliases.git && source ~/.bash_aliases.git" >> ~/.bashrc

উপভোগ করুন! (^ ণ ^) /


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

আমি তাদের ওহ-মাই- জেডএস
স্কু

-1

আপনি যথারীতি কেবলমাত্র এলিয়াসগুলি সংজ্ঞায়িত করতে পারেন:

alias g='git'

তারপরে ব্যাশ সম্পূর্ণ করার জন্য উলাম-সচেতন করতে সম্পূর্ণ-উপন্যাস ইনস্টল করুন ।

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