Nano Hash - криптовалюты, майнинг, программирование

Как сделать аварийное переключение автозаполнения zsh на compdef _files

Мне нужно было получить отпечаток ключа ssh, используя:

$ ssh-keygen -lf ~/.ssh/id_rsa_user.pub

после ввода:ssh-keygen -lf ~/.ss TAB Это не давало никаких вариантов.

Я должен был сделать:

$ compdef _files ssh-keygen

После этого мне стало доступно автозаполнение с использованием пути к файлам, но автозаполнение команды перестало работать, поэтому, если я наберу ssh-keygen - Tab, я больше не увижу этот вывод:

$ ssh-keygen -
 -- option --
-B  -- show the bubblebabble digest of key
-C  -- provide new comment
-D  -- download key stored in smartcard reader
-N  -- provide new passphrase
-P  -- provide old passphrase
-U  -- upload key to smartcard reader
-b  -- specify number of bits in key
-c  -- change comment in private and public key files
-e  -- export key to SECSH file format
-f  -- key file
-i  -- import key to OpenSSH format
-l  -- show fingerprint of key file
-p  -- change passphrase of private key file
-q  -- silence ssh-keygen
-t  -- specify the type of the key to create
-y  -- get public key from private key

Поэтому интересно, есть ли способ включить обе опции, чтобы я мог сделать что-то вроде:

ssh-keyg TAB, который даст мне:

$ ssh-keygen

Тогда я могу сделать

$ ssh-keygen - TAB

Это распечатало бы меню опций и было доступно для выполнения:

$ ssh-keygen -lf ~/.ss TAB

И есть список вариантов, которые могут работать, поэтому в конце я получу что-то вроде:

$ ssh-keygen -lf ~/.ssh/id_rsa_user.pub

А пока я просто добавляю к своему ~/.zshrc это:

compdef _files ssh-keygen
compdef _files adb
compdef _files mysql
...

Но я должен сделать это для каждой команды. Я хочу использовать завершение _files, поэтому я хотел бы знать, есть ли способ всегда использовать _files или аварийное переключение на него.

Есть идеи?

Можно ли заставить его вести себя как csh, где нажатие Ctrl+d показывает параметры файлов?

Обновление:

Я заметил, что если последним аргументом является -f, автозаполнение работает:

ssh-keygen -l -f ~/.sshTAB

Но для пользовательских скриптов, команд, какая функция, псевдоним виджета может помочь принудительно завершить _files.?


  • Можно ли заставить его вести себя как csh, где нажатие Ctrl + d показывает параметры файлов? - Я думаю, вы можете добиться этого, используя пример, приведенный в zsh docs для виджетов завершения 18.04.2016
  • Я знаю, что это не обязательно поможет вам, но то, что вам нужно с ssh-keygen, - это именно то, как ведет себя мой zsh, так что это определенно возможно. ssh-keygen -lf ~/.ssh‹TAB› дает мне список завершения файлов. 18.04.2016
  • @NilsLuxton Привет, вы можете получить опции ssh-keygen -TAB, а также получить файлы при выполнении ssh-keygen -lt ~/.s TAB, если да, не могли бы вы рассказать мне, как вы это делаете. 18.04.2016
  • Да, верно, но я недостаточно знаю о том, как все это работает, чтобы рассказать вам, как это сделать, я боюсь... извините! 18.04.2016
  • если вы вернетесь в IRC на #zsh, мы можем попытаться разобраться вместе - я нашел кое-что, я думаю 18.04.2016

Ответы:


1

Решение состояло в том, чтобы обновить до zsh вот как я это сделал:

# check the zsh info
brew info zsh

# install zsh
brew install zsh

# add shell path
sudo vim /etc/shells

# add the following line into the very end of the file(/etc/shells)
/usr/local/bin/zsh

# change default shell
chsh -s /usr/local/bin/zsh

У меня были проблемы с завершением git-flow, это было исправлено переустановкой с --without-completions:

$ brew install git --without-completions
19.04.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..