Здравствуйте,
Недавно я установил powerline в новую установку ArchLinux для ноутбука и по какой-то причине использую тему оболочки по умолчанию, ветки git больше не отображаются справа от терминала. На моем экране довольно много места для его отображения, но оно не появляется. Я даже пробовал с "priority": None
который всегда должен показывать, но это тоже не сработало.
Версия Powerline : 2.5.1
ОС : Archlinux
Установлено : Pacman, менеджер пакетов дистрибутива.
Я переименовал тему оболочки по умолчанию в lef.json
и внес некоторые изменения, чтобы гарантировать, что она будет получена, и изменения будут внесены, чтобы мы могли быть уверены, что Powerline распознает, проанализирует и использует эти файлы.
config.json
{
"common": {
"term_truecolor": false
},
"ext": {
"ipython": {
"colorscheme": "default",
"theme": "in",
"local_themes": {
"rewrite": "rewrite",
"out": "out",
"in2": "in2"
}
},
"pdb": {
"colorscheme": "default",
"theme": "default"
},
"shell": {
"colorscheme": "default",
"theme": "lef",
"local_themes": {
"continuation": "continuation",
"select": "select"
}
},
"tmux": {
"colorscheme": "default",
"theme": "default"
},
"vim": {
"colorscheme": "default",
"theme": "default",
"local_themes": {
"__tabline__": "tabline",
"cmdwin": "cmdwin",
"help": "help",
"quickfix": "quickfix",
"powerline.matchers.vim.plugin.nerdtree.nerdtree": "plugin_nerdtree",
"powerline.matchers.vim.plugin.commandt.commandt": "plugin_commandt",
"powerline.matchers.vim.plugin.gundo.gundo": "plugin_gundo",
"powerline.matchers.vim.plugin.gundo.gundo_preview": "plugin_gundo-preview"
}
},
"wm": {
"colorscheme": "default",
"theme": "default"
}
}
}
тема lef.json (в основном скопируйте и вставьте default.json для оболочки)
{
"segments": {
"left": [
{
"function": "powerline.segments.shell.mode"
},
{
"function": "powerline.segments.common.net.hostname",
"priority": 10
},
{
"function": "powerline.segments.common.env.user",
"priority": 30
},
{
"function": "powerline.segments.common.env.virtualenv",
"priority": 50
},
{
"function": "powerline.segments.shell.cwd",
"priority": 10
},
{
"function": "powerline.segments.shell.jobnum",
"priority": 20
}
],
"right": [
{
"function": "powerline.segments.shell.last_pipe_status",
"priority": 10
},
{
"function": "powerline.segments.common.vcs.stash",
"priority": 50
},
{
"function": "powerline.segments.common.vcs.branch",
"priority": 40
}
]
}
}
Мы будем очень благодарны за любую идею о том, как решить эту проблему.
Что выводит git status
? Можете ли вы попробовать запустить powerline.lib.vcs.guess
вручную в интерактивном сеансе Python?
@ s-ol git status
и git branch
работают должным образом. Я нахожусь в репозитории git.
Но powerline.lib.vcs.guess
не работает из интерактивного сеанса Python. Или, по крайней мере, я предполагаю, что это не работает, потому что возвращает пустой объект. Я не очень разбираюсь во внутреннем устройстве Powerline, поэтому позвольте мне просто вставить его здесь:
Python2:
Python 2.7.12 (default, Jun 28 2016, 08:31:05)
[GCC 6.1.1 20160602] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import powerline.lib.vcs as vcs
>>> vcs.guess(".", False)
<powerline.lib.vcs.git.Repository object at 0x7f495258aeb0>
>>> a = vcs.guess(".", False)
>>> a.__dict__
{}
Python3:
Python 3.5.2 (default, Jun 28 2016, 08:46:01)
[GCC 6.1.1 20160602] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import powerline.lib.vcs as vcs
>>> vcs.guess(".", False)
<powerline.lib.vcs.git.Repository object at 0x7f93f665ce58>
>>> a = vcs.guess(".", False)
>>> a.__dict__
{}
@LefterisJP Почему вы думаете, что он пустой? __dict__
- не единственное место, где могут содержаться атрибуты объекта. Фактически, там _должно быть_ атрибутов, рассматриваемый класс использует __slots__
.
Эта функция не может вернуть «пустой» объект, она возвращает либо пригодный для использования репозиторий, либо None.
Хотите знать, перезагрузили ли вы демон после внесения изменений в конфигурацию (при использовании zsh + zpython перезапустите zsh или используйте powerline-reload-config
).
@ ZyX-I Понятно. Не знал о питоне __slots__
. Спасибо за это!
Так:
>>> a.__slots__
('directory', 'create_watcher')
У меня нет запущенного демона. Я просто:
source /usr/lib/python2.7/site-packages/powerline/bindings/zsh/powerline.zsh
в моем .zshrc
.
Таким образом, на другом моем компьютере он долгое время работал нормально. Не думаю, что когда-либо использовал демона.
@LefterisJP Вы уже решили эту
@LefterisJP аааа ... только что нашел другие документы, в которых говорится, что bash не поддерживает подсказки с правой стороны. Это объясняет, почему тема оболочки по умолчанию не работает. Я собираюсь использовать тему default_leftonly.
Вы используете bash или другую оболочку? Если первое, то, вероятно, это причина, по которой он не работает и для вас.
Я использую zsh, а не bash. У меня не было времени изучать эту проблему, но она все еще существует. Как вы также заметили, при использовании default_leftonly.json
ветви появляются слева, но при обычном значении по умолчанию их нет.
такая же проблема на Mac OS Sierra, +1
Просто установил powerline на мою Arch и могу подтвердить, что тема по умолчанию не отображает ветки git. Переход на тему default_leftonly
решает проблему.
Та же проблема с zsh.
Решается убийством всех зависших процессов powerline-daemon
.
Для меня также был необходим переход на default_leftonly
, и поскольку в остальном у меня не было необходимости или интереса к настройке, а документы в основном ориентированы на это, я закончил тем, что создал только файл конфигурации для изменения темы: https://github.com/powerline/powerline/issues/186#issuecomment -247810572 и powerline-daemon -q --replace
после применения конфигурации (обратите внимание на -q
здесь, чтобы создать его в фоновом режиме!).
Я изменил свою тему для vim на default_leftonly
и все равно ничего ...
Я также изрядно потрудился, чтобы выбрать правильную конфигурацию. Как только все получилось, я написал эту статью, в которой рассказывается о настройке Powerline. Я надеюсь, что это помогает.
Самый полезный комментарий
@LefterisJP аааа ... только что нашел другие документы, в которых говорится, что bash не поддерживает подсказки с правой стороны. Это объясняет, почему тема оболочки по умолчанию не работает. Я собираюсь использовать тему default_leftonly.
Вы используете bash или другую оболочку? Если первое, то, вероятно, это причина, по которой он не работает и для вас.