Как написать многострочный if-shell в tmux - PullRequest
0 голосов
/ 06 мая 2020

Я получаю сообщение об ошибке в последней строке этого кода, и я точно не знаю, что это такое, но, вероятно, это связано с кавычками. Я хочу знать, какие кавычки мне нужно использовать, если я собираюсь вложить одну в другую. Могу я написать как внешние, так и внутренние кавычки в двойных кавычках, или мне нужно их чередовать, или что?

if-shell "uname | grep -q Darwin" ' \
    bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel 'tmux save-buffer - | reattach-to-user-namespace pbcopy'; \
    bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"; \
    bind C-v run "tmux set-buffer $(reattach-to-user-namespace pbpaste); tmux paste-buffer"' ' \
    bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "xclip -selection clipboard -in"'

Изменить: теперь он работает. Или хотя бы Linux или еще часть работает. Я не тестировал Ma c или настоящую часть. Мне нужно знать, почему это работает так, а не как раньше:

if-shell "uname | grep -q Darwin" " \
    bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel 'tmux save-buffer - | reattach-to-user-namespace pbcopy'; \
    bind C-c run 'tmux save-buffer - | reattach-to-user-namespace pbcopy'; \
    bind C-v run 'tmux set-buffer $(reattach-to-user-namespace pbpaste); tmux paste-buffer'" " \
    bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel 'xclip -selection clipboard -in'"

1 Ответ

0 голосов
/ 06 мая 2020

вы можете, например:

if-shell true { cmd1; cmd2 }

или

if-shell true {
cmd;cmd;
}

Это объяснено на странице руководства.

...