Git Product home page Git Product logo

Comments (28)

lonnywong avatar lonnywong commented on July 3, 2024

你用的是什么终端?iTerm2 ?

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

你用的是什么终端?iTerm2 ?

我用的是Alacritty, iTerm2偶尔会用
如果只考虑支持 Tmux环境下的多开, 我感觉与用什么终端关系不大的

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

如果是 iTerm2 的话,可能 https://github.com/wouterdebie/i2csshhttps://github.com/kamranahmedse/itomate 会是你想要的。

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

如果是 iTerm2 的话,可能 https://github.com/wouterdebie/i2csshhttps://github.com/kamranahmedse/itomate 会是你想要的。


我看了这两个项目的演示, 属于非 Tmux 原生的 Windowpane多开, 我用 Tmux 主要还是用它原生的功能, 没有用它与终端软件集成的一些功能. 如果考虑终端软件多开 Tab 可能就复杂了, 只考虑Tmux 环境下多开就有统一性的接口

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

感觉像你那样写个脚本,一键打开自己想登录的服务器,会比手工选择快很多吧?
一般常用的也不太多,写几个脚本,并且设置好 alias 就可以了?

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

感觉像你那样写个脚本,一键打开自己想登录的服务器,会比手工选择快很多吧? 一般常用的也不太多,写几个脚本,并且设置好 alias 就可以了?


我那个脚本是交互式的, 需要按下Tab键选中要同时登录的主机, 我是想如果tssh 能原生支持就更好了
临时需要对一批机器同时执行相同的指令, 如果能同时登录并在一个TmuxWindow 开启同步操作是非常方便的

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

意思是输入一次命令,在多个服务器中都执行?那感觉和 https://github.com/wouterdebie/i2cssh 很像。

tssh 要支持的话,还没想好怎么做。一般来说每个 tssh 进程都独立连接一台服务器,要接受一次输入多处执行,就得有个 master 进程专门来接收输入,然后分发给其他 tssh 进程。如果 tssh 一个进程直接连接很多台服务器,那多窗口问题又很不好实现了。

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

意思是输入一次命令,在多个服务器中都执行?那感觉和 https://github.com/wouterdebie/i2cssh 很像。

tssh 要支持的话,还没想好怎么做。一般来说每个 tssh 进程都独立连接一台服务器,要接受一次输入多处执行,就得有个 master 进程专门来接收输入,然后分发给其他 tssh 进程。如果 tssh 一个进程直接连接很多台服务器,那多窗口问题又很不好实现了。


可以先不用考虑那么复杂
我的想法是: tssh 可以支持 交互式多选,然后侦听用户按键,如果是用户选中了多个主机名并按下了回车键就调用tmux接口打开 Tmux 的多个window,如果是用户选中了多个主机名并按下了Ctrl+Enter就调用tmux接口在 Tmux 的一个 Window 中打开多个pane

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

可以先不用考虑那么复杂
我的想法是: tssh 可以支持 交互式多选,然后侦听用户按键,如果是用户选中了多个主机名并按下了回车键就调用tmux接口打开 Tmux 的多个window,如果是用户选中了多个主机名并按下了Ctrl+Enter就调用tmux接口在 Tmux 的一个 Window 中打开多个pane

这样的话,感觉都不需要多选。当前在哪一个,按下 ctrl + enter 就直接打开一个 tmux 的 window。然后再移到另一个,再按下 ctrl + enter 再打开一个 tmux 的 window ?pane 的话,再选另外一个快捷键?

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

这样的话,感觉都不需要多选。当前在哪一个,按下 ctrl + enter 就直接打开一个 tmux 的 window。然后再移到另一个,再按下 ctrl + enter 再打开一个 tmux 的 window ?pane 的话,再选另外一个快捷键?


这种操作逻辑也可以,我是习惯 fzf 多选模式的那种,一次选中多个,一次确认按键打开多个windowpane

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

选中时,至少要按一次键,还不如按这个键时直接打开,这样实现会简单一些。

不过,选中的快捷键可能只是一个普通按键( 如空格键 ),而打开的按键是一个组合键,这些使用的体验上会有一些区别。

现在用的是 https://github.com/manifoldco/promptui 这个组件,没找到多选的用法,多选再一次打开的实现会难很多。

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

现在用的是 https://github.com/manifoldco/promptui 这个组件,没找到多选的用法,多选再一次打开的实现会难很多

看了这个 promptui 项目,感觉已经不维护了,我找到了一个支持多选的 go 库,支持多选单选,目前在积极开发中
https://github.com/fzdwx/infinite

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

https://github.com/go-survey/survey 这个也可以。

不过,我感觉自己改造一下 promptui 的可控性会更好一些,例如:https://liza.io/implementing-multiple-choice-selection-in-go-with-promptui/

另外,如果是打开 new-window 还好。如果是打开 pane 又如何布局呢,可以左右分,又可以上下分,选择多个时如何分呢?

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

如果是打开 pane 又如何布局呢,可以左右分,又可以上下分,选择多个时如何分呢?

默认布局为平铺均分整个window,优先左右均分,然后上下均分,即尽量让每个pane都是均等的
可以设定横向或纵向最多均分多少份,比如默认最多3等份

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

列举一下选中不同数量时,tmux split-window 的例子?好像还得移动到另一个 pane 去,才能再次 split ?在原来的 pane 可以再次 split 其他的 pane 吗,至少得知道其他 pane 的编号吧?

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

我知道了,分 pane 时可以随便分,分完之后,再执行一下 tmux select-layout tiled 就好了。举例:

tmux split-pane sh \; split-pane bash \; split-pane zsh \; select-layout tiled

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

我知道了,分 pane 时可以随便分,分完之后,再执行一下 tmux select-layout tiled 就好了。举例:

tmux split-pane sh \; split-pane bash \; split-pane zsh \; select-layout tiled

嗯嗯,这种方式就很容易实现平铺布局

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

不过,tmux select-layout tiled 优先上下分,然后才是左右分,我觉得这样不太好。

例如 6 个时,现在 tmux 是这样分的:

---------
| 1 | 2 |
---------
| 3 | 4 |
---------
| 5 | 6 |
---------

我觉得下面这样分会更好一些:

-------------
| 1 | 2 | 3 |
-------------
| 4 | 5 | 6 |
-------------

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

还有 8 个时,我也觉得上下两行,每行 4 个会更好一些,如:
https://stackoverflow.com/questions/53433705/tmux-8-pane-sane-tiled-layout

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

还有 8 个时,我也觉得上下两行,每行 4 个会更好一些,如: https://stackoverflow.com/questions/53433705/tmux-8-pane-sane-tiled-layout


目前大多数一次打开最多6个主机,8 个就没考虑过,6个的话,两行三列貌似有点不太好实现排列,对我来说,三行两列也能接受

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

v0.1.8 已支持,用法请参考文档 批量登录

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

v0.1.8 已支持,用法请参考文档 批量登录


太棒了👍,感谢大佬的支持
还有一些快捷操作的建议:
image
上图中,希望能支持Ctrl+a全选,Ctrl+v反选,
另外希望能增设Ctrl+x来选中条目,空格键在这个地方就不好使了,和Ctrl/Alt的组合键,在 Mac 下可能和用户已有的冲突(Ctrl+Space:切换输入法,Alt+Space:Monica,一个 AI 工具),
还有选中一个条目后,自动移动到下一个条目上

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

1、Ctrl + ACtrl + O 全选或反选当前页的,可以搞;要全选上一页或下一页( 未显示出来的那些)就太多了,感觉没必要。不用 Ctrl + V,因为这和 Windows 的粘贴键冲突了 。

2、Ctrl + X 也可以选中或反选当前条目,也可以搞;另外,我觉得现在的搜索不是很好用,想在搜索时按下一次 Enter 就锁定当前搜索结果,切换到类似未搜索时那样操作;Ctrl + E 可以取消锁定的搜索结果,恢复显示全部列表。

3、选中之后自动移到下一项,这个感觉不太好,会让人以为是 bug。另外可能是误选了,只要再按一次就能恢复,自动移动了就没那么方便了。space + j + space + j + ... 这样操作起来也很快了,感觉没必要再自动到下一项。

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

Ctrl + E 可以取消锁定的搜索结果,恢复显示全部列表

这个是指: 清空键入的搜索关键词,恢复到为未搜索的状态是吧 ,这个可以安排用Ctrl+u键,符合 shell终端按键的默认风格

选中之后自动移到下一项,这个感觉不太好,会让人以为是 bug。另外可能是误选了

这个可能让新手有这种感觉,但是用户一旦熟悉后,就不会有这种错觉,反而觉得体验更好。选中一个条目一般来说是一个比较明确的操作,再次按下Space取消选中的频率不会很高

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

这个是指: 清空键入的搜索关键词,恢复到为未搜索的状态是吧 ,这个可以安排用Ctrl+u键,符合 shell终端按键的默认风格

Ctrl + U ( up ) 是 vim 的往上翻半页快捷键,这个我已经用作往上翻页了。

这个可能让新手有这种感觉,但是用户一旦熟悉后,就不会有这种错觉,反而觉得体验更好。选中一个条目一般来说是一个比较明确的操作,再次按下Space取消选中的频率不会很高

移动还是要有明确的操作会好一些。你可以去编译 Linux 内核,试试 make menuconfig 的操作。

from trzsz-ssh.

boomker avatar boomker commented on July 3, 2024

Ctrl+wCtrl+T对选中的单一条目也支持一下新窗口或新标签打开吧
image

当检索后只有一个条目时,直接自动选中它

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

1、选中单一条目时,如果以新窗口或 tab 打开,剩下原来的 tssh 进程就很尴尬了。tmux 和其他的终端都有新开一个窗口或 tab 的快捷键,建议先自己开好新窗口或 tab,然后再运行 tssh 程序。

2、只剩下一个时,未必就是用户想要的,有可能只是输入了某个错误的字母,我认为不应该代替用户做选择。

from trzsz-ssh.

lonnywong avatar lonnywong commented on July 3, 2024

@boomker 全选 Ctrl + A,反选 Ctrl + O,选中或取消 Ctrl + X,这三个功能已实现,具体用法可参考 快捷键

v0.1.9 发布之前,可以 go install github.com/trzsz/trzsz-ssh/cmd/tssh@main 这样先安装试用。

from trzsz-ssh.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.