Используйте xcursorgen из пакета xorg-x11-apps
или x11-apps
для создания файла Xcursor из коллекции изображений PNG.
xcursorgen config-file output-file
где в config-файле есть строка с именем вашего курсора
size xhot yhot filename
На самом деле, вызов _git
из вашего .zshrc
действительно работает, поскольку он определяет _git
и связанные с ним функции, включая __git_aliases
, и пытается выполнить некоторое завершение, но терпит неудачу (даже без сообщения об ошибке. в данном конкретном случае ). Это работает с большинством функций завершения . Сделать это нужно после compinit
, чтобы _git
и его вспомогательные функции были помечены для автозагрузки.
% zsh -f
darkstar% autoload compinit
darkstar% compinit
darkstar% _git
darkstar% __git_aliases
_tags:comptags:36: can only be called from completion function
_tags:comptry:55: can only be called from completion function
_tags:comptags:60: can only be called from completion function
_tags:comptags:67: can only be called from completion function
Проблема в том, что когда вы запускаете __git_aliases
, он вызывает встроенные функции, которые можно использовать только во время завершения. Вы можете обойти это, временно определив функции с тем же именем, что и эти встроенные функции, которые делают только ту часть, которую вы хотите сделать, что часто ничего не значит, но это очень неуклюже. Я не собираюсь показывать, как это сделать, потому что в этом конкретном случае есть гораздо более простой способ.
Так как вы все равно углубляетесь в файл завершения _git
, вызовите __git_extract_aliases
вместо __git_aliases
. __git_extract_aliases
вставляет информацию в переменную aliases
таким образом, чтобы ее было легко извлечь. (Примечание. :Я написал этот ответ для zsh 5.4.2, версии для Ubuntu 18.04. Другие версии zsh могут иметь другую структуру в _git
.)
_git 2>/dev/null
define_git_aliases () {
local -a aliases; local al
__git_extract_aliases
for al in ${aliases%%:*}; do
alias g$al="git $al"
done
}
define_git_aliases
Это все еще намного больше усилий, чем необходимо, и, возможно, дополнительные усилия по переносу, чтобы справиться с различными версиями zsh. __git_extract_aliases
— это, по сути, одна строка кода.
for al in ${${${(0)"$(git config -z --get-regexp '^alias.')"}%%$'\n'*}#alias.}; do
alias g$al="git $al"
done