baiyunjn 发表于 2015-12-3 09:14:15

python 2.6/2.7 tab 补全方法.(mac)

  一. mac 方法
  此方法经过测试.可以成功.
  来源:http://stackoverflow.com/questions/7116038/python-tab-completion-mac-osx-10-7-lion



1 import readline,rlcompleter
2
3 ### Indenting
4 class TabCompleter(rlcompleter.Completer):
5   """Completer that supports indenting"""
6   def complete(self, text, state):
7         if not text:
8             return ('    ', None)
9         else:
10             return rlcompleter.Completer.complete(self, text, state)
11
12 readline.set_completer(TabCompleter().complete)
13
14 ### Add autocompletion
15 if 'libedit' in readline.__doc__:
16   readline.parse_and_bind("bind -e")
17   readline.parse_and_bind("bind '\t' rl_complete")
18 else:
19   readline.parse_and_bind("tab: complete")
20
21 ### Add history
22 import os
23 histfile = os.path.join(os.environ["HOME"], ".pyhist")
24 try:
25   readline.read_history_file(histfile)
26 except IOError:
27   pass
28 import atexit
29 atexit.register(readline.write_history_file, histfile)
30 del histfile
  二.windows 方法
  为进行相关测试.
  三.常用linux方法
  1. 下载readline模块
  http://newcenturycomputers.net/projects/readline.html
  2. install readlinemodule
  3. edit and configure pythonstartup file



# 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

  4. add the enviroment varable to system with administrator role
  For windowns
  pythonstartupf=path/pythonstartup.py
  For Linux
  add the following to you ~/.bash_profile

export PYTHONSTARTUP=~/.pythonstartup
页: [1]
查看完整版本: python 2.6/2.7 tab 补全方法.(mac)