質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

apt-get

apt-getコマンドはUNIX系OSのパッケージのインストールなど、パッケージ管理を行うためのコマンドです。

Q&A

解決済

1回答

2801閲覧

bash は補完できるが zsh にするとできなくなる理由

tf23yh8df3

総合スコア60

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

apt-get

apt-getコマンドはUNIX系OSのパッケージのインストールなど、パッケージ管理を行うためのコマンドです。

0グッド

0クリップ

投稿2016/12/16 11:49

編集2016/12/17 02:31

目的

  • zsh で色々補完したい
  • apt, R, etc
  • [/usr/share/bash-completion/completions]にあるものをzshでも使いたい

問題

  • apt-get は補完する
  • bash に切り替えると apt 補完する

bash

1apt-get [Tab] 2autoclean chegelog dist-upgrade

bash

1#! /bin/bash 2apt [Tab] 3dist-upgrade full-upgrade install

bash

1#! /bin/zsh 2apt [Tab] 3Completing `file` 4 5sudo apt upg[Tab] 6Completing `arguments`, `file`, or `corrections`

原因

  • yunnano さんの回答から_aptを確認
  • これが原因か・・・?

bash

1#! /usr/share/zsh/functions/Completion/Debian/ 2_apt () { 3 case "$service" in 4 apt-get) _apt-get "$@";; 5 apt-cache) _apt-cache "$@";; 6 apt-cdrom) _apt-cdrom "$@";; 7 apt-config) _apt-config "$@";; 8 *) _message "unknown command $service";; 9 esac 10}

参照

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Ubuntu用のzsh-commonパッケージから提供されるcompletionファイルにapt-get用の定義はあってもapt用の定義がないからだと思います。
apt-get用やapt用の定義が書かれるべきcompletionファイルはおそらくこれのはずです。
/usr/share/zsh/functions/Completion/Debian/_apt

以下のページ(やそこからリンクされているページ)が参考になるかと思います。
https://gist.github.com/mitukiii/4954559
http://rcmdnk.github.io/blog/2015/05/15/computer-linux-mac-zsh/

投稿2016/12/16 12:30

yunano

総合スコア841

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tf23yh8df3

2016/12/16 23:58

yunanoさん 回答頂きありがとうございます。 bashに切り替えるとapt補完するので /usr/share/bash-completion/completions/apt を /usr/share/zsh/functions/Completion/Debian/_apt に置き換えたら補完するのかなと思ったのですがどうでしょうか。
yunano

2016/12/17 02:04

http://qiita.com/mooz@github/items/fc98241c07036ba05551 こんな記事を見つけましたが、同じ方法で/usr/share/bash-completion/completions/aptを読ませても「_apt:4: command not found: _init_completion」というエラーメッセージが返ってきました。 とはいえ、少し頑張って/usr/share/bash-completion/completions/aptを改造すれば何とかできそうな気はします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問