几个月前,我从 Textmate 切换到 Vim。总的来说,我真的很喜欢 Vim,但我从 Textmate 中错过的一件事是使用 ⌘R 命令来运行 Ruby 代码,并在一个新的可滚动窗口中整齐地弹出结果。显然,Vim 能够运行 Ruby 代码并使用:w !ruby. 唯一的缺点是,如果结果输出太长,我无法滚动浏览它。
为了解决这个问题,我尝试修改Vim Tips 中的一个:redir函数。它看起来像这样:
function! TabMessage(cmd)
redir => message
silent execute a:cmd
redir END
tabnew
silent put=message
set nomodified
endfunction
command! -nargs=+ -complete=command TabMessage call TabMessage(<q-args>)
Run Code Online (Sandbox Code Playgroud)
现在 Ruby 的输出被放入一个新选项卡中。但是,我无法让它在一个新的、单独的窗口中弹出。更改tabnew为new仅将输出发送到同一窗口中的拆分。
另一个问题是一个visible^M被附加到每一行的末尾,所以输出最终看起来像这样,这有点麻烦:
Hello World!^M
Run Code Online (Sandbox Code Playgroud)
那么,有没有办法将输出放入单独的窗口而不^M附加到末尾?我应该使用任何插件来实现这种类似 Textmate 的代码输出效果吗?
小智 1
听起来你正在使用 MacVim,所以试试这个:
:w !ruby | mvim -c "set nomodified" -
Run Code Online (Sandbox Code Playgroud)
假设您mvim的路径中有该脚本,它将执行当前缓冲区的内容,然后将输出通过管道传输到在新 OS X 窗口(相对于新 Vim 窗口)中运行的 MacVim 实例。新缓冲区被标记为未修改,以避免在您尝试关闭它而不保存时出现警告。
更多信息:
:help macvim
:help mvim
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |