加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

是否可以在zsh中使用Django bash完成

发布时间:2021-01-01 00:16:34 所属栏目:Linux 来源:网络整理
导读:Django bash completion在bash中启用了django-admin.py和manage.py命令的tab-completion. zj for django有自动完成脚本,但它们不适用于自定义命令.其中一个是oh-my-zsh项目. 我也知道bashcompinit但它似乎不适用于django-admin,产生以下错误: ./manage.py

Django bash completion在bash中启用了django-admin.py和manage.py命令的tab-completion.

zj for django有自动完成脚本,但它们不适用于自定义命令.其中一个是oh-my-zsh项目.

我也知道bashcompinit但它似乎不适用于django-admin,产生以下错误:

./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 admin自定义命令.

解决方法

你可以修补django_bash_completion,如下所示:
--- django_bash_completion.old  2014-12-23 10:41:35.589103686 +0900
+++ django_bash_completion  2014-12-23 10:43:27.224848105 +0900
@@ -33,7 +33,7 @@

 _django_completion()
 {
-    COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]}" 
+    COMPREPLY=( $( env COMP_WORDS="${COMP_WORDS[*]}" 
                    COMP_CWORD=$COMP_CWORD 
                    DJANGO_AUTO_COMPLETE=1 $1 ) )
 }

在zsh(这里是zsh-5.0.7)上,使用env(1)显式工作正常.以上补丁不会伤害bash(我已经在bash-4.3.30(1)-exlease上测试过).

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读