如果您使用Firefox浏览器,可以通过TextMate打开html页面中的链接,只要该链接具有以下格式:
<a href="txmt://open?url=file:///home/.../index.html.haml">View</a>
但是是否可以使用VIM来做类似的事情呢?也许像这样:
<a href="vim://open?url=file:///home/.../index.html.haml">View</a>
理想情况下,这将使用现有的VIM会话。
祝好,
伯尼
如果您使用Firefox浏览器,可以通过TextMate打开html页面中的链接,只要该链接具有以下格式:
<a href="txmt://open?url=file:///home/.../index.html.haml">View</a>
<a href="vim://open?url=file:///home/.../index.html.haml">View</a>
我找到了一种方法:
在Firefox中添加协议处理程序
打开Firefox并导航到about:config
添加以下键:
network.protocol-handler.warn-external.txmt boolean false
network.protocol-handler.external.txmt boolean true
#the last one is the path to the script we're about to create
network.protocol-handler.app.txmt string ~/protocol_handler/prot.sh
# I ended up needing this one as well on another machine, (no idea why)
network.protocol-handler.expose.txmt boolean false
创建脚本~/protocol_handler/prot.sh
将以下内容复制并粘贴到文件中:
#! /usr/bin/env ruby
file_result = ARGV[0].scan(/file\:\/\/((\w|\/|\.)*).*/)
file_path = file_result[0][0]
line_result = ARGV[0].scan(/\&\;line\=(\d*).*/)
if line_result
line = line_result[0][0]
system "gvim --remote-silent +#{line} #{file_path}"
else
system "gvim --remote-silent #{file_path}"
end
保存文件。
将文件模式更改为可执行:
$ chmod +x ~/protocol_handler/prot.sh
tmxt://
链接,我不得不使用 @Rystraum 的 相关答案 中的一个 bash 脚本,而不是 Ruby 中的 ~/bin/txmt_proto.bash
。#!/bin/bash
FILE=$1
FILE=$(echo $FILE | grep -o "file:/\/.\+" | cut -c 8- | sed -e 's/%2F/\//g')
LINE=$(echo $FILE | grep -o "\&line=[0-9]\+")
LINE=$(echo $LINE | grep -o "[0-9]\+")
FILE=$(echo $FILE | grep -o "\(.\+\)\&")
FILE=$(echo $FILE | cut -d'&' -f1)
gedit +$LINE $FILE
并将Firefox配置中的network.protocol-handler.app.txmt
更改为指向该脚本:
network.protocol-handler.app.txmt string ~/bin/txmt_proto.bash