Определить из древовидных модулей?

Vim обычно поставлется с netrw.vim сценарий, который, среди других вещей, поддержки и локальный и удаленный просмотр каталога. Это инициировано путем простого редактирования каталога, например. :edit ..

Как Greg Hewgill указал, Дерево Компьютерного фаната является другим популярным каталогом, просматривающим плагин. Это по существу заменяет функции просмотра каталога netrw.vim сценарий при установке, т.е. :edit . инициирует Дерево Компьютерного фаната вместо этого. Дерево компьютерного фаната также предлагает параметры конфигурации для, например, автоматически открывая область каталога на запуске и корректируя размещение окна с несколькими панелями, в котором это открывается.

Если бы Вы используете вкладки в Vim и предпочли бы, чтобы NerdTree был персистентным через вкладки, существует сценарий для этого также.

3
16.04.2015, 17:58
2 ответа

После того, как я обнаружил, что используемая мной вики Ubuntu ссылается на внешние модули , было легче найти решение от rtfm.

Сводка путей установки внешних модулей

  • По умолчанию внешние модули устанавливаются с помощью modules_install в / lib / modules / $ (KERNELRELEASE) / extra / .
  • При установке внешних модулей в другом месте INSTALL_MOD_PATH используется для префикса пути установки или INSTALL_MOD_DIR используется для создания нового каталога в обычном / lib / modules / $ (KERNELRELEASE) путь.

См. Нижнюю часть этого ответа для более подробного объяснения.

Поиск внешних модулей

Чтобы сузить поиск до вышеуказанного, я использую locate для печати путей, содержащих lib / module и xargs ] в фильтрует вывод путей, не являющихся каталогами.

Наконец, grep -v используется для фильтрации вывода путей, начинающихся с / lib / modules / $ (uname -r) / kernel . При этом должны по-прежнему отображаться пути с префиксом INSTALL_MOD_PATH во время установки, например / frodo / lib / modules / $ (KERNELRELEASE) / kernel / .

Очевидно, что при этом не будет выведен путь к модулям, которые каким-то образом были установлены по совершенно странному пути. Вот команда:

locate --null "* lib / modules / $ (uname -r) *" | xargs -r0 sh -c 'для меня [-d "$ i"] && printf "% s \ n" "$ i"; done 'sh {} + | grep -v "^ / lib / modules / $ (uname -r) / kernel \ | ^ / lib / modules / $ (uname -r) $ \ | ^ / lib / modules / $ (uname -r) / build $ \ | ^ / lib / modules / $ (uname -r) / initrd $ "

Это удаляет пути в дереве из вывода, который для меня составлял 4695 строк при использовании только locate" * lib / modules / $ (uname -r) * ". Теперь вывод намного меньше и должен отображать только известные пути вне дерева:

/frodo/lib/modules/3.12.3-031203-generic
/frodo/lib/modules/3.12.3-031203-generic/kernel

Выдержки из документации Построение внешних модулей

Подробности ниже взяты из Построение внешних модулей

modules_install
    Install the external module(s). The default location is
    /lib/modules/<kernel_release>/extra/, but a prefix may
    be added with INSTALL_MOD_PATH (discussed in section 5).  

=== 5. Module Installation

Modules which are included in the kernel are installed in the
directory:

    /lib/modules/$(KERNELRELEASE)/kernel/

And external modules are installed in:

    /lib/modules/$(KERNELRELEASE)/extra/

--- 5.1 INSTALL_MOD_PATH

    Above are the default directories but as always some level of
    customization is possible. A prefix can be added to the
    installation path using the variable INSTALL_MOD_PATH:

        $ make INSTALL_MOD_PATH=/frodo modules_install
        => Install dir: /frodo/lib/modules/$(KERNELRELEASE)/kernel/

    INSTALL_MOD_PATH may be set as an ordinary shell variable or,
    as shown above, can be specified on the command line when
    calling "make." This has effect when installing both in-tree
    and out-of-tree modules.

--- 5.2 INSTALL_MOD_DIR

    External modules are by default installed to a directory under
    /lib/modules/$(KERNELRELEASE)/extra/, but you may wish to
    locate modules for a specific functionality in a separate
    directory. For this purpose, use INSTALL_MOD_DIR to specify an
    alternative name to "extra."

        $ make INSTALL_MOD_DIR=gandalf -C $KDIR \
               M=$PWD modules_install
        => Install dir: /lib/modules/$(KERNELRELEASE)/gandalf/
0
27.01.2020, 21:31

Модули ядра, будь то в дереве или вне дерева, установлены в каталогах, относящихся к данным версиях ядра ( / lib / модулей / $ (uname -r) ), так что вы должны Т надо убирать модули для обновления до нового ядра: новое ядро ​​просто не будет рассмотреть старые модули.

Тем не менее, насколько я знаю модули деревьев в / lib / модули / $ (uname -r) / ядро ​​, так что-нибудь в / lib / модулей / $ (Uname -r) Снаружи из этого является вне дерева модуль.

1
27.01.2020, 21:31

Теги

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