编辑

编辑

每次我尝试启动zsh它时tmux都会崩溃

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

答案1

当我在启动后打开 IntelliJ 内部的终端然后打开独立终端时,就会发生这种情况:

  • 如果我先打开独立终端,独立终端和 IntelliJ 的终端都可以正常工作。
  • 如果我首先打开 IntelliJ 的终端,独立终端和 IntelliJ 的终端都会失败并显示此消息:zsh-newuser-install: startup files exist, aborting

我发现的唯一解决方法是:

  1. 关闭所有终端并打开一个独立终端,该消息不应显示,然后虽然这个是开放的,打开IntelliJ终端,问题就不会再发生了。
  2. 在某些情况下,这种方法不起作用,因为我先打开了独立终端。在这种情况下,我会按照@rghamilton3 的建议去做:tmux kill-server然后再次执行 #1。

答案2

我知道这已经过时了,但我看到了关于它的新评论,我刚刚也遇到了这种情况。我刚刚通过运行关闭了服务器tmux kill-server,令人惊讶的是,它确实帮我解决了问题。当然,YMMV 可能有所不同,但希望它能帮助其他人。

答案3

一、zsh-newuser-install 函数应该仅在以下情况下运行:

1) 用户没有任何个人 zsh 启动文件(如 .zshrc)

2)如果你的.zshrc文件中出现以下几行:

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

3)如果手动运行相同的命令。

我会检查你的 .zshrc 文件以防万一。希望这能给你一个开始查找的地方。

我个人不会将 tmux 命令放在 .zshrc 文件的第一行,但这是我的个人观点。我认为使用变量TMUX不是确定 tmux 是否已在运行的最佳选择。您必须启动在 tmux 窗口/窗格中运行的 shell 才能TMUX设置变量。在我看来,结果tmux ls会是更好的选择。

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

由于我不知道您的使用情况,您可能不会选择这种方法。

相关内容