4
Django bash completion啓用在bash中django-admin.py和manage.py命令的tab完成。是否可以在zsh中使用Django bash完成
對於django,有zsh
自動完成腳本,但它們不適用於自定義命令。其中之一是oh-my-zsh項目。
我也知道bashcompinit
但它似乎並沒有與Django的管理工作,產生以下錯誤:
./manage.py Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "lib/python2.7/site-packages/django/core/management/__init__.py", line 356, in execute
self.autocomplete()
File "lib/python2.7/site-packages/django/core/management/__init__.py", line 266, in autocomplete
cwords = os.environ['COMP_WORDS'].split()[1:]
File "bin/../lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'COMP_WORDS'
是否有可能有Django的bash補與zsh的工作?還是有一些其他的選擇,將允許使用django管理員自定義命令。
似乎'subshell'處理混淆了zsh。例如:'(){A =(a b c);效仿-L sh; (A =「$ {A [*]}」printenv A)}'什麼也不打印,並且在這種特殊情況下會導致'KeyError:'COMP_WORDS''。但是'(){A =(a b c);模擬-L zsh; (A =「$ {A [*]}」printenv A)}'打印'a b c'。由於zsh上的這種行爲,我使用'env(1)'在我的答案中正確導出COMP_WORDS。 – hchbaw 2014-12-23 06:03:40
謝謝,它的工作 – bmihelac 2014-12-23 13:25:36
這個zsh錯誤最近已經解決了,所以我們不需要爲即將發佈的新zsh版本(可能是5.0.8?)需要這個解決方法。 – hchbaw 2014-12-29 13:29:38