我开始在 Mac OS X 上使用 tmux 和 iTerm2。目前,我所有的标签都标题为“tmux”(假设它只是显示进程名称),这使得很难找到我想要的标签。如何配置 tmux(或 iTerm)以在选项卡中显示我的 tmux 会话的名称?
我看到很多关于如何将 vim 复制到系统剪贴板的解释(涉及 xclip for linux 或 pbcopy 或 OSX),但我想猛拉到 tmux 剪贴板。需要明确的是,我想要的是将光标放在一个单词上并点击类似的东西"*yiw,然后用 tmux 跳到另一个窗口(也许是我想为 curl 或 wget 粘贴一个大 URL 的窗口),然后按Ctrl-B ]粘贴(或使用您使用的任何 tmux 前缀键)。感谢任何人都可以提供的帮助。如果这是可能的,那就太棒了。
我正在尝试在 conemu 中通过 ssh (cygwin) 使用 tmux,并继续遇到以下问题。
我将从一个看起来不错的垂直拆分屏幕开始:

并切换到正确的拆分,按 Enter 几次,然后事情就会开始消失。

Conemu 处理 tmux 的方式有问题;如果我在 tmux 之外的 vim 中分屏,这工作正常,但在 tmux 中使用 vim 分屏再次中断(即使拆分是 vim 拆分,而不是 tmux 拆分)。这在 Cygwin 中得到了正确处理。
无论外壳如何,都会发生这种情况。我尝试注释掉我的 ~/.tmux.conf,但问题仍然存在。
tmuxcopy-mode提供了向上滚动窗口历史记录、直观地选择文本并将其复制到剪贴板的功能。一旦文本被复制,copy-modetmux 就会退出并返回到插入模式。
很多时候,我想要快速连续地从同一区域复制多段文本。由于 tmuxcopy-mode在每次选择后都会退出,我发现自己一次又一次地滚动回同一页面。
有没有办法防止 tmux执行copy-mode后退出?copy-selection
set -g <command>例如,我在 tmux 中看到了对
set -g status-right ' #[bg=colour33] Branch #[(git branch)] '
Run Code Online (Sandbox Code Playgroud)
我已经用谷歌搜索并查看了man tmux,info tmux但也找不到任何信息。
做set -g什么?
它是否以与 vim 使用的方式相同的方式设置变量:set <variable>?
如果是这样,它有-g什么作用?
我知道:swap-pane -U并且:swap-pane -D会向上或向下交换窗格,但我想要一个键绑定来左右交换窗格。
我能想到的唯一方法是首先确定当前窗格的窗格索引,然后运行:select-pane -Ror-L并确定其索引,最后运行:swap-pane -s (first pane index) -t (second pane index).
我只是不确定如何在其中执行此操作.tmux.conf- 是否可以使用在另一个命令中返回某些内容的子命令?
例如,这样的事情:
bind-key -n C-{ swap-pane -s **get current pane ID** -t **get pane ID of 'select-pane -L'**
bind-key -n C-} swap-pane -s **get current pane ID** -t **get pane ID of 'select-pane -R'**
我正在使用 tmux 2.1。我已经用谷歌搜索了这个,似乎我可以使用以下命令将一个窗口拆分为多个窗格:
tmux new-session \; split-window \; split-window -h \; split-window -v
Run Code Online (Sandbox Code Playgroud)
(不知道为什么 \; 是需要的,但它只适用于它)
我的问题是我想要的布局如下:
我可以实现这一点的唯一方法是水平创建 3 个窗口,然后返回中间窗口,然后拆分该窗口,我只能手动执行此操作。
有没有办法通过命令来做到这一点?谢谢!
我想使用 yum 在 redhat 6 机器上安装 tmux,但是这失败了,因为我没有 root 访问权限。关于如何在没有 root 访问权限的情况下在本地安装 tmux 的任何想法?
我想重新启动我的 zsh 会话,因为我保留了一个持久的 tmux 会话并且~/.zshrc经常更改并执行source ~/.zshrc. 但是我意识到随着时间的推移这会变慢(例如for i inseq 50; do source ~/.zshrc; echo "a"; done开始快速打印 'a' 并且很快变慢)。
我在这里阅读了重新启动 zsh 的建议,建议只需运行zsh或zsh -l. 但是,如果我这样做,我会创建一个“嵌套”zsh 会话,如果我理解正确的话。我的意思是:
# Simulate slowed zsh session
for i in `seq 50`; do source ~/.zshrc; echo "a"; done
# use zsh to make it faster "child" zsh
zsh
# confirm fast
source ~/.zshrc; # fast
# revert back to "parent" zsh
exit
# confirm old slow …Run Code Online (Sandbox Code Playgroud) 我可以成功启动/停止创建 tmux 会话的服务。服务如下:
test1.service:
[Unit]
Description=First test service
[Service]
Type=forking
User=lancer
ExecStart=/usr/bin/tmux new-session -s test1 -d
ExecStop=/usr/bin/tmux kill-session -t test1
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
$ sudo systemctl start test1.service
和
$ sudo systemctl stop test1.service
都成功了。现在我想要另一个 tmux 会话,我可以从另一个服务控制它。所以我创建了这个 test2.service:
[Unit]
Description=Second test service
[Service]
Type=forking
User=lancer
ExecStart=/usr/bin/tmux new-session -s test2 -d
ExecStop=/usr/bin/tmux kill-session -t test2
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
问题:两者中的任何一个都可以单独工作。我可以通过以下方式查看相应的 tmux 会话:
$ tmux ls
如果我启动其他服务,则不会发生任何情况。我只有之前的 tmux 会话。有人可以帮忙吗?