Zsh расширяет псевдоним до результата функции в виде строки

Действительно причудливое название, я знаю. В общем, у меня это:

 alias vv="xclip -selection clipboard -o"

который выводит что-либо из моего буфера обмена, например, расположение репозитория в форме ssh ([email protected]/repname.git). Теперь я хотел бы:

 git clone vv

Я попробовал несколько вариантов описанного выше, например, пробовал разные переключатели псевдонима или использовал разные расширения, но безуспешно.

Какие-либо предложения?


person mirandalol    schedule 03.07.2013    source источник


Ответы (1)


Глобальный псевдоним может сделать это... на самом деле он это делает:

alias -g vv="$(date)" # replace 'date' with your command of choice

Уведомление:

  1. это глобальный псевдоним, поэтому он работает в любом месте командной строки (не только в начале)
  2. $(...) выполнит подстановку команд и расширит ее как переменную, см. man zshexpn и найдет $(...). По умолчанию zsh не искажает результаты, используя пробелы.

[...]

Сначала я написал предложение создать (zsh) виджет для вставки буфера обмена в командную строку с заданной комбинацией клавиш, затем я понял, что вы, скорее всего, нажмете «Ctrl-Shift-V» или что-то в этом роде... :-S

[...]

К вашему сведению, вот как вы могли бы сделать это с помощью виджета zsh:

который вставляет содержимое буфера обмена в командную строку и привязывает его к какой-либо клавише, так как это позволит вам увидеть, что вы делаете, прежде чем нажать Enter. Поместите следующее в свой $fpath внутри файла с именем insert-clipboard (должен быть загружен с набором KSH_AUTOLOAD)

#! /bin/zsh
## Inserts the output of the command into the cmd line buffer
zmodload -i zsh/parameter

insert-clipboard() {
   LBUFFER+="$(date)" # REPLACE date BY YOUR COMMAND!
}

В вашем .zshrc

autoload insert-clipboard # as written, it needs KSH_AUTOLOAD set....
zle -N insert-clipboard
bindkey '^Xu' insert-clipboard # pick a key combination you like...
person Francisco    schedule 03.07.2013
comment
Ага! Это оно. Ctrl-Shift-V убивает мои суставы, я скорее набираю две буквы. Не могли бы вы объяснить\ссылку на веб-сайт, почему он так работает? - person mirandalol; 03.07.2013
comment
о, и вы должны +1 мой ответ ;-) - person Francisco; 03.07.2013
comment
Как только репутация позволит. - person mirandalol; 03.07.2013
comment
ой, извините, не заметил. - person Francisco; 03.07.2013
comment
Франсико, как я могу связать вставку-буфер обмена с чем-то вроде vv? - person mirandalol; 28.07.2013