用于tmux的Shell脚本w/zsh

用于tmux的Shell脚本w/zsh,shell,console,zsh,tmux,Shell,Console,Zsh,Tmux,我一直在youtube上观看,41:00时,他使用自己编写的命令(可用)。该脚本允许我们只需键入tm即可管理所有tmux会话。例如: Available sessions ------------------ 1) test 2) New Session 3) zsh Please choose your session: 我试图在我的计算机上“安装”它,但无法使脚本正常工作。当我想使用这个程序时,它工作得很好。但是当我登录到一个会话并想退出这个会话时,我编写了一个普通的命令(tmux ki

我一直在youtube上观看,41:00时,他使用自己编写的命令(可用)。该脚本允许我们只需键入
tm
即可管理所有tmux会话。例如:

Available sessions
------------------

1) test
2) New Session
3) zsh
Please choose your session:
我试图在我的计算机上“安装”它,但无法使脚本正常工作。当我想使用这个程序时,它工作得很好。但是当我登录到一个会话并想退出这个会话时,我编写了一个普通的命令(
tmux kill session
),然后出现了一个很大的“混乱”:因为我编写了
tmux
(或
tm
),计算机认为我在调用这个程序。在第4行有一个条件,如果我已经在tmux会话中,脚本就会中止。因此,当我在会话中想要使用tmux命令时,它会中止。以下是我的.zshrc中的行:

alias tmux=".dotfiles/tmux/tmux_menu.zsh"
我如何解决这个问题

多谢各位

我可以通过添加“if”指令来修改.zshrc:if没有 参数,然后使用我下载的脚本。 否则,请使用tmux二进制文件

…这是在my.zshrc:
别名tmux=“~.dotfiles/tmux/tmux.zsh”

这是tmux.zsh:

#!/bin/sh
if [ -z $0 ]
then source ~/.dotfiles/tmux/tmux_menu.zsh
fi
另一个文件(显示菜单的文件)没有更改。现在,什么时候 我尝试运行命令
tmux
tm
,但什么也没发生。我不知道 怎么办

$0
不是命令参数-尽管在
man zshall
中没有说明,就像其他shell一样
$0
被设置为脚本的名称(
~/.dotfiles/tmux/tmux.zsh
)<代码>$1设置为第一个参数

我可以通过添加“if”指令来修改.zshrc:if没有 参数,然后使用我下载的脚本。 否则,请使用tmux二进制文件

…这是在my.zshrc:
别名tmux=“~.dotfiles/tmux/tmux.zsh”

这是tmux.zsh:

#!/bin/sh
if [ -z $0 ]
then source ~/.dotfiles/tmux/tmux_menu.zsh
fi
另一个文件(显示菜单的文件)没有更改。现在,什么时候 我尝试运行命令
tmux
tm
,但什么也没发生。我不知道 怎么办


$0
不是命令参数-尽管在
man zshall
中没有说明,就像其他shell一样
$0
被设置为脚本的名称(
~/.dotfiles/tmux/tmux.zsh
$1
设置为第一个参数。

我不认为使用此脚本有什么好处。您可以使用
tmux ls
获取会话列表,您可以使用
tmux new-s MySessionName
创建新会话。要附加到现有会话:
tmux att-t MyExistingSessionName
。要打开登录shell,请调用
zsh-l
。如果您想从该会话中关闭tmux会话,请关闭所有窗口或执行
kill session
@kba我知道,我只是觉得使用此脚本更舒服。而且我无法让它正常工作^^^如果您的别名覆盖了
tmux
,您可以通过预加
命令来强制zsh查找二进制
tmux
。例如,
命令tmux kill session
将执行
/usr/bin/tmux kill session
。尽管如此,我还是建议您将别名设置为其他名称(如
tmux menu
),以便您习惯真正工具的语法,尤其是在不同的机器上使用tmux时。@kba但这意味着我必须为m'y.zshrc中的每个tmux命令使用别名。我怎么能添加这样一个条件:“如果我在一个zsh会话中,或者如果命令中有一些参数,那么重写脚本”恐怕不能跟随你。如果创建别名
alias tmux=xyz
并在交互式shell中输入
tmux
,则别名将优先于
$PATH
中的条目。如果要忽略单个命令的别名,可以指定二进制文件的完整路径(
/usr/bin/tmux kill session
),或者如上所述,
命令tmux kill session
。我不认为使用此脚本有什么好处。您可以使用
tmux ls
获取会话列表,您可以使用
tmux new-s MySessionName
创建新会话。要附加到现有会话:
tmux att-t MyExistingSessionName
。要打开登录shell,请调用
zsh-l
。如果您想从该会话中关闭tmux会话,请关闭所有窗口或执行
kill session
@kba我知道,我只是觉得使用此脚本更舒服。而且我无法让它正常工作^^^如果您的别名覆盖了
tmux
,您可以通过预加
命令来强制zsh查找二进制
tmux
。例如,
命令tmux kill session
将执行
/usr/bin/tmux kill session
。尽管如此,我还是建议您将别名设置为其他名称(如
tmux menu
),以便您习惯真正工具的语法,尤其是在不同的机器上使用tmux时。@kba但这意味着我必须为m'y.zshrc中的每个tmux命令使用别名。我怎么能添加这样一个条件:“如果我在一个zsh会话中,或者如果命令中有一些参数,那么重写脚本”恐怕不能跟随你。如果创建别名
alias tmux=xyz
并在交互式shell中输入
tmux
,则别名将优先于
$PATH
中的条目。如果要忽略单个命令的别名,可以指定二进制文件的完整路径(
/usr/bin/tmux kill session
),或者如上所述,
命令tmux kill session