2015-02-25 2 views
2

Я пытаюсь получить работу Julia REPL в возвышенном тексте. Тем не менее, у меня есть некоторые проблемы на стороне julia, пытаясь это сделать. В принципе, моя встроенная julia REPL работает, но интерактивные элементы (такие как подсказка) не отображаются. Я не заинтересован в использовании Sublime-IJulia по разным причинам.Julia REPL в возвышенном тексте

Мой REPL работает нормально, когда я запускаю его из xterm.

Насколько я знаю, мне нужно выяснить, как заставить Юлию использовать базовый REPL, когда я запускаю его из возвышенного, однако я не уверен, как это сделать.

Бег Base.active_repl от XTerm дает мне следующий вывод:

LineEditREPL(
    TTYTerminal("xterm-256color",TTY(open, 0 bytes waiting),TTY(open, 0 bytes waiting),TTY(open, 0 bytes waiting)), 
    true, 
    "\e[1m\e[32m", 
    "\e[1m","\e[1m", 
    "\e[1m\e[31m", 
    "\e[1m\e[33m", 
    false, 
    false, 
    false, 
    true, 
    false, 
    nothing, 
    ModalInterface(TextInterface["Prompt(\"julia> \",...)","Prompt(\"shell> \",...)","Prompt(\"help?> \",...)",HistoryPrompt{REPLHistoryProvider}(REPLHistoryProvider(String["5","exit","exit()","Pkg.status()","Pkg.add(\"ZMQ\")","Pkg.add(\"IJulia\")","Pkg.status()","Pkg.remove(\"IJulia\")","Pkg.rm(\"IJulia\")","Pkg.status()" … "import REPL","import Base..REPL","Base.BasicRepl","Base.BasicREPL","Base.REPL","Base.REPL.BasicREPL","Base.active_repl = Base.REPL.BasicREPL()","Base.active_repl","exit()","Base.active_repl"],IOStream(<file .julia_history>),62,-1,IOBuffer(data=Uint8[...], readable=true, writable=true, seekable=true, append=false, size=0, maxsize=Inf, ptr=1, mark=-1),"Prompt(\"julia> \",...)",[:help=>"Prompt(\"help?> \",...)",:shell=>"Prompt(\"shell> \",...)",:julia=>"Prompt(\"julia> \",...)"],[:julia,:julia,:julia,:julia,:julia,:julia,:julia,:julia,:julia,:julia … :julia,:julia,:julia,:julia,:julia,:julia,:julia,:julia,:julia,:julia]),LatexCompletions(),(anonymous function))]), 
    REPLBackendRef(RemoteRef(1,1,0),RemoteRef(1,1,1))) 

запустить его из SublimeRepl возвращает следующее сообщение об ошибке: ERROR: active_repl not defined.

Итак, можно ли каким-то образом изменить тип REPL, который начинается julia, когда я запускаю его из возвышенного? И если это возможно, какой тип REPL мне нужно использовать?

ответ

1

я обнаружил обходной путь некоторое время назад, и отправил его на Reddit: https://www.reddit.com/r/SublimeText/comments/5jtnj7/sublimerepl_is_it_possible_to_mimic_commandline/

В частности:

Found a (really) hacky solution to see the julia> prompts!

In Preferences > Browse Packages > SublimeREPL/sublimerepl.py , add these two lines under the else: statement of handle_repl_packet() :

if self.repl.name() == 'julia' : 
    self.write_prompt('julia>') 

For reassurance, the method in its entirety will look like this:

def handle_repl_packet(self, packet): 
     if self.repl.apiv2: 
      for opcode, data in packet: 
       if opcode == 'output': 
        self.write(data) 
       elif opcode == 'prompt': 
        self.write_prompt(data) 
       elif opcode == 'highlight': 
        a, b = data 
        regions = self._view.get_regions('sublimerepl') 
        regions.append(sublime.Region(a, b)) 
        self._view.add_regions('sublimerepl', regions, 'invalid', 
              '', sublime.DRAW_EMPTY | sublime.DRAW_OUTLINED) 
       else: 
        print('SublimeREPL: unknown REPL opcode: ' + opcode) 
     else: 
      if self.repl.name() == 'julia' : 
       self.write_prompt('julia>') 
      self.write(packet) 

This does fail on the first line - I'll see if I can fix that.

EDIT: I failed to mention that I have previously changed sublimerepl.py as described here: SublimeREPL's Slow Printing/Freezing - A Solution . In my experience, it makes SublimeREPL's printing much faster... and is needed to make this julia> fix work as is.

я не нашел более надежное решение с тех пор.

Смежные вопросы