在Pentadactyl:在命令中使用当前选项卡的 url我学会了如何创建一个使用当前缓冲区 URL 的命令。我用它来重写 URL 以使用假设“通过假设”代理:
map -builtin <C-x><C-V> :execute ':open http://via.hypothes.is/' + buffer.URL
但是当我按下时,C-xC-V我看到整个命令打印在“回显区域”中:
:execute ':open http://via.hypothes.is/' + buffer.URL
有没有办法让打印输出更简洁,以便整个命令都有类似的“别名” :via
?
答案1
定义别名
最简单的方法是给该命令的别名并映射键绑定以调用该别名。
command! via :execute ':open http://via.hypothes.is/' + buffer.URL
map -b <C-x><C-V> :via
然后,您可以使用键绑定或在命令行上通过其别名执行该命令via
。
立即执行命令
话虽如此,您真的需要在命令行上打印命令并等待您按下 吗Enter?一个更好的解决方案是,当您执行键绑定时立即执行命令。您可以通过以下任一方式执行此操作:
添加
<CR>
到您执行的命令的末尾map <C-x><C-v> :via<CR>
(该解决方案可移植至 Vimperator);或
使用
-ex
该map
命令的选项。map <C-x><C-v> -ex via
执行命令并打印消息
如果由于某种原因您不想要实际的别名,而只是希望在回显区域中打印“via”时执行命令,则可以使用如下绑定:
map <C-x><C-V> -js
\ dactyl.open('http://via.hypothes.is/' + buffer.URL);
\ commandline.echo('via',commandline.HL_INFOMSG);
\ setTimeout(function(){ commandline.echo('', commandline.HL_INFOMSG); }, 500);
末尾500
是消息消失前的延迟时间(以毫秒为单位)。如果您希望消息一直保留到您输入新命令或更改选项卡,只需完全删除最后一行即可。