メモを有効にする短いスクリプトが見つかりました。すべてうまくいった。、含まれて:
function n { nano ~/n/$1.txt }
既存のコメント「foobar」(~/n/foobar.txt)を編集したい場合は、入力する必要なく入力してオートコンプリートするように、foo[TAB]
これをタブ完成に拡張したいと思います。foobar
「foobar」は毎回「です。問題は、bashの組み込みタブの完成が現在のディレクトリの中心にあるようです。これ$ n foo[TAB]
はsnafu /に「footastic」というファイルがある可能性があるため$ n foobar
です$ n footastic
。
したがって、すべての序文が終わった後の質問は次のようになります。可能であれば、「n」と入力した後にbashにどのように通知できますか?ちょうど一度だけ現在のディレクトリにあるファイルを使用するのではなく、〜/ nにあるファイルを使用して作業を実行するとします。
この電子独白をすべて理解したらおめでとうございます。回答本当にありがとうございました!
答え1
これであなたはそこまで行くことができると思います...
.bashrcでカスタムタブ補完を有効にする
shopt -s progcomp
compgen関数を作成して.bashrcに追加します。後ろにメモ作成機能。
_notes() { local cur cur=${COMP_WORDS[COMP_CWORD]} COMPREPLY=( $(compgen -f $HOME/n/$cur | cut -d"/" -f5 ) ) } complete -o filenames -F _notes n
これは基本レベルで私に効果的です。まだ入れ子になったディレクトリの問題を解決できませんでした。
引用:
ほとんどはここから来ました:http://sixohThree.com/867/bash-completion
ここに埋め込まれた詳細を完了してください。http://www.gnu.org/software/bash/manual/html_node/Programmable-Completion-Builtins.html
答え2
jasonwryanの答えに対するフォローアップのために、cutを使用して既知のルートターゲットの先頭を切り取りました。
_c ()
{
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
case "$cur" in
*)
COMPREPLY=( $(compgen -f /src/$cur | cut -c 6-) )
;;
esac
return 0
} &&
complete -o filenames -F _c c
これにより、以下のディレクトリ、サブディレクトリ、またはファイル名を直接操作できます。/src/