7

Каждый раз , когда я пытаюсь запустить zsh внутри tmux он выходит из строя рения W

zsh-newuser-install:  startup files exist, aborting

Он работал безупречно вчера вечером, и внезапно этим утром ничего не работает ...

Я запускаю tmux с этой строки как первый в .zshrc:

if [ "$TMUX" = "" ]; then tmux; fi

Спасибо!

Мой файл zshrc :https://github.com/Richard87/oh-my-zsh/blob/master/templates/zshrc.zsh-template

РЕДАКТИРОВАТЬ

Это внезапно начало работать снова ... Я не знаю, что изменилось, или что не так ... поцарапайте, он снова перестал работать

РЕДАКТИРОВАТЬ № 2

На том же компьютере он работает для пользователя root, но не для моего основного пользователя (файлы .zshrc точно такие же, единственное отличие состоит в том, что у моего собственного пользователя есть специальный файл конфигурации tmux:

# set Zsh as your default Tmux shell
set-option -g default-shell /bin/zsh

# Tmux should be pretty, we need 256 color for that
set -g default-terminal "screen-256color"


# Tmux uses a 'control key', let's set it to 'Ctrl-a'
# Reason: 'Ctrl-a' is easier to reach than 'Ctrl-b'
set -g prefix C-a
unbind C-b

# command delay? We don't want that, make it short
set -sg escape-time 1

# Set the numbering of windows to go from 1 instead
# of 0 - silly programmers :|
set-option -g base-index 1
setw -g pane-base-index 1


# Allow us to reload our Tmux configuration while
# using Tmux
bind r source-file ~/.tmux.conf \; display "Reloaded!"

# Getting interesting now, we use the vertical and horizontal
# symbols to split the screen
bind | split-window -h
bind - split-window -v

3 ответа3

6

Это происходит со мной, когда после загрузки я открываю терминал внутри IntelliJ перед открытием автономного терминала:

  • Если я сначала открою автономный терминал, то и автономный, и IntelliJ работают хорошо.
  • Если я сначала открою терминал IntelliJ, то и автономный, и терминал IntelliJ не смогут отобразить это сообщение: zsh-newuser-install: startup files exist, aborting .

Единственный обходной путь, который я нашел к этому:

  1. Закройте все терминалы и откройте автономный терминал, сообщение не должно отображаться, затем, пока оно открыто, откройте терминал IntelliJ и проблема больше не возникнет.
  2. В некоторых случаях это не помогло, потому что я сначала открыл автономный терминал. В этом случае я делаю то, что предлагает @ rghamilton3: tmux kill-server а затем снова делаю №1.
2

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

1

Во-первых, функцию zsh-newuser-install следует запускать только в том случае, если:

1) У пользователя нет личных файлов запуска zsh (например, .zshrc)

2) Если в вашем файле .zshrc появляются следующие строки:

autoload -Uz zsh-newuser-install
zsh-newuser-install -f

3) Если те же команды запускаются вручную.

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

Лично я бы не поместил команду tmux в первую строку файла .zshrc, но это мое личное мнение. Я считаю, что использование переменной TMUX - не лучший выбор для определения, запущен ли tmux. Вам нужно будет запустить оболочку, запущенную в окне / панели tmux, чтобы установить переменную TMUX . Результаты tmux ls были бы лучшим выбором на мой взгляд.

Var=("${(f)$(tmux ls)}")
[ ${#Var} -eq 0 ] && tmux

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .