Открытие py-файлов в vim по умолчанию без ввода «vim filename.py»

Это происходило при следовании за пакетом, у которого возникали проблемы при запросе базы данных rpm для установленного пакета, что приводило к путанице в метатеге:

rpm --rebuilddb

Все должно вернуться к норме, когда вы пересоберете пакет базы данных rpm. В некоторых случаях проблема все еще существует, и тогда вам нужно удалить старые мета-данные и заново собрать

mkdir /var/lib/rpm/old
mv /var/lib/rpm/Pubkeys /var/lib/rpm/old/
rpm --rebuilddb

Иногда, в моем случае,ошибка выбрасывается не из-за некоторых ошибок, которые не могут удалить определенный каталог.

$ sudo rpmdb --rebuilddb -v
error: could not delete old database at /var/lib/rpmold.17138

$ sudo rm -rf /var/lib/rpmold.17138

$ sudo rpmdb --rebuilddb -v

$ sudo dnf update --refresh
determining the fastest mirror (2 hosts).. done.
RPM Fusion for Fedora 28 - Free - Updates                                                                                                                        412 kB/s | 369 kB     00:00    
RPM Fusion for Fedora 28 - Nonfree - Updates                                                                                                                      35 kB/s |  84 kB     00:02    
Last metadata expiration check: 0:00:00 ago on Mon 27 Aug 2018 09:08:56 AM +08.
Dependencies resolved.
Nothing to do.
Complete!

Вывод выше (с -v, подробными аргументами )показывает мне, что у меня проблема с разрешением на удаление каталога /var/lib/rpmold.17138из моей системы. Просто удалите вручную, перестройте базу данных rpm, и все заработало.

2
27.06.2021, 18:19
1 ответ

К моему личному удивлению, да, способ zshесть. Этот вопрос привел меня к этому ответу , говорящему о "псевдонимах суффиксов" в zsh. Не то, чтобы ваш дубликат --Первый вопрос был bashо том, как это сделать; другой ответ был просто о «любимых zshфункциях».

Чтобы сделать это с псевдонимом суффикса:

alias -s py=vim

Добавьте это к вашему ~/.zshrc, чтобы сделать его постоянным.

Лично я бы рекомендовал против этого как минимум по двум причинам. Прежде всего, как указал @pizzapants184 в комментарии, это отменяет даже возможность запуска файла Python с использованием его пути. Например, ./run_me.pyне будет выполняться, даже если он установлен как исполняемый, и даже если он имеет строку шебанга (, например. #!/usr/bin/env python3или #!/usr/bin/python3). Хорошая фича, но было бы неплохо, ИМХО, если бы она была "поумнее".

Кроме того, дополнительные 3 символа (" vi " )становятся такой мышечной памятью, которая хорошо послужит вам на других системах, которые вы не настроили таким образом или на которых не установлено zsh.

Альтернативный метод

И хотя я все еще не обязательно рекомендую это, вы можете установить строку shebang для отдельного файла, чтобы заставить его загружаться в vimпри выполнении:

  • В качестве первой строки файла (назовем ееedit_me.py):
    #!/usr/bin/env vi
    
  • Установить исполняемый файл :
    chmod +x edit_me.py
    
  • Запуск (например../edit_me.py)откроет его вvim(или вернется к vi, если он недоступен ).
5
28.07.2021, 11:21

Теги

Похожие вопросы