Лучший способ добавить альтернативные альтернативы обновления использования?

  • Установите matchit плагин (см. :help matchit-install для инструкций).
  • Удостоверьтесь автоматическое обнаружение типа файла и загрузка плагина включены (:filetype plugin on).

Впредь, каждый раз, когда Вы редактируете файл, обнаруженный как xml или html или некоторый другой основанный на теге язык разметки, комбинация matchit плагин и файлы плагина типа файла позволят % движение соответствовать открытым и близким тегам.

16
16.12.2018, 00:11
3 ответа

Для ответа на первый вопрос, я хотел бы подсказать Вы --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.

13
27.01.2020, 19:48
  • 1
    Спасибо за ответ, но версию альтернатив обновления, которые я выполняю (1.16.1.2), не показывает информацию о ссылке, не используя ни одного - запрос или - дисплей. Какую версию Вы используете? 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:00
  • 2
    я имею 1.16.10 установленный. Разве Вы не можете обновить свою версию? спасибо EightBitTony –  binfalse 07.07.2013, 11:51
  • 3
    Вы - человек! Оба решения отличны! –  pagliuca 07.07.2013, 20:32

Простой вопрос: Разве <ссылка> не будет всегда той же самой, которая извлекается простым 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.

6
27.01.2020, 19:48

При установке --вам не нужно пополнять все существующие альтернативы. См. пример в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) $
1
02.05.2020, 09:56

Теги

Похожие вопросы