我有这些线~/.inputrc:
set editing-mode vi
set keymap vi
Run Code Online (Sandbox Code Playgroud)
这允许我vi在每个使用GNU读取行进行文本输入的程序中使用键绑定.例如:python,irb,sftp,bash,sqlite3,等.它使得使用命令行变得轻而易举.Matlab 不使用readlines,但是在调试或交互式工作时,vi键绑定会很棒.有现成的解决方案吗?
我倾向于使用matlab -nosplash -nodesktop命令行,并且让我思考:有可能写出一个包装不使用readlines方法和输入传递给matlab?(如果我必须实现这一点,我可能更愿意在Ruby中这样做.)
更新:
谢谢您的帮助.这几乎有效:
# See also: http://bogojoker.com/readline/
require 'readline'
puts 'Starting Matlab...'
io = IO.popen('matlab -nosplash -nodesktop 2>&1', 'w+')
while input_line = Readline.readline('>> ', true)
io.puts input_line
puts io.gets
end
Run Code Online (Sandbox Code Playgroud)
但它一次只从Matlab读取一行(因为我正在使用gets).关于如何在下次等待输入之前获取所有内容的任何想法?这是发生了什么(我在>>提示符处输入内容):
Starting Matlab...
>> 1
>> 2
< M A …Run Code Online (Sandbox Code Playgroud)