16

刚刚安装了 tmux homebrew,我正在尝试找到系统范围的 tmux 配置文件。手册页声明系统范围的文件应该位于 中/etc/tmux.conf,但由于某种原因,它不存在。tmux.conf默认文件在哪里?

注意:当前运行 OSX Mavericks

4

6 回答 6

16

据我所知,通过自制软件安装的 tmux 没有系统范围的 conf 文件。如果您确实需要一个,您可以在/etc/tmux.conf. 但是,我想知道是否需要这样做。我把我的配置放进去~/.tmux.conf,一切都很开心。

有一个/usr/local/Cellar/tmux/1.8/etc目录,但它包含 bash 完成脚本。我还检查usr/local/etc了它没有安装配置。

在这一点上,我非常有信心通过 homebrew 安装的 tmux 安装程序不会安装它自己的系统范围的配置文件,而是将其作为系统管理员的练习,如果需要这样的功能。

于 2013-11-12T03:54:35.473 回答
4

默认情况下,tmux 没有可编辑的系统范围配置。它已被纳入程序。

使用这些命令列出已编译的默认值,然后为您的用户制作您自己的文件。

tmux list-keys         # show current bindings

tmux show-options -s   # show current server options

tmux show-options -g   # show current global session options
tmux show-options      # show current session options

tmux show-options -gw  # show current global window options
tmux show-options -w   # show current window options

使用 tmux 1.7,show-options 还可以显示单个选项的值(以前的版本只能列出指定类的所有选项):

tmux show-options -gw window-status-format
于 2016-07-29T14:18:55.933 回答
2

您应该在以下方面找到有用的东西:

/usr/share/doc/tmux/examples

最新版本的 tmux 只有示例 conf 文件,这不是 OSX 问题,只是新的默认 tmux 打包。因此,您可以使用其中的任何一个来执行以下操作:

$cp /usr/share/doc/tmux/examples/someconffile.conf ~/.tmux.conf

应该这样做。

于 2013-12-09T06:52:31.327 回答
2

man tmux页面:

     -f file       Specify an alternative configuration file.  By default, tmux loads the system configuration file from /usr/local/etc/tmux.conf, if present, then looks for a user configuration file at
                   ~/.tmux.conf.

如果没有文件,您可以创建一个使用touch ~/.tmux.conf并编写任何您想要的文件。

于 2019-11-05T06:57:46.083 回答
0

“我会尝试一下。这里有一些我想不到的解决方案。我不运行 Mac,但我运行 RH、Debian、FreeBSD、Solaris、CYgwin 和其他东西。

我的理解直接来自man tmux. 该-f标志将指定一个替代配置文件。默认情况下,tmux从 加载系统配置文件/etc/tmux.conf(如果存在),然后在 中查找用户配置文件~/.tmux.conftmux配置文件是服务器首次启动时按顺序执行的一组命令。

#!/usr/bin/env bash

unset temporary_array_tmp ; declare -a temporary_array_tmp
temporary_array_tmp=(/etc/tmux.conf ~/.tmux.conf)

# The next line creates an empty global and personal configuration file,
# if it individually does NOT exists.

for i_tmp in "${temporary_array_tmp[@]}" ; do
    [[ ! -f "${i_tmp}" ]] && \
        touch "${i_tmp}" && \
        echo -en "I created an empty tmux configuration file @ ${i_tmp}.  " && \
        echo -e "You need to add configuration settings to ${i_tmp} ." || \
        echo -e "The tmux configuration file ${i_tmp} already exists."
done

# After you add configuration settings, then you need
# to tell tmux to reload the files.

for i_tmp in "${temporary_array_tmp[@]}" ; do
    [[ -f "${i_tmp}" ]] && \
        tmux source-file "${i_tmp}" && \
        echo -e "${i_tmp} The tmux configuration file ${i_tmp} is loaded." || \
        echo -e "The tmux configuration file ${i_tmp} is NOT loaded."
done
unset temporary_array_tmp

值得一提的注意事项

接下来,您可以使用find. 例如:

find ~/ /etc /usr -iname *tmux*
于 2013-12-10T10:32:20.647 回答
0

Alon Gouldman 的回答对我有用。只是添加到它:

我在 Ubuntu 20.04 上工作时遇到了这个问题。

这是我解决它的方法

首先,如果在您的主目录中找不到任何 tmux 的配​​置文件,则使用以下命令在您的( ~) 目录中创建一个:

touch ~/.tmux.conf

接下来,要使文件在您启动Tmux会话时始终可用,请将文件添加到~/.bash_profile~/.bash_login~/.profile文件中。它应该添加到文件的底部:

source "$HOME/.tmux.conf"

这是一个例子:

# ~/.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最后文件为最后优先。

就这样。

我希望这有帮助

于 2020-10-16T14:32:29.837 回答