Я ищу функциональность, которая может быстро позволить мне выбрать команду из списка команд и вставить ее в командную строку. Префикс tmux += предоставляет буфер, из которого я могу выбрать и выбрать скопированный элемент, однако я ищу аналогичный способ работы со статическим списком команд и вставки по мере необходимости.

testcase: как только вы попали в tmux, используйте ярлык, чтобы открыть список команд (аналогично буферу tmux), выберите команду, нажмите enter, чтобы вставить ее в командную строку

1 ответ1

1

Это невозможно сделать в обычном tmux, но, к счастью, есть мод, позволяющий сделать это http://ershov.github.io/tmux/ (я автор).

Кроме того, он добавляет полноценную поддержку сценариев, позволяет связывать несколько команд 'mode', переменные, циклы и так далее.

В примере https://github.com/ershov/tmux/blob/master/example_tcl_tmux.tcl приведен пример, аналогичный тому, что вам нужно:

bind H tcl {
    if {[f #{pane_current_command}] eq "bash"} {
        choose-from-list -onselect {
            send-keys $_
        } -- {*}[
            lcomp {$x} for x in [
                split [read_file ~/.bash_history] "\n"
            ] if {[string range $x 0 0] ne "#"}
        ]
        end-of-list
        up
    } else {
        print "Bash?"
    }
}

Это связывание делает:

  1. Читает .bash_history делает список выбора из него
  2. После выбора отправляет строку в bash

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .