myscript.sh
",它的内容只是 echo $PWD
。我想在 bash
(gnome-terminal
)中将此脚本绑定到某个键组合上,这样当我按下这个键组合时,"myscript.sh
" 的输出将被插入(“粘贴”)到终端中光标的位置。显然,
bash
历史记录和行操作由 readline 处理,而我得到的有关 bash
键盘快捷键的参考资料确实引用了 readline
:
我还在 Bash 参考手册:Readline Init 文件语法 中看到,可以使用 bind -p
列出 bash
的键绑定(更多信息请参见 help bind
[不是 'man bind'])。所以,也许这个问题更好地称为“在 readline 中将宏绑定到自定义键盘快捷键”:) 但无论如何,我想知道我想要的是否可能实现?我猜另一种选择是将脚本设置为 "
pwd | xsel -b
",然后在终端中调用它,然后可以粘贴;但我仍然希望有一个单一的键盘快捷键,比如 Ctrl-Alt-H(似乎没有用于任何东西),当按下时立即插入/粘贴脚本输出。提前感谢您的帮助!
svn ci -m "myproject-folder-0012a: here a commit message"
但这正是我不喜欢的——首先我打出11个字符,这些字符相当快:
svn ci -m "
然后,我无法使用自动完成获取名称(我在文件夹内)-这意味着我要么必须完全输入它(没有办法:),要么从提示中复制粘贴它(这需要选择-按鼠标,拖动,释放鼠标;然后Ctrl + Shift + C,然后Ctrl + Shift + V,再加上任何左/右键,如果我错过了对齐-再加上删除等,如果我复制错误)。
这意味着为了得到该死的提交消息的该死的文件夹名称,要做这么多工作:(我更愿意按下类似于Ctrl-Alt-H的某些键,然后将文件夹名称自动插入到光标位置,并完成它:)
我对xsel的建议仅是因为我可以将其放入“全局”脚本中-比如将其作为符号链接到/usr/bin/myscript(显然,脚本的内容是echo $(basename $PWD)而不仅仅是pwd,以满足我的需求),然后我可以执行:
$ myscript # this puts directory name in clipboard
$ svn ci -m "[CTRL+SHIFT+V TO PASTE HERE]myproject-folder-0012a[NOW TYPE]: here a commit message"
...这在某种程度上减轻了工作量,但我仍然需要记住脚本名称并调用它,在输入svn
命令之前(而我并不总是记得...)而且我仍然需要调用一个命令,然后按下一组键;为什么我不能只按一组键,就完成了呢?!:)
好的,希望这更清楚地阐明了我的问题....
EDIT2:然而,另一个使用bash
键盘快捷键有用的原因是,我还可以在终端程序中“粘贴/插入当前目录名称”,比如像nano
这样的程序(在那里,直接使用bash
脚本或函数扩展可能更加困难)。
svnci() { svn ci -m "$PWD: $1" "${@:2}" ; }
。在使用时,输入$ svnci "提交信息" <其他svn参数>
。 - camhsvn
,但至少对于git
来说,这将是相当无意义的。 - MestreLion