Есть ли способ щелкнуть ссылку в Firefox и открыть файл в существующем сеансе VIM? - PullRequest
3 голосов
/ 05 июня 2010

Я знаю, что можно открыть ссылки на HTML-странице (скажем, если вы используете Firefox) с TextMate, если ссылка имеет этот формат:

<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.

Приветствия

Bernie

Ответы [ 3 ]

7 голосов
/ 05 июня 2010

Нашли способ сделать это:

Добавление обработчика протокола в Firefox

Откройте Firefox и перейдите к: 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(/\&amp\;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

Я не уверен, нужно ли вам перезапускать Firefox или нет.

Если вы действительно хотите использовать протокол "vim: //", просто измените окончание сетевых ключей с txmt на vim. Поскольку некоторые плагины Rails (а именно rails-footer) уже используют txmt, я просто использовал это, чтобы избежать перекодирования.

Веселись! Berns

1 голос
/ 05 июня 2010
0 голосов
/ 16 октября 2013

Чтобы получить tmxt:// ссылки, работающие с gedit, мне пришлось использовать bash-скрипт из связанного с @ Rystraum ответа вместо 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...