用于tmux的Shell脚本w/zsh
我一直在youtube上观看,41:00时,他使用自己编写的命令(可用)。该脚本允许我们只需键入用于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
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
。