Powerline: Powerline κΈ°λ³Έ μ…Έ ν…Œλ§ˆκ°€ 더 이상 였λ₯Έμͺ½μ— git λΆ„κΈ°λ₯Ό ν‘œμ‹œν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 10μ›” 13일  Β·  15μ½”λ©˜νŠΈ  Β·  좜처: powerline/powerline

μ•ˆλ…•ν•˜μ„Έμš”,

μ΅œκ·Όμ— μƒˆ λ…ΈνŠΈλΆ ArchLinux μ„€μΉ˜μ— μ „λ ₯선을 μ„€μΉ˜ν–ˆκ³  μ–΄λ–€ 이유둜 λ“  κΈ°λ³Έ μ‰˜ ν…Œλ§ˆλ₯Ό μ‚¬μš©ν•˜μ—¬ git λΈŒλžœμΉ˜κ°€ 더 이상 터미널 였λ₯Έμͺ½μ— λ‚˜νƒ€λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚΄ 화면에 ν‘œμ‹œ 될 곡간이 κ½€ λ§Žμ§€λ§Œ ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 항상 그것을 보여쀄 "priority": None μ‹œλ„ν–ˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ „λ ₯μ„  버전 : 2.5.1
운영체제 : Archlinux
μ„€μΉ˜μž : 배포판 νŒ¨ν‚€μ§€ κ΄€λ¦¬μž Pacman

κΈ°λ³Έ μ…Έ ν…Œλ§ˆμ˜ 이름을 lef.json 둜 λ³€κ²½ν•˜κ³  μ„ νƒλ˜κ³  λ³€κ²½ 사항이 μ„ νƒλ˜λ„λ‘ λͺ‡ 가지 변경을 μˆ˜ν–‰ν•˜μ—¬ μ „λ ₯선이 ν•΄λ‹Ή νŒŒμΌμ„ 인식, ꡬ문 뢄석 및 μ‚¬μš©ν•˜λŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

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
            }
        ]
    }
}

이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 방법에 λŒ€ν•œ μ•„μ΄λ””μ–΄λŠ” 크게 κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€.

VCS support cshell bug

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@LefterisJP ahhh ... bashκ°€ 였λ₯Έμͺ½ ν”„λ‘¬ν”„νŠΈλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” λ‹€λ₯Έ λ¬Έμ„œλ₯Ό μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. 이것이 κΈ°λ³Έ μ‰˜ ν…Œλ§ˆκ°€ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 이유λ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. κ³„μ†ν•΄μ„œ default_leftonly ν…Œλ§ˆλ₯Ό μ‚¬μš©ν•˜κ² μŠ΅λ‹ˆλ‹€.

bash λ˜λŠ” λ‹€λ₯Έ 셸을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? μ „μžλΌλ©΄ μ•„λ§ˆ 그것이 λ‹Ήμ‹ μ—κ²Œλ„ νš¨κ³Όκ°€μ—†λŠ” 이유 일 κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ“  15 λŒ“κΈ€

git status 은 무엇을 좜λ ₯ν•©λ‹ˆκΉŒ? λŒ€ν™” ν˜• Python μ„Έμ…˜μ—μ„œ powerline.lib.vcs.guess μˆ˜λ™μœΌλ‘œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@ s-ol git status 및 git branch κ°€ μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€. λ‚˜λŠ” μžμ‹ μ €μž₯μ†Œμ— μžˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ powerline.lib.vcs.guess λŠ” λŒ€ν™” ν˜• 파이썬 μ„Έμ…˜μ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ˜λŠ” 적어도 빈 개체λ₯Ό λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έμ— μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€. μ „λ ₯μ„  내뢀에 λŒ€ν•΄ 잘 λͺ¨λ₯΄κΈ° λ•Œλ¬Έμ— 여기에 λΆ™μ—¬ λ„£κΈ° λ§Œν•˜λ©΄λ©λ‹ˆλ‹€.

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__ μžˆμŠ΅λ‹ˆλ‹€.

이 ν•¨μˆ˜λŠ” "빈"개체λ₯Ό λ°˜ν™˜ ν•  수 μ—†μœΌλ©° μ‚¬μš© κ°€λŠ₯ν•œ μ €μž₯μ†Œ λ˜λŠ” μ—†μŒμ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

ꡬ성을 λ³€κ²½ ν•œ ν›„ 데λͺ¬μ„ λ‹€μ‹œλ‘œλ“œν–ˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€ (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 이 λ¬Έμ œκ°€ 아직 ν•΄κ²°λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆκΉŒ? ν₯λ―Έλ‘­κ²Œλ„ μ‰˜ ꡬ성에 default_leftonly.json ν…Œλ§ˆλ₯Ό μ„ νƒν•˜λ©΄ git λΈŒλžœμΉ˜κ°€ μ™Όμͺ½μ˜ ν”„λ‘¬ν”„νŠΈμ— λ‚˜νƒ€λ‚©λ‹ˆλ‹€. 였λ₯Έμͺ½ μ„Έκ·Έλ¨ΌνŠΈκ°€ 셸에 ν‘œμ‹œλ˜μ§€ μ•Šλ„λ‘ν•˜λŠ” λ¬΄μ–Έκ°€κ°€μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@LefterisJP ahhh ... bashκ°€ 였λ₯Έμͺ½ ν”„λ‘¬ν”„νŠΈλ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” λ‹€λ₯Έ λ¬Έμ„œλ₯Ό μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. 이것이 κΈ°λ³Έ μ‰˜ ν…Œλ§ˆκ°€ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 이유λ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. κ³„μ†ν•΄μ„œ default_leftonly ν…Œλ§ˆλ₯Ό μ‚¬μš©ν•˜κ² μŠ΅λ‹ˆλ‹€.

bash λ˜λŠ” λ‹€λ₯Έ 셸을 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ? μ „μžλΌλ©΄ μ•„λ§ˆ 그것이 λ‹Ήμ‹ μ—κ²Œλ„ νš¨κ³Όκ°€μ—†λŠ” 이유 일 κ²ƒμž…λ‹ˆλ‹€.

bashκ°€ μ•„λ‹Œ zshλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 문제λ₯Ό 더 μžμ„Ένžˆ μ‚΄νŽ΄λ³Ό μ‹œκ°„μ΄ μ—†μ—ˆμ§€λ§Œ μ—¬μ „νžˆ μ‘΄μž¬ν•©λ‹ˆλ‹€. default_leftonly.json λ₯Ό μ‚¬μš©ν•˜μ—¬ μ•Œ 수 μžˆλ“―μ΄ λΆ„κΈ°λŠ” μ™Όμͺ½μ— λ‚˜νƒ€λ‚˜μ§€λ§Œ 일반적인 κΈ°λ³Έκ°’μ—μ„œλŠ” 그렇지 μ•ŠμŠ΅λ‹ˆλ‹€.

Mac OS Sierraμ—μ„œ λ™μΌν•œ 문제, +1

λ‚΄ μ•„μΉ˜μ— μ „λ ₯선을 μ„€μΉ˜ν•˜κ³  κΈ°λ³Έ ν…Œλ§ˆκ°€ 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 둜 λ³€κ²½ν–ˆμ§€λ§Œ μ—¬μ „νžˆ 아무것도 μ—†μŠ΅λ‹ˆλ‹€ ...

λ˜ν•œ μ˜¬λ°”λ₯Έ ꡬ성을 μ°ΎκΈ° μœ„ν•΄ λ§Žμ€ λ…Έλ ₯을 κΈ°μšΈμ˜€μŠ΅λ‹ˆλ‹€. 일단 μ œλŒ€λ‘œ μ΄ν•΄ν•˜λ©΄ μ „λ ₯μ„  섀정을 μ•ˆλ‚΄ν•˜λŠ”μ΄ 기사λ₯Ό μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€. λ„μ›€μ΄λ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰