tmuxcopy-mode提供了向上滚动窗口历史记录、直观地选择文本并将其复制到剪贴板的功能。一旦文本被复制,copy-modetmux 就会退出并返回到插入模式。
很多时候,我想要快速连续地从同一区域复制多段文本。由于 tmuxcopy-mode在每次选择后都会退出,我发现自己一次又一次地滚动回同一页面。
有没有办法防止 tmux执行copy-mode后退出?copy-selection
我正在使用 tmux 2.1。我已经用谷歌搜索了这个,似乎我可以使用以下命令将一个窗口拆分为多个窗格:
tmux new-session \; split-window \; split-window -h \; split-window -v
Run Code Online (Sandbox Code Playgroud)
(不知道为什么 \; 是需要的,但它只适用于它)
我的问题是我想要的布局如下:
我可以实现这一点的唯一方法是水平创建 3 个窗口,然后返回中间窗口,然后拆分该窗口,我只能手动执行此操作。
有没有办法通过命令来做到这一点?谢谢!
我正在尝试通过has-session命令确定 tmux 会话是否存在。
如果我有一个名为abcdf的会话:
adm@VirtualBox:/$ tmux -V
tmux 2.1
adm@VirtualBox:/$ tmux ls
abcdf: 1 windows (created Fri Feb 3 16:19:20 2017) [237x56] (attached)
Run Code Online (Sandbox Code Playgroud)
has-session命令将返回名为a、ab、abc、abcd、abcdf 的会话存在(错误代码=0)
adm@VirtualBox:/$ tmux has -t a
adm@VirtualBox:/$ echo $?
0
adm@VirtualBox:/$ tmux has -t ab
adm@VirtualBox:/$ echo $?
0
adm@VirtualBox:/$ tmux has -t abc
adm@VirtualBox:/$ echo $?
0
adm@VirtualBox:/$ tmux has -t abcd
adm@VirtualBox:/$ echo $?
0
adm@VirtualBox:/$ tmux has -t …Run Code Online (Sandbox Code Playgroud) 我想使用 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 会话。有人可以帮忙吗?
一个典型的例子是在 vim 中编辑配置文件并无意中将其打开。然后你开始你的工作,在不同的 Tmux 会话中切换,最终从另一个会话编辑同一个文件,vim 会告诉你一个 .swp 文件已经存在。
现在,您如何找到另一个打开文件的 vim 所在的 Tmux 会话?Findw 似乎只搜索活动会话窗口。
我已经玩了几天了,所以我确定我错过了一些简单的东西。喜欢 tmux。使用它进行开发并拥有如此多的窗口,我需要一种更好的方法在状态栏和缓冲区列表中区分它们。看到“bash”和“vim”的列表根本没有帮助。而且由于它们都在同一主机上 - 现在不要关心主机名。
我想显示当前的工作目录,以及正在处理的文件。例如,当我查看当前看到的缓冲区列表时:
(0) 0: vim [100x44] (1 个窗格) "murph"
(1) 1: vim [100x44] (1 个窗格) "murph"
(2) 2: bash- [100x44] (1 个窗格) "murph"
( 3) 3: bash* [100x44] (1 个窗格) "murph"
这是我想看到的
0:vim main.py ~/devl/project1
1:vim index.html ~/devl/samples/staticfiles
2:bash ~/devl/sandbox
3:bash ~/.vimrc
我想在每个单独窗口的状态栏中看到类似的信息。虽然我能够让 PWD 显示在窗口的状态栏中,但它只是启动 tmux 的工作目录。当我更改目录时,这没有任何帮助。
我希望这可以在没有一堆脚本的情况下完成。
谢谢大家。
在 GNU 屏幕中,我可以在命令之间按住Ctrl+ a。
例如,要更改窗口,我一直按住Ctrl+a并一直按n而不松开Ctrl+ a。
这在 tmux 中可行吗?目前我需要在命令之间释放Ctrl+ a。
(顺便说一句,我将默认前缀从Ctrl+更改b为Ctrl+ a)
假设我目前的工作目录是 /home/abc/documents/xyz。现在在 tmux 中,当我拆分屏幕时,新窗格默认为 /home/abc 目录。我希望在拆分时保留密码。