在Ubuntu中实现python按tab键补全

简介:

    刚学习python,其实一切都很好接受,因为有过C语言的基础,感觉一切都来得那么自然,python极其精简的语法,让我真心是爱上这种语言!相信往后python一定会在我的IT生涯中大放光彩!

    好,废话说完了,入正题。


1.问题引出:默认情况下python交互界面的tab键    

    在linux下,或在路由器、交换机上,按tab键按得很爽,什么不完整的,tab一下都出来了,无奈,在linux中安装的python,默认情况是没有tab功能的,也就是在python的交互界面中,tab是没有办法补全的,python的交互界面只是把它当作正常的多个空格补全来处理:

1
2
3
4
5
6
xpleaf@py:~/seminar6/day1$ python
Python  2.7 . 3  ( default , Aug   1  2012 05 : 14 : 39
[GCC  4.6 . 3 ] on linux2
Type  "help" "copyright" "credits"  or  "license"  for  more information.
>>>  import  sys  
>>> sys.     =====>按tab键,想看看sys的子模块,结果就是按出了一大堆空格键

是啊,这也太恶心了!没有tab键,宝宝不开心!


2.解决方案:自行导入tab键的模块--创建tab.py模块文件

    问题是,没有tab键的模块,怎么办?百度一下吧!不过当时确实找了好多,都找不到一个在我自己的实验环境中可以使用的,总是提示各种错误!还好,总算让我找到一个可以使用的,下面直接给出tab.py的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env python
# python startup file 
import  sys
import  readline
import  rlcompleter
import  atexit
import  os
# tab completion 
readline.parse_and_bind( 'tab: complete' )
# history file 
histfile = os.path.join(os.environ[ 'HOME' ],  '.pythonhistory' )
try :
     readline.read_history_file(histfile)
except IOError:
     pass
atexit.register(readline.write_history_file, histfile)
del os, histfile, readline, rlcompleter

把上面的代码,保存成tab.py文件,然后保存到下面的指定路径之一:

1
2
3
>>>  import  sys
>>> sys.path
[ '' '/usr/lib/python2.7' '/usr/lib/python2.7/plat-linux2' '/usr/lib/python2.7/lib-tk' '/usr/lib/python2.7/lib-old' '/usr/lib/python2.7/lib-dynload' '/usr/lib/python2.7/dist-packages' '/usr/lib/python2.7/dist-packages/PIL' '/usr/lib/python2.7/dist-packages/gst-0.10' '/usr/lib/python2.7/dist-packages/gtk-2.0' '/usr/lib/python2.7/dist-packages/ubuntu-sso-client' '/usr/lib/python2.7/dist-packages/ubuntuone-client' '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel' '/usr/lib/python2.7/dist-packages/ubuntuone-couch' '/usr/lib/python2.7/dist-packages/ubuntuone-installer' '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol' ]

为了省事点,我直接把tab.py文件放到/usr/lib/python2.7这个目录下面好了:

1
2
3
xpleaf@py:~/seminar6/day1$ sudo mv tab.py /usr/lib/python2. 7 /
xpleaf@py:~/seminar6/day1$ ll /usr/lib/python2. 7 /tab.py
-rw-rw-r--  1  xpleaf xpleaf  419   8 月   6  23 : 53  /usr/lib/python2. 7 /tab.py

3.方案测试:导入tab模块后,可使用tab键补全

下面就可以爽爽地使用tab键补全了,不过还是要先在python的交互界面中导入一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
xpleaf@py:~/seminar6/day1$ python
Python  2.7 . 3  ( default , Aug   1  2012 05 : 14 : 39
[GCC  4.6 . 3 ] on linux2
Type  "help" "copyright" "credits"  or  "license"  for  more information.
>>>  import  sys    ===>导入sys模块只是为了下面对tab键补全做测试
>>>  import  tab    ===>这才是重点
>>> sys.          ===>输入sys.后按两次tab键
sys.__class__(              sys.exit(
sys.__delattr__(            sys.exitfunc(
sys.__dict__                sys.flags
sys.__displayhook__(        sys.float_info
sys.__doc__                 sys.float_repr_style
sys.__excepthook__(         sys.getcheckinterval(
sys.__format__(             sys.getdefaultencoding(
sys.__getattribute__(       sys.getdlopenflags(
sys.__hash__(               sys.getfilesystemencoding(
sys.__init__(               sys.getprofile(
sys.__name__                sys.getrecursionlimit(
sys.__new__(                sys.getrefcount(
sys.__package__             sys.getsizeof(
sys.__reduce__(             sys.get trace (
sys.__reduce_ex__(          sys.hexversion
sys.__repr__(               sys.long_info
sys.__setattr__(            sys.maxint
sys.__sizeof__(             sys.maxsize
sys.__stderr__              sys.maxunicode
sys.__stdin__               sys.meta_path
sys.__stdout__              sys.modules
sys.__str__(                sys.path
sys.__subclasshook__(       sys.path_hooks
sys._clear_type_cache(      sys.path_importer_cache
sys._current_frames(        sys.platform
sys._getframe(              sys.prefix
sys._mercurial              sys.ps1
sys.api_version             sys.ps2
sys.argv                    sys.py3kwarning
sys.builtin_module_names    sys.pydebug
sys.byteorder               sys.setcheckinterval(
sys.call_tracing(           sys.setdlopenflags(
sys.callstats(              sys.setprofile(
sys.copyright               sys.setrecursionlimit(
sys.displayhook(            sys.set trace (
sys.dont_write_bytecode     sys.stderr
sys.exc_clear(              sys.stdin
sys.exc_info(               sys.stdout
sys.exc_type                sys.subversion
sys.excepthook(             sys.version
sys.exec_prefix             sys.version_info
sys.executable              sys.warnoptions
>>> sys.

感觉好极了!虽然每次进入python的交互界面都要重新再导入一次tab模块,可是有总比没有好!对于我这样的初学者来说,已经很满足啦!




本文转自 xpleaf 51CTO博客,原文链接:http://blog.51cto.com/xpleaf/1682449,如需转载请自行联系原作者

相关文章
|
4天前
|
Ubuntu 开发者 Python
|
14天前
|
机器学习/深度学习 Ubuntu 数据挖掘
Ubuntu系统部署Anaconda环境及Python语言的详细流程
以上就是在Ubuntu系统中安装Anaconda环境及Python语言的详细流程。Anaconda为Python科学计算提供了便捷的管理方式,帮助用户轻松处理不同项目之间依赖管理的复杂性。通过以上步骤,你现在应该有了一个完全可用的Anaconda环境,可以开始在Ubuntu上进行Python编程和数据科学项目的探索了。
20 5
|
4月前
|
Ubuntu Python
Ubuntu 安装Python3.8
Ubuntu 安装Python3.8
220 0
|
12天前
|
机器学习/深度学习 Ubuntu 数据挖掘
揭秘:Ubuntu系统下部署Anaconda环境及Python语言的终极指南!跟随这一步步神秘流程,解锁编程大师的秘密武器!
【8月更文挑战第19天】在Ubuntu中部署Anaconda环境与Python相当直观。首先需从官网下载Linux版安装包。接着,在终端依次执行命令:添加Anaconda清华镜像源至软件源列表,更新软件包信息,然后安装Anaconda。安装后可通过`anaconda --version`验证。使用`anaconda create -n myenv python=3.8`创建名为“myenv”的环境并指定Python 3.8版本。
67 0
|
2月前
|
机器学习/深度学习 Ubuntu 数据挖掘
在Ubuntu系统安装Anaconda及Python
【7月更文挑战第10天】在Ubuntu上安装Anaconda及Python概述: 1. 访问官网下载适合的Anaconda版本。 2. 终端中运行`bash Anaconda3-xxxx.x-Linux-x86_64.sh`完成安装,需同意协议。 3. 通过`conda --version`验证安装。 4. 可选创建Python环境,如`conda create -n myenv python=3.8`。 5. 激活环境使用`conda activate myenv`。 6. 用`python --version`检查Python版本。
|
16天前
|
监控 Ubuntu 网络协议
如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件
如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件
5 0
|
24天前
|
Ubuntu Python
ubuntu build install python3.12 and config pip
ubuntu 编译安装 python ; 并配置 pip 仓库源
30 0
|
3月前
|
Ubuntu Python
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
309 1
|
4月前
|
并行计算 Ubuntu Docker
Docker环境Ubuntu20.04安装Python3.10版本
Docker环境Ubuntu20.04安装Python3.10版本
883 0
|
4月前
|
Ubuntu Python
在Ubuntu下载Python3.6 并建立软连接
在Ubuntu下载Python3.6 并建立软连接
130 0
下一篇
云函数