mirror of
https://github.com/wting/autojump
synced 2024-10-27 20:34:07 +00:00
initial version of script for ipython
This commit is contained in:
parent
8a24aa89b3
commit
82d3e14c1f
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
tags
|
||||
*.pyc
|
||||
|
33
tools/autojump_ipython.py
Normal file
33
tools/autojump_ipython.py
Normal file
@ -0,0 +1,33 @@
|
||||
# This module was contributed by Mario Pastorelli <pastorelli.mario@gmail.com>
|
||||
# It is released in the public domain
|
||||
|
||||
import os
|
||||
import subprocess as sub
|
||||
from IPython.ipapi import get
|
||||
from IPython.iplib import InteractiveShell
|
||||
|
||||
# Export the environment variable pointing to the autojump storage dir
|
||||
ip = get()
|
||||
ip.magic('env AUTOJUMP_DATA_DIR=/home/rief/.local/share/autojump')
|
||||
|
||||
def magic_j(self,parameter_s=''):
|
||||
cmd = ['autojump']+parameter_s.split()
|
||||
# print 'executing autojump with args %s' % str(cmd)
|
||||
newpath=sub.Popen(cmd,stdout=sub.PIPE,shell=False).communicate()[0][:-1] # delete last '\n'
|
||||
# print 'Autojump answer: \'%s\'' % newpath
|
||||
ip.magic('cd \'%s\'' % newpath)
|
||||
|
||||
def cd_decorator(f):
|
||||
def autojump_cd_monitor(self,parameter_s=''):
|
||||
f(self,parameter_s)
|
||||
# print 'Calling autojump -a '+str(parameter_s.split())
|
||||
sub.call(['autojump','-a']+parameter_s.split())
|
||||
return autojump_cd_monitor
|
||||
|
||||
# Add the new magic function to the class dict and decorate magic_cd:
|
||||
InteractiveShell.magic_j = magic_j
|
||||
InteractiveShell.magic_cd = cd_decorator(InteractiveShell.magic_cd)
|
||||
|
||||
# And remove the global name to keep global namespace clean.
|
||||
del magic_j
|
||||
del cd_decorator
|
Loading…
Reference in New Issue
Block a user