matchit
плагин (см. :help matchit-install
для инструкций).:filetype plugin on
). Впредь, каждый раз, когда Вы редактируете файл, обнаруженный как xml
или html
или некоторый другой основанный на теге язык разметки, комбинация matchit
плагин и файлы плагина типа файла позволят %
движение соответствовать открытым и близким тегам.
Для ответа на первый вопрос, я хотел бы подсказать Вы --query
:
--query name
Display information about the link group like --display does, but in a machine parseable way (see section QUERY FORMAT below).
Вооруженный этим Вы получите источник ссылки, например, в моем случае для Java:
usr@srv % update-alternatives --query java
Name: java
Link: /usr/bin/java
[...]
Так, Вы видите, что моя цепочка идет как /usr/bin/java -> /etc/alternatives/java -> ...
.
К сожалению, у меня нет ответа на Ваш второй вопрос. Я искал решение для этого некоторое время назад, но кажется, что нет никакого простого обходного решения, еще. То, что Вы могли сделать, пишет некоторый взлом для парсинга вывода --query
звоните, возможно, как это:
update-alternatives --query java | /bin/grep Link | cut -f 2 -d " "
который Вы могли затем использовать в качестве входа для --install
звонить. Но так как это довольно грязно, по-моему, я не рекомендую это. Вместо этого Вы могли бы хотеть взглянуть на galternatives
, фронтенд к системе альтернатив. Даже если мне не нравится использовать графический материал для таких основных заданий, это довольно удобно, и я закончил тем, что использовал этот инструмент вместо инструментов командной строки.
Править
Мне было любопытно как update-alternatives
знает то, что является символьной ссылкой команды и бросило короткий взгляд в источники. Конечно, система альтернатив должна сохранить конфигурацию для каждой группы, и оказывается, что она назвала административный каталог и записала на странице справочника ;-)
Вы найдете эту информацию в /var/lib/dpkg/alternatives
(по умолчанию). Вторая строка в каждом из этих файлов определяет основное звено, которое Вы ищете. Можно извлечь его как это:
usr@srv $ sed -ne 2p /var/lib/dpkg/alternatives/java
/usr/bin/java
Однако это - просто обходное решение для тех, которые имеют более старую версию update-alternatives
.
Простой вопрос: Разве <ссылка>
не будет всегда той же самой, которая извлекается простым which [program]
, поскольку это ссылка, которую система использует для вызова программы из командной строки?
Например, отследив ссылки для pycharm, я получаю:
user@computer:~$ which pycharm
/usr/bin/pycharm
user@computer:~$ ll /usr/bin/pycharm
lrwxrwxrwx 1 root root 25 Mar 12 2015 /usr/bin/pycharm -> /etc/alternatives/pycharm*
user@computer:~$ ll /etc/alternatives/pycharm
lrwxrwxrwx 1 root root 43 Mar 12 2015 /etc/alternatives/pycharm -> /opt/pycharm-community-4.0.5/bin/pycharm.sh*
И я могу использовать:
sudo update-alternatives --install /usr/bin/pycharm pycharm /opt/pycharm-community-4.5.0/bin/pycharm.sh 0
Для моей новой установки pycharm.
Тогда, возможно, вы могли бы создать сценарий для использования вывода which
.
При установке --вам не нужно пополнять все существующие альтернативы. См. пример вhttps://wiki.debian.org/DebianAlternatives. Здесь я добавляю /usr/local/bin/alacritty в качестве альтернативы эмулятору x -terminal -и выбираю его:
[schwarzgerat](0) $ sudo update-alternatives --install /usr/bin/x-terminal-emualtor x-terminal-emulator /usr/local/bin/alacritty 10
update-alternatives: renaming x-terminal-emulator link from /usr/bin/x-terminal-emulator to /usr/bin/x-terminal-emualtor
[schwarzgerat](0) $ sudo update-alternatives --config x-terminal-emulator
There are 16 choices for the alternative x-terminal-emulator (providing /usr/bin/x-terminal-emualtor).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/terminator 50 auto mode
1 /usr/bin/gnome-terminal.wrapper 40 manual mode
* 2 /usr/bin/kitty 20 manual mode
3 /usr/bin/koi8rxterm 20 manual mode
4 /usr/bin/konsole 40 manual mode
5 /usr/bin/lxterm 30 manual mode
6 /usr/bin/mlterm 20 manual mode
7 /usr/bin/pangoterm 15 manual mode
8 /usr/bin/st 15 manual mode
9 /usr/bin/terminator 50 manual mode
10 /usr/bin/terminology 40 manual mode
11 /usr/bin/terminus 20 manual mode
12 /usr/bin/urxvt 20 manual mode
13 /usr/bin/uxterm 20 manual mode
14 /usr/bin/xfce4-terminal.wrapper 40 manual mode
15 /usr/bin/xterm 20 manual mode
16 /usr/local/bin/alacritty 10 manual mode
Press <enter> to keep the current choice[*], or type selection number: 16
update-alternatives: using /usr/local/bin/alacritty to provide /usr/bin/x-terminal-emualtor (x-terminal-emulator) in manual mode
[schwarzgerat](0) $
sudo update-alternatives --query java Link: java Status: auto Best: /usr/local/java/jre1.6.0_45/bin/java Value: /usr/local/java/jre1.6.0_45/bin/java Alternative: /usr/local/java/jre1.6.0_45/bin/java Priority: 0
– pagliuca 07.07.2013, 08:001.16.10
установленный. Разве Вы не можете обновить свою версию? спасибо EightBitTony – binfalse 07.07.2013, 11:51