1. 程式人生 > >python中的tab補全功能新增

python中的tab補全功能新增

用Python時沒有tab補全還是挺痛苦的,記錄一下新增該功能的方法利人利己

1. 先準備一個tab.py的指令碼

  shell> cat tab.py

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#!/usr/bin/python

# python tab 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

2. 檢視Python預設的模組存放地址

1

2

3

4

5

6

7

[[email protected] ~]# python

Python 2.6.6 (r266:84292, Nov 22 201312:16:22)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2

Type "help""copyright""credits"

 or "license" for more information.

>>> import sys

>>> sys.path

['', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info']

3. 拷貝該指令碼到預設模組存放路徑

1

cp tab.py  /usr/lib64/python2.6/

4. 現在可以用了

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

>>> import tab

>>> import sys

>>> sys.

sys.__class__(              sys.__reduce_ex__(          sys.builtin_module_names    sys.exitfunc(               sys.last_type(              sys.py3kwarning

sys.__delattr__(            sys.__repr__(               sys.byteorder               sys.flags                   sys.last_value              sys.setcheckinterval(

sys.__dict__                sys.__setattr__(            sys.call_tracing(           sys.float_info              sys.maxint                  sys.setdlopenflags(

sys.__displayhook__(        sys.__sizeof__(             sys.callstats(              sys.getcheckinterval(       sys.maxsize                 sys.setprofile(

sys.__doc__                 sys.__stderr__              sys.copyright               sys.getdefaultencoding(     sys.maxunicode              sys.setrecursionlimit(

sys.__excepthook__(         sys.__stdin__               sys.displayhook(            sys.getdlopenflags(         sys.meta_path               sys.settrace(

sys.__format__(             sys.__stdout__              sys.dont_write_bytecode     sys.getfilesystemencoding(  sys.modules                 sys.stderr

sys.__getattribute__(       sys.__str__(                sys.exc_clear(              sys.getprofile(             sys.path                    sys.stdin

sys.__hash__(               sys.__subclasshook__(       sys.exc_info(               sys.getrecursionlimit(      sys.path_hooks              sys.stdout

sys.__init__(               sys._clear_type_cache(      sys.exc_type                sys.getrefcount(            sys.path_importer_cache     sys.subversion

sys.__name__                sys._current_frames(        sys.excepthook(             sys.getsizeof(              sys.platform                sys.version

sys.__new__(                sys._getframe(              sys.exec_prefix             sys.gettrace(               sys.prefix                  sys.version_info

sys.__package__             sys.api_version             sys.executable              sys.hexversion              sys.ps1                     sys.warnoptions

sys.__reduce__(             sys.argv                    sys.exit(                   sys.last_traceback          sys.ps2