Очень просто. Вам нужен небольшой скрипт, который будет незаметно запускаться при каждом старте вашего Python (как это сделать — чуть ниже). Вот скрипт:
def xscope():
import sys, os, readline, errno, atexit, rlcompleter
if sys.version_info.major == 3:
sys.ps1='\001\033[32;1m\002>>>\001\033[0m\002 '
sys.ps2='\001\033[32m\002...\001\033[0m\002 '
else:
sys.ps1='\001\033[33;1m\002>>>\001\033[0m\002 '
sys.ps2='\001\033[33m\002...\001\033[0m\002 '
histfile = os.path.join(os.environ["HOME"], ".pyhist")
try:
readline.read_history_file(histfile)
except IOError:
if e.errno != errno.ENOENT:
pass
atexit.register(readline.write_history_file, histfile)
readline.parse_and_bind("tab: complete")
xscope()
del xscope
Тут три секции, каждую из которых вы можете поправить
по своему вкусу. Первая подкрашивает приглашение для
ввода команд. Причём по втором Python вы будете видеть
жёлтое приглашение, в третьем — зелёное. Это удобно
и эту мысль можно развить. Скажем, не включать раскраску,
если вы подключены по ssh (анализировать наличие
переменной os.environ(["SSH_CONNECTION"])
).
Вторая секция обеспечивает работу с историей, третья — отвечает за автодополнение.
Весь код заключён в функцию, чтобы результаты его работы наводили никаких эффектов на дальнейшую работу. И саму эту функцию тоже удаляем, чтобы обеспечить полную чистоту контекста.
Чтобы всё это всегда запускалось само, надо положить
этот код в какой-нибудь подходящий файл. Скажем,
$HOME/bin/initialize.py
. И прописать этот путь
в переменную PYTHONSTARTUP
в каком нибудь
подходящем файле. Скажем в ~/.bashrc
:
export PYTHONSTARTUP=$HOME/bin/initialize.py
Всё. Теперь просто запускаете Python и наслаждаетесь.
Возможно, в какой-то момент в вашем initialize.py
окажется слишком много логики и красоты. Чтобы запустить
python
без выполнения initialize.py
, просто
задайте неправильное значение для PYTHONSTARTUP
.
Сделать это можно одной строкой:
PYTHONSTARTUP='' python2
Полезной, так же, является связка с env -i
, но это
для более тяжёлых случаев:
env -i python2
Успехов!