वैशिष्ट्ये
शॉर्टकट कमांड्स
हे पान इंग्रजीतून मशीनद्वारे भाषांतरित केले आहे. दुरुस्त्यांचे स्वागत आहे. हे पान GitHub वर संपादित करा
शॉर्टकट ही तुम्ही स्वतः नाव दिलेली कमांड आहे, जी Claude Code एका खात्याने सुरू करते: ccwork --resume तेच करते जे ccam work --resume करते. ती ~/.local/bin मधील ccam ची लिंक आहे, त्यामुळे ती bash, zsh, scripts आणि PATH वरून प्रोग्राम चालवणाऱ्या इतर सर्व गोष्टींमध्ये चालते. शॉर्टकट ऐच्छिक आहेत; तुम्ही वारंवार सुरू करता त्या खात्यांसाठी एक तयार करा.
वापर
ccam shortcut work ccwork # create the shortcut ccwork for work
ccam shortcut 2 ccside # the account with number 2
ccam shortcut work # show it
ccam shortcut work ccw # rename it; the old link is removed
ccam shortcut work --remove # delete it
ccam add side --shortcut ccside
ccam shims install # recreate missing links of all accounts
ccwork -p "summarise" --output-format jsonccam प्रत्येक बदलाची खात्री देते:
$ ccam shortcut work ccwork
✓ shortcut for work: ccwork
$ ccam shortcut work ccw
✓ shortcut for work: ccw (was ccwork)
$ ccam shortcut work --remove
✓ ccw removed; work has no shortcut now
$ ccam shortcut work
work: none (add one with `ccam shortcut work ccwork`)एका खात्याला जास्तीत जास्त एक शॉर्टकट असतो, जो ~/.config/ccam/config.toml मध्ये shortcut म्हणून साठवला जातो. ccam add विझार्ड Create a shortcut command for <name>? [y/N] आणि मग Shortcut name [cc<name>]: विचारतो. विझार्डबाहेर, ccam add फक्त --shortcut सह शॉर्टकट तयार करते. ccam list प्रत्येक खात्याचा शॉर्टकट दाखवते, किंवा -.
शॉर्टकट प्रत्येक आर्ग्युमेंट Claude Code ला देतो, जसे ccam <name> नावानंतर करते. यात --dry-run आणि --help सुद्धा येतात: सुरू करण्याचे पूर्वावलोकन करण्यासाठी ccam --dry-run work वापरा.
पर्याय
| पर्याय | काय करतो | डीफॉल्ट |
|---|---|---|
--remove |
खात्याचा शॉर्टकट आणि त्याची लिंक हटवा | बंद |
-h, --help |
कमांडची मदत | |
--dry-run |
ccam shortcut तो पाळते: ते नाव तपासते आणि सेव्ह किंवा लिंक न करता Would set the shortcut of work to ccwork. किंवा Would remove ccwork, the shortcut of work. छापते |
बंद |
ccam shims install कोणतेही आर्ग्युमेंट घेत नाही आणि --dry-run ccam: --dry-run is not supported by `ccam shims install`; nothing was changed देऊन नाकारते.
नावांचे नियम, या क्रमाने तपासले जातात:
a-z,0-9,.,-आणि_यांपासून बनलेली 1 ते 64 अक्षरे, अक्षराने किंवा अंकाने सुरू होणारी;ccam,claudeकिंवाrunकिंवाusageसारखी ccam कमांड नाही;- दुसऱ्या खात्याचा शॉर्टकट नाही;
~/.local/binमधील अशी फाइल नाही जी आधीच ccam ची लिंक नाही;- तुमच्या
PATHवरील दुसऱ्या executable चे नाव नाही.
कमांड आणि --remove एकत्र दिल्यास give a command or --remove, not both ने थांबते. खात्याकडे आधीच असलेले नाव सेट केल्यास work: ccwork (unchanged) छापले जाते आणि लिंक नसल्यास ती पुन्हा तयार होते.
हे कसे काम करते
नाव सेट केल्यावर checkShortcut चालते, जे bin फोल्डर आणि ccam binary चा खरा पाथ देऊन shim.Check बोलावते:
नाव तपासण्यांमधून क्रमाने खाली जाते. प्रत्येक तपासणीशेजारी ती नाकारत असलेले एक नाव आहे: Work pattern मध्ये बसत नाही, run ही ccam कमांड आहे, ccside दुसऱ्या खात्याचे आहे, ccfile ही ~/.local/bin मधील आधीपासून असलेली फाइल आहे, आणि git /usr/bin/git लपवेल. प्रत्येक तपासणी पार करणारे नावच सेव्ह आणि लिंक होते.
shim.Checkनाव^[a-z0-9][a-z0-9._-]{0,63}$शी, मगconfig.Reservedशी, मगcfg.FindShortcutशी जुळवते. ते~/.local/bin/<name>वरos.Lstatबोलावते, आणिPATHवरील इतर प्रत्येक फोल्डरसाठीos.Statबोलावून ccam ची लिंक नसलेली executable फाइल नाकारते.- ccam
config.tomlfsutil.AtomicWriteने सेव्ह करते (तात्पुरती फाइल,fsync, rename). shim.Removeजुन्या शॉर्टकटची लिंक हटवते, पण ती ccam ची लिंक असेल तरच.shim.Installconfig मधील प्रत्येक शॉर्टकटची नसलेली लिंकos.Symlinkने ccam binary कडे तयार करते, जीos.Executableआणिfilepath.EvalSymlinksने शोधली जाते. ते कधीच काहीही काढत नाही.
os.Readlink ccam चा पाथ परत देते तेव्हा, किंवा लिंक आणि ccam चा पाथ एकाच फाइलकडे जातात तेव्हा, ती लिंक ccam ची स्वतःची मानली जाते. प्रत्येक remove आणि प्रत्येक overwrite तपासणी या चाचणीतून जाते, त्यामुळे ccam ने तयार न केलेल्या फाइल्सना ते हात लावत नाही.
तुम्ही शॉर्टकट चालवता तेव्हा, तुम्ही टाइप केलेले नाव हीच एक गोष्ट ccam ला लागते:
shell ला PATH वर ccwork सापडतो, kernel लिंक पाळून ccam binary सुरू करतो, आणि argv[0] तरीही ccwork असतो. app.Main मध्ये, ccam शिवाय इतर कोणतेही नाव config.toml एकदा लोड करते आणि shim.Lookup बोलावते, जे ज्या खात्याचा shortcut filepath.Base(argv[0]) शी जुळतो ते शोधते. मग launcher.LaunchWith आधीच लोड झालेल्या config सह ccam <name> सारखेच टप्पे घेते, आणि argv[1:] न बदलता claude ला देते.
shell alias किंवा wrapper script नाही तर symlink का: symlink प्रत्येक shell मध्ये आणि scripts मध्ये चालते, ती अतिरिक्त shell सुरू करण्याचा वेळ (सुमारे 1 ते 2 ms) जोडत नाही, आणि सुरू करताना तरीही एकच फाइल वाचली जाते. scripts/perf-check.sh hyperfine ने शॉर्टकट मोजते, ccam <name> च्याच 10 ms (p95) मर्यादेवर.
सुरक्षितता आणि अपवादात्मक स्थिती
- कोणत्याही खात्याची नसलेली लिंक.
~/.local/binमधील ccam च्या लिंकचे नाव कोणतेही खाते वापरत नसेल, उदाहरणार्थ तुम्हीconfig.tomlमधीलshortcutहाताने बदलल्यानंतर, तर ccam डीफॉल्ट खात्यावर जात नाही. तेccam: ccold is not the shortcut of any account (see `ccam list`, `ccam shortcut`)ने थांबते.ccam shortcutने नाव पुन्हा सेट करा, किंवा लिंक हटवा. - आधीपासून असलेल्या फाइल्स. ccam ने तयार न केलेली फाइल ते कधीच बदलत नाही.
ccam shims install<path> already exists and is not a ccam link, so it was left aloneने थांबते. - हलवलेली ccam binary. तेव्हा जुन्या लिंक्स आता अस्तित्वात नसलेल्या पाथकडे निर्देश करतात, आणि ccam त्यांना स्वतःच्या मानत नाही. त्या हटवा, मग
ccam shims installचालवा. - नाव बदलणे आणि काढणे.
ccam renameशॉर्टकटचे नाव तेच ठेवते, आणि लिंक चालत राहते, कारण ती ccam कडे निर्देश करते आणि ccamconfig.tomlमध्ये नाव शोधते.ccam removeखात्याची लिंक हटवते.ccam shortcut <account> <new>नवीन लिंक तयार करण्यापूर्वी जुनी हटवते. - PATH. ccam लिंक तयार करते आणि
~/.local/binतुमच्याPATHवर नसतो, तेव्हा तेNote: /home/me/.local/bin is not in PATH. Add it to ~/.bashrc or ~/.zshrc:आणि त्यानंतर जोडायचीexport PATH=...ओळ छापते. - नंतर तपासणे.
ccam doctormissing shortcuts in /home/me/.local/bin: ccworkनोंदवते आणि फोल्डरPATHवर नसल्यास इशारा देते.ccam doctor --fixनसलेल्या लिंक्स तयार करते.