Согласно wireless.wiki устройство Intel® Wireless 8260 поддерживается ядром 4.1 и более поздними версиями,
Установите build-essential
и заголовки linux
загрузите iwlwifi-8000-ucode-25.30.13.0.tgz
из здесь {{ 1}} Введите следующую команду:
tar -zxvf iwlwifi-8000-ucode-25.30.13.0.tgz
cd iwlwifi-8000-ucode-25.30.13.0
sudo cp iwlwifi*.ucode /lib/firmware/
Загрузите бэкпорт из здесь пример:
wget https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v4.3/backports-4.3-1.tar.gz
Распакуйте его и скомпилируйте модуль iwlwifi
:
cd backports-4.3-1
make defconfig-iwlwifi
make
sudo make install
Перезагрузите
{{1 }}
Вы можете привязать функцию bash к клавише с помощью bind -x
. В этой функции вы можете получить доступ к текущему содержимому входного буфера через переменные READLINE_LINE
и READLINE_POINT
.
run_man () {
declare prefix="${READLINE_LINE:0:$READLINE_POINT}" suffix="${READLINE_LINE:$READLINE_POINT}"
declare word="${prefix##*[!-+.0-9A-Z_a-z]}${suffix%%[!-+.0-9A-Z_a-z]*}"
man "$word"
}
bind -m vi -x '"K": run_man'
Возможно, было бы полезнее открыть страницу руководства для слова в позиции команды, чем для слова под курсором, но это требует более сложного анализа. В этом может помочь код завершения bash. Или вы можете согласиться на первое слово в строке, что требует меньшего анализа, чем получение текущего слова.
Чтобы обнаружить встроенные команды bash и показать документацию по bash вместо страницы руководства, см. универсальная команда help / man: help встроенные частичные совпадения
P.S.
Было бы неплохо увидеть человека, не удаляя всю команду из командной строки.
Я часто делаю это в zsh . Я ожидаю, что это возможно и в bash, но более сложное в настройке.
Просто используйте раскрытие истории , чтобы указать имя последней заданной команды.
$ grep something
$ man !:0
Поскольку раскрытие истории выполняется перед раскрытием псевдонима , если вы хотите использовать псевдоним, вы должны сделать это так:
alias k='man "$(history -p \!:0)"'
Затем просто введите k
, чтобы посмотреть на человека страница последней выполненной команды.
Это нестандартная операция, но вы можете легко ее добавить. См. этот ответ (ссылка) .
Я прочитал исходный код readline
, и похоже, что добавить желаемая функциональность. readline
уже поддерживает опцию v
, которая позволяет вам войти в режим редактирования и открыть свой $ EDITOR
. Если проанализировать логику того, как readline
открывает $ EDITOR
, то будет довольно легко открыть man
со словом под курсором в качестве аргумента.
Вот несколько интересных grep:
grep -RI EDITOR *
doc / hsuser.texi: используется: @code {$ @ {FCEDIT: - $ @ {EDITOR: -vi @} @}} . Здесь говорится об использовании переменной
doc / hsuser.texi: @env {EDITOR}, если она установлена, или @code {vi}, если ни одна из них не установлена.
doc / rluser.texi: @ code {$ VISUAL}, @code {$ EDITOR} и @code {emacs}
examples / rlfe / ChangeLog: * параметры строки; используйте EDITOR / VISUAL для установки предпочтений vi / emacs.
examples / rlfe / README: но если для переменной среды EDITOR установлено значение "vi", то
examples / rlfe / rlfe.c: * варианты линии; используйте EDITOR / VISUAL для установки предпочтений vi / emacs.
examples / rlfe / rlfe.c: if (getenv ("EDITOR")! = 0)
examples / rlfe / rlfe.c: vi | = strcmp (getenv ("EDITOR"), "vi") == 0;
grep -RI -C 5 режим редактирования * .c
bind.c- {"bell- style ", V_STRING, sv_bell_style},
bind.c- {" начало комментария ", V_STRING, sv_combegin},
bind.c- {" ширина-отображения-завершения ", V_INT, sv_compwidth },
bind.c- {"завершение-префикс-длина-отображения", V_INT, sv_dispprefix},
привязка.c- {"элементы-запроса-завершения", V_INT, sv_compquery},
bind.c: {"режим-редактирования", V_STRING, sv_editmode},
bind.c- {"emacs- строка режима ", V_STRING, sv_emacs_modestr},
bind.c- {" размер-истории ", V_INT, sv_histsize},
bind.c- {" isearch-terminators ", V_STRING, sv_isrchterm },
bind.c- {"keymap", V_STRING, sv_keymap},
bind.c- {"keyseq-timeout", V_INT, sv_seqtimeout},
- { {1}} -
bind.c- else if (_rl_stricmp (name, "Завершение-элементы-запроса") == 0)
bind.c- {
bind .c- sprintf (numbuf, "% d", rl_completion_query_items);
bind.c- return (numbuf);
bind.c-}
bind.c: else if (_rl_stricmp (name, "режим редактирования") == 0)
bind.c- return (rl_get_keymap_name_from_edit_mode ());
bind.c- else if (_rl_stricmp (name, "history- size ") == 0)
bind.c- {
bind.c- sprintf (numbuf,"% d ", history_is_stifled ()? history_max_entries: 0);
привязать .c- return (numbuf);
-
-
funmap.c- {"do-lowercase-version", rl_do_lowercase_version},
funmap .c- {"downcase-word", rl_downcase_word},
funmap.c- {"dump-functions", rl_dump_functions},
funmap.c- {"dump-macros", rl_dump_macros} ,
funmap.c- {"dump-variables", rl_dump_variables},
funmap.c: {"emacs-editor-mode", rl_emacs_editing_mode},
funmap.c- {"end-kbd-macro", rl_end_kbd_macro},
funmap.c- {"end-of-history", rl_end_of_history},
funmap.c- {"end-of-line" , rl_end_of_line},
funmap.c- {"exchange-point-and-mark", rl_exchange_point_and_mark},
funmap.c- {"forward-backward-delete-char", rl_rubout_or_delete},
-
-
funmap.c- {"vi-column", rl_vi_column},
funmap.c- {"vi-complete", rl_vi_complete },
funmap.c- {"vi-delete", rl_vi_delete},
funmap.c- {"vi-delete-to", rl_vi_delete_to},
funmap.c- {"vi-eWord", rl_vi_eWord},
funmap.c: {"vi-edit-mode" , rl_vi_editing_mode},
funmap.c- {"vi-end-bigword", rl_vi_eWord},
funmap.c- {"vi-end-word", rl_vi_end_word}, {{1} } funmap.c- {"vi-eof-maybe", rl_vi_eof_maybe},
funmap.c- {"vi-eword", rl_vi_eword},
funmap.c- {"vi-fWord ", rl_vi_fWord},