2012-04-02 81 views
1

我使用的是Mac OS X Lion的終端上,Vim 7.3,並具有以下映射:終端VIM執行打開命令和回不回

map <silent> <leader>p :<C-u>silent !open -a Marked.app '%:p'<CR><C-l>

,並曾嘗試:

command! Marked silent !open -a "Marked.app" "%:p"Opening current file in Marked with a Vim command

這個工作在的MacVim在Marked.app打開當前文件,但在終端的Vim打開文件,並沒有返回Vim的可用狀態給出。我必須C-z然後fg才能恢復。

+4

CLI Vim無法分叉進程,我想。你在命令的最後用'&'試過了嗎? – romainl 2012-04-02 16:22:49

+0

我試過了,但沒有幫助。 – 2012-04-06 15:00:38

+0

不,它不會完全符合你的要求,因爲CLI Vim不能分叉進程。但添加'&'就不需要''/'fg',因爲您只需要額外的''就可以回到Vim。由於這是Vim的限制,有些人編寫了插件來提供這個功能:[一](https://github.com/MarcWeber/vim-addon-background-cmd),[另一個](http://www.vim .ORG /腳本/ script.php的?SCRIPT_ID = 3431)。 – romainl 2012-04-06 15:16:25

回答

1

終端Vim處於「無法使用的狀態」看起來實際上是Vim沒有重畫屏幕。這解決了這個問題:

command! Marked silent !open -a "Marked.app" "%:p" 
nmap <silent> <leader>p :Marked<CR>\|:redraw!<CR> 

在旁邊注意:MacVim沒有這個問題。我相信MacVim有許多其他的細節我會錯過。但在終端上運行Vim已經是一個巨大的生產力提升。