Powerline: Сегменты оболочки "вверху справа" выравниваются по левому краю при многострочной настройке.

Созданный на 29 июл. 2016  ·  7Комментарии  ·  Источник: powerline/powerline

Я запускаю Powerline с рыбой из tmux. Я попытался настроить многострочное приглашение оболочки и получил следующее поведение как для рыб, так и для zsh:

selection_009

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

Если это поможет, вот результат env $POWERLINE_COMMAND shell right | xxd :

00000000: 1b5b 306d                                .[0m

А вот подсказки с рыбками:

$ type fish_prompt                                                                                                                        
fish_prompt is a function with definition
function fish_prompt
    env $POWERLINE_COMMAND shell aboveleft --last-exit-code=$status --last-pipe-status=$status --jobnum=(jobs -p | wc -l) --renderer-arg=client_id=12917 --width=$_POWERLINE_COLUMNS --renderer-arg=mode=$fish_bind_mode --renderer-arg=default_mode=$_POWERLINE_DEFAULT_MODE
end
$ type fish_right_prompt                                                                                                                  
fish_right_prompt is a function with definition
function fish_right_prompt
    env $POWERLINE_COMMAND shell right --last-exit-code=$status --last-pipe-status=$status --jobnum=(jobs -p | wc -l) --renderer-arg=client_id=12917 --width=$_POWERLINE_COLUMNS --renderer-arg=mode=$fish_bind_mode --renderer-arg=default_mode=$_POWERLINE_DEFAULT_MODE
    echo -n " "
end

~/.config/powerline/themes/shell/default.json :

{
    "segments": {
        "above": [
            {
                "left": [
                    {
                        "function": "powerline.segments.common.net.hostname",
                        "priority": 10
                    },
                    {
                        "function": "powerline.segments.common.env.user",
                        "priority": 30
                    },
                    {
                        "function": "powerline.segments.shell.cwd",
                        "priority": 10
                    },
                    {
                        "function": "powerline.segments.shell.jobnum",
                        "priority": 20
                    }
                ],
                "right": [
                    {
                        "function": "powerline_gitstatus.gitstatus",
                        "priority": 40
                    },
                    {
                        "function": "powerline.segments.common.time.date",
                        "name": "time",
                        "args": {
                            "format": "%H:%M:%S",
                            "istime": true
                        }
                    },
                    {
                        "function": "powerline.segments.shell.last_pipe_status",
                        "priority": 10
                    },
                    {
                        "function": "powerline.segments.common.env.virtualenv",
                        "priority": 50
                    }
                ]
            }
        ],
        "left": [
            {
                "function": "powerline.segments.shell.mode"
            },
            {
                "function": "powerline.segments.shell.last_pipe_status",
                "priority": 10
            },
            {
                "function": "powerline.segments.common.time.date",
                "args": {
                    "format": "$"
                }
            }
        ],
        "right": [
        ]
    }
}

~/.tmux.conf :

set -g default-terminal "screen-256color"
POWERLINE_CONFIG_PATHS="$HOME/.config/powerline"
run-shell "powerline-daemon -q"
source "/usr/lib/python3.5/site-packages/powerline/bindings/tmux/powerline.conf"

Минимальный config.fish :

set -gx POWERLINE_CONFIG_PATHS "$HOME/.config/powerline"

set fish_function_path $fish_function_path "/usr/lib/python3.5/site-packages/powerline/bindings/fish"
powerline-setup

source /usr/share/fish/functions/fzf.fish

Минимальный .zshrc :

HYPHEN_INSENSITIVE="true"
DISABLE_AUTO_UPDATE="true"

if [[ -r /usr/lib/python3.5/site-packages/powerline/bindings/zsh/powerline.zsh ]]; then
    source /usr/lib/python3.5/site-packages/powerline/bindings/zsh/powerline.zsh
fi

Оболочка: fish v2.3.1 , zsh 5.2
Python: 3.5.2
ОС: Manjaro (производная от Arch Linux)

$ pip show powerline-status

---
Metadata-Version: 1.1
Name: powerline-status
Version: 2.4
Summary: The ultimate statusline/prompt utility.
Home-page: https://github.com/powerline/powerline
Author: Kim Silkebaekken
Author-email: [email protected]
License: MIT
Location: /usr/lib/python3.5/site-packages
Requires: 
Classifiers:
  Development Status :: 5 - Production/Stable
  Environment :: Console
  Environment :: Plugins
  Intended Audience :: End Users/Desktop
  License :: OSI Approved :: MIT License
  Natural Language :: English
  Operating System :: Microsoft :: Windows
  Operating System :: POSIX
  Programming Language :: Python :: 2.6
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3.2
  Programming Language :: Python :: 3.3
  Programming Language :: Python :: 3.4
  Programming Language :: Python :: Implementation :: CPython
  Programming Language :: Python :: Implementation :: PyPy
cshell sconfiguration error bug

Самый полезный комментарий

Просто на заметку для таких гуглеров, как я.
Пример сегмента наполнителя:

{
    "type": "string",
    "highlight_groups": ["background"],
    "draw_soft_divider": false,
    "draw_hard_divider": false,
    "width": "auto"
}

Все 7 Комментарий

Вам не хватает наполнителя. Правые сегменты не выравниваются по правому краю по замыслу, они должны быть выровнены по сегментам-заполнителям. Примеры можно увидеть в конфигурации Vim.

Привет @ ZyX-I
Как сделать сегмент наполнитель? Есть ли какой-то конкретный сегмент, который ведет себя как наполнитель? И как сделать так, чтобы "прозрачный" смысл выглядел так, будто на нем ничего не было написано

@Javiergg Примеры сегментов-заполнителей находятся в темах Vim. Не существует «прозрачной» опции, вам нужно создать группу выделения с таким же фоном, что и остальная часть терминала, и использовать ее для заполнения.

Нашел их. Большое спасибо @ ZyX-I
Один вопрос, хотя нет «прозрачного» цвета, можно ли «обнаружить» цвет фона терминала или использовать его в качестве системной переменной?

@Javiergg Такого варианта нет. Вы можете попробовать использовать цвет 0, если я не ошибаюсь, это должно работать так, как вам нужно, пока вы не попробуете включить 24-битную окраску.

Просто на заметку для таких гуглеров, как я.
Пример сегмента наполнителя:

{
    "type": "string",
    "highlight_groups": ["background"],
    "draw_soft_divider": false,
    "draw_hard_divider": false,
    "width": "auto"
}

Всем привет и спасибо за эту прекрасную идею с Powerline.
Можно ли увидеть специальный сегмент для языкового env? например, ruby ​​и rvm, python и django и т. д., возможно, значок для ruby ​​/ python / perl / other -version и положение rvm для рельсов ...
Я думаю, у него должен быть способ сделать это, и, возможно, уже существует сегмент, чтобы показать это.
не могли бы вы остановить меня на этом, пожалуйста? (я не так уж далек от того, чтобы иметь лучшую оболочку zsh-powerline на моей ОС Archlinux, я очень счастлив)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги