Adding upstream version 1.12.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
3b95ae912c
commit
ac60c09ef6
457 changed files with 159628 additions and 0 deletions
120
completions/README
Normal file
120
completions/README
Normal file
|
@ -0,0 +1,120 @@
|
|||
Kelly Kaoudis, kelly.n.kaoudis at intel.com, June 2015
|
||||
|
||||
Setting Up NVMe Tab Autocompletion for bash or zsh
|
||||
==================================================
|
||||
|
||||
If your working shell is bash...
|
||||
--------------------------------
|
||||
the following gets bash autocompletion to behave properly
|
||||
#echo "bind 'set show-all-if-ambiguous on'" >> ~/.bashrc
|
||||
#echo "bind 'set show-all-if-unmodified on'" >> ~/.bashrc
|
||||
#echo "bind 'set completion-ignore-case on'" >> ~/.bashrc
|
||||
#echo "bind 'set completion-map-case on'" >> ~/.bashrc
|
||||
|
||||
add NVMe autocompletion script to your autocompletes directory
|
||||
#cp `pwd`/bash-nvme-completion.sh /etc/bash_completion.d/nvme
|
||||
|
||||
make sure this bash knows where everything is
|
||||
#source /etc/bash_completion.d/nvme && source ~/.bashrc
|
||||
|
||||
you should be able to autocomplete with the nvme utility now
|
||||
(double TABs still apply)! If autocompleting has disappeared,
|
||||
just re-source nvme and .bashrc. To see a full list of auto-completable
|
||||
NVMe commands, type "nvme help " and hit TAB.
|
||||
|
||||
You may also need to uncomment the "enable bash completion in interactive
|
||||
shells" part of /etc/bash.bashrc, which hopefully looks something like:
|
||||
|
||||
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||
. /usr/share/bash-completion/bash_completion
|
||||
elif [ -f /etc/bash_completion ]; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
|
||||
(don't bother with the shopt part, your Bash version might not support shopt).
|
||||
|
||||
Bash footnote: for bash vers >= 4.2, it appears to be the case that
|
||||
menu-complete **no longer works.** If the bash dev folks ever re-patch this,
|
||||
try binding TAB to menu-complete to cycle through the NVMe subcommand matches
|
||||
on whatever you typed.
|
||||
|
||||
if your working shell is zsh...
|
||||
-------------------------------
|
||||
create the zsh completions directory if you don't have it
|
||||
#if [ ! -e "~/.zsh" ]; then
|
||||
# mkdir ~/.zsh
|
||||
# mkdir ~/.zsh/completion
|
||||
#fi
|
||||
|
||||
#cp `pwd`/_nvme ~/.zsh/completion/_nvme
|
||||
|
||||
add compinit if you don't have it in your .zshrc
|
||||
#echo "autoload -Uz compinit && compinit" >> ~/.zshrc
|
||||
|
||||
add nvme autocompletions to your .zshrc
|
||||
#echo "# source for tab autocompletions" >> ~/.zshrc
|
||||
#echo "fpath=(~/.zsh/completion $fpath)" >> ~/.zshrc
|
||||
#echo "source ~/.zsh/completion/_nvme" >> ~/.zshrc
|
||||
|
||||
make sure this zsh knows where everything is
|
||||
#source ~/.zsh/completion/_nvme && source ~/.zshrc
|
||||
|
||||
You should be able to autocomplete with the nvme utility now (single TAB press
|
||||
should get you a completion with descriptions -- sadly, bash doesn't support
|
||||
descriptions within completions). If autocompletes disappear, just re-source
|
||||
_nvme and .zshrc. Also, make sure your .zshrc is ordered correctly: we want to
|
||||
source _nvme before updating our fpath. Both of these should occur before
|
||||
compinit is loaded.
|
||||
|
||||
Updating NVMe Tab Autocompletions
|
||||
=================================
|
||||
|
||||
zsh
|
||||
---
|
||||
|
||||
Add your new command to the _cmds array in the following format:
|
||||
|
||||
'command:short-form description'
|
||||
|
||||
Add a case to the zsh case statement for autocompletion of subopts
|
||||
in the following format (as seen in _nvme):
|
||||
|
||||
(bar)
|
||||
local _list_of_subopts
|
||||
_list_of_subopts=(
|
||||
/dev/nvme':supply a device to use (required)'
|
||||
--foo':do something cool'
|
||||
-f':alias of --foo'
|
||||
)
|
||||
|
||||
_arguments '*:: :->subcmds'
|
||||
_describe -t commands "nvme bar options" _list_of_subopts
|
||||
;;
|
||||
|
||||
All zsh autocompletion built-ins start with _, and so should anything
|
||||
internal to your autocompletes. _arguments and _describe are built-ins.
|
||||
The '*:: :->subcmds' bit describes the format in which we want our
|
||||
options to be displayed (don't change this, unless you like pain.)
|
||||
_describe -t adds our list of options to the data structure associated with
|
||||
our command `bar'.
|
||||
|
||||
Add the name of your command to the (help) case as well.
|
||||
|
||||
Update your ~/.zsh/completion/_nvme with your new changes and re-source as needed.
|
||||
|
||||
bash
|
||||
----
|
||||
|
||||
Add the name of your command to _cmds in bash_nvme_completion.sh. Add a case to
|
||||
_nvme_list_opts in the following format:
|
||||
|
||||
"bar")
|
||||
opts+="--foo= -f --baz= -b"
|
||||
;;
|
||||
|
||||
Update your /etc/bash_completion.d/nvme version, and re-source things as needed.
|
||||
|
||||
TO DO
|
||||
-----
|
||||
Automatically generate man pages and autocompletions for new NVMe commands, possibly
|
||||
with kerneldoc.
|
Loading…
Add table
Add a link
Reference in a new issue