tmux не раскрашивает подсказку PS1

Чтобы извлечь только строки, содержащие цифры:

$ grep '^[0-9][0-9]*$' words >digits

Регулярное выражение ^[0-9][0-9]*$ будет соответствовать любой строке, которая начинается с цифры и затем содержит только цифры до конца строки.

Если в вашем файле нет пустых строк, вы можете изменить его на ^[0-9]*$.

Если вам нужны строки с числами, удалите вместо них строки с буквенными символами (проще, чем пытаться построить регулярное выражение для общего числа):

$ grep -v '[a-zA-Z]' words >numbers

Оба варианта с использованием классов символов POSIX:

$ grep '^[[:digit:]][[:digit:]]*$' words >digits
$ grep -v '[[:alpha:]]' words >numbers

Update: Если вы хотите выбрать строки, содержащие числа с плавающей запятой, вы можете использовать (расширенное) регулярное выражение ^[+-]([0-9]*\.)?[0-9]+$:

$ grep -E '^[+-]?([0-9]*\.)?[0-9]+$' words >floats

Все сводится к тому, какого рода "число" мы ищем.

11
23.05.2017, 15:40
4 ответа

Ваша PS1 также дает мне черно-белый выход.

Однако переключение обратно на мой дает мне цвет, так что вы должны быть в состоянии понять разницу, я использую

$ echo $PS1
\[\033[01;31m\]\t \[\033[01;32m\]durrantm \[\033[02;36m\]\h \[\033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"` \[\033[00;33m\]$(git_branch)\[\033[00m\]\n\$

git_branch - это функция bash, которая у меня есть:

git_branch () { 
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}

Ваш против моего:

enter image description here

Это работает одинаково на OSX и Ubuntu

1
27.01.2020, 19:59

Мое решение этой проблемы заключалось в настройке

force_color_prompt=yes

в моем .bashrc. Теперь моя подсказка tmux имеет цвет.

21
27.01.2020, 19:59

На моей машине решение состоит в том, чтобы добавить

set -g default-terminal "xterm-256color"
с

по ~/.tmux.conf.

39
31.03.2020, 14:06

У меня возникла эта проблема при работе с Ubuntu 20.04.

В то время как ответ Панки сработал для меня, я обнаружил, что всегда указываю source ~/.bashrcвсякий раз, когда вхожу в оболочку Tmux после комментария evaristegd .

Вот как я это исправил:

Во-первых, создайте файл с именем .tmuxв домашнем каталоге вашего компьютера, то есть ~/.tmux.conf.

Затем поместите в него конфигурацию, которую вы хотите использовать для Tmux , и сохраните ее. Для меня конфигурация, которая мне была нужна, была такой же, как пакет экрана GNU , который поставляется по умолчанию с использованием Ubuntu, поэтому я скопировал содержимое файла ~/.bashrcв файл ~/.tmux.conf. Таким образом, если мне нужно отредактировать какую-либо конфигурацию для Tmux , я бы не стал вмешиваться в конфигурацию для экрана GNU .

Примечание.:Вы можете пропустить этот шаг и просто использовать файл ~/.bashrc, если вам не нужно разделение ответственности.

Затем добавьте файл в один из файлов ~/.bash_profile, ~/.bash_loginи ~/.profile. Его нужно добавить внизу файла:

source "$HOME/.tmux.conf"

ИЛИ

source "$HOME/.bashrc"

Вот пример:

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include.bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
   . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

source "$HOME/.tmux.conf"

Примечание.:Файл ~/.bash_profileимеет первый приоритет, затем файл ~/.bash_login— второй приоритет, а затем файл ~/.profile— последний приоритет.

Вот и все.

Надеюсь, это поможет

0
16.10.2020, 14:26

Теги

Похожие вопросы