Powerline Go

用 Go 编写的低延迟 Shell 提示
授权协议 GPLv3
开发语言 Google Go
所属分类 应用工具、 终端/远程登录
软件类型 开源软件
地区 不详
投 递 者 梁丘柏
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

用于 shell 且具有 Powerline 样式的提示

  • 显示关于 git/hg 分支的一些重要细节

  • 如果最后一个命令以失败代码退出,则更改颜色

  • 如果对目录树过于深入,请使用省略号缩短显示的路径

  • 显示当前的 Python virtualenv 环境

  • 使用 rbenv 显示当前的 Ruby 版本

  • 显示您是否在 nix shell 中

  • 很容易定制和扩展

安装

需要 Go 1.12+

powerline-go使用 ANSI 颜色代码,但是可能需要将 $TERM 设置为xterm-256color才能工作。

预编译的二进制文件

在 release 选项卡中为 x64 Linux 和 macOS 提供了预编译的二进制文件

其他平台

  • 安装(和更新)包
go install github.com/justjanne/powerline-go@latest
  • 默认情况下它将在 $GOPATH/bin中,如果想更改它,可以设置$GOPATH和/或$GOBIN,但也需要更改以下脚本中的路径。

Bash

将以下内容添加到.bashrc中(Mac 上为.profile):

function _update_ps1() {
    PS1="$($GOPATH/bin/powerline-go -error $? -jobs $(jobs -p | wc -l))"

    # Uncomment the following line to automatically clear errors after showing
    # them once. This not only clears the error for powerline-go, but also for
    # everything else you run in that shell. Don't enable this if you're not
    # sure this is what you want.

    #set "?"
}

if [ "$TERM" != "linux" ] && [ -f "$GOPATH/bin/powerline-go" ]; then
    PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi

目前,使用 bash 时不支持右键提示。

ZSH

将以下内容添加到.zshrc:

function powerline_precmd() {
    PS1="$($GOPATH/bin/powerline-go -error $? -jobs ${${(%):%j}:-0})"

    # Uncomment the following line to automatically clear errors after showing
    # them once. This not only clears the error for powerline-go, but also for
    # everything else you run in that shell. Don't enable this if you're not
    # sure this is what you want.

    #set "?"
}

function install_powerline_precmd() {
  for s in "${precmd_functions[@]}"; do
    if [ "$s" = "powerline_precmd" ]; then
      return
    fi
  done
  precmd_functions+=(powerline_precmd)
}

if [ "$TERM" != "linux" ] && [ -f "$GOPATH/bin/powerline-go" ]; then
    install_powerline_precmd
fi

Fish

重新在~/.config/fish/config.fish定义fish_prompt

function fish_prompt
    eval $GOPATH/bin/powerline-go -error $status -jobs (count (jobs -p))
end
  • 1. sudo apt-get intall zsh 2. https://github.com/robbyrussell/oh-my-zsh    Install oh-my-zsh 3. http://pan.baidu.com/disk/home#dir/path=%2FImportant    运行zsh.sh,下载字体。 4. 配置terminal 字体:appearane。(设置成po

  • 最近博主已经从VIM迁移到了EMACS作为主要生产工具,目的是为了学习Lisp和体验EMACS操作系统之美,哈哈,不要被我弄的技术焦虑,没错,我就是换了个吃饭的盘子。写下这篇博客也是为了纪念我顺利的“从VIM毕业了”。 在阅读本文之前,你需要: 准备一个UNIX like的操作系统 一个可以跨过山和大海的代-理 话不多说,开始吧~ (1)下载必要的Go工具链 go get -v github.co

 相关资料
  • 我想使用Flink流媒体以低延迟处理市场数据( 我有一组计算,每个都订阅三个流:缓慢移动的参数数据、股票价格和汇率。 例如。 Params(缓慢滴答:每天一次或两次): 资源(每秒多次滴答声): fx(每秒多次滴答声): 每当任何股票、外汇汇率或参数数据发生变化时,我都想立即计算结果并将其输出为新流。这在逻辑上可以表示为连接: 例如选择价格=(params.strike-asset.spot)*f

  • 我目前正试图让我的JDA机器人写一条消息,如果它留下一个语音通道。然后在消息发送后3秒钟,它应该会跟着另一条消息。 我已经尝试过用RestAction来做这件事,但我只能弄清楚如何删除延迟消息。 代码如下所示: 我希望有人能在这里帮助我。非常感谢您的帮助!

  • 我遇到的大多数集成都使用java-agent将跟踪推送到中央收集器,然后可以在Jaeger中查看跟踪。但是在我的例子中,我不能使用java代理,因此我决定使用自定义跟踪api,这似乎很好,并且有很多这样的例子。 通过设计,我的低延迟应用程序限制了我与外部组件/端口的任何连接,因此我也试图避免将跟踪/跨距推送到本地Jaeger代理或收集器endpoint,而是通过LogReporter记录跟踪。 除

  • 问题内容: 在以下情况下,实现C ++ / Java IPC的最佳方法是什么? 我有两个程序需要相互通信,一个是用C ++编写的,另一个是用Java编写的。两者都在同一台计算机上运行。 程序相互发送消息。消息通常很短(少于几百个字节),但是大小可能为100KB或更大。 不需要确认消息(即不需要像HTTP这样的请求/响应模型)。例如,C 程序向Java程序发送一条消息,而Java程序可以在以后的某个

  • 问题内容: 我正在Linux上的串行端口上实现协议。该协议基于请求应答方案,因此吞吐量受将数据包发送到设备并获得应答所花费的时间限制。这些设备主要基于Arm,并且运行Linux> = 3.0。我无法将往返时间缩短到10ms以下(115200波特,8个数据位,无奇偶校验,每条消息7个字节)。 哪些IO接口将为我带来最低的延迟:选择,轮询,epoll或使用ioctl手动轮询?阻塞或非阻塞IO是否会影响

  • 我正在寻找一些关于如何使用标记以相对低的延迟(~2s)流直播视频流的建议。我也看到过一些其他类似的问题,比如这个和这个,但都没有真正充分地回答我的问题。第一种是在内容消费者不在现场的假设下工作的。第二个似乎也做出了这样的假设。 我正在寻找技术,库或任何建议真正实现这一点。我已经尝试使用nginx-RTMP从视频设备接收流,然后使用HLS将其发送到浏览器。然而,我所能达到的最低延迟是4s。我还没来得

  • 大家好,已经有人问过类似的问题,但我想我们有点不同的问题: 我们使用Cassandra 2.2.6一个节点安装(并将升级到最新的)。现在我们有可怕的查询时间,有时会写超时。 为了进行比较,有一个不同的表包含大约10万条记录,其构造与上述非常相似 区别在于第一个包含大量地图和UDT。在dev center中进行简单测试选择*from。。。限制999;(省略任何Lucene索引等)最后一个显示183m

  • 我正在尝试使用KitKat将实时网络摄像头视频从Ubuntu 12.04 PC传输到android设备。到目前为止,我已经编写了ffserver配置文件来接收ffm提要并通过rtsp协议进行广播。我可以通过ffplay在同一局域网的另一台计算机上观看流。 如何在android设备上观看流?以下代码在使用vlc流式传输网络摄像头图像时效果良好,但在ffmpeg中效果不佳: 我的ffserver.co