作者akria (akria)
看板Editor
标题Re: [vim ] 某些档名的档案无法用vim打开
时间Sat Aug 28 22:43:06 2010
稍微测试了一下这个功能,确实有这个问题。
VIM处理filename的时候,应该会进行转译的动作。
但是似乎 VIM 当作server,接收remote所传送过来的转译动作跟一般的不同。
碰到 "\(" 就直接被翻译成 "("
目前7.3版,我还没进行测试,不知道是否有这样的问题。
提供一个不直觉的解法,有两个步骤。
1. 在vim中,先设定一个function:
function! VimRemoteOpen(filename)
silent! let ff = fnamemodify(a:filename, ":.")
silent! let ff = escape(ff,'(')
silent! exe "e! " . ff
silent! let garbage_buffer = bufnr(' ')
silent! execute 'bdelete ' . garbage_buffer
silent! call foreground()
endfunction
2. registery的设定改为以下:
[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\open\command]
@="\"C:\\Program Files\\Vim\\vim72\\gvim.exe\" --remote-tab-silent \"+call VimRemoteOpen('%1')\" \" \"
说明如下:
因为利用 remote 来传送的filename,会转译不正常,因此filename 强制填入 ' '
真正的filename则利用cmd栏位,传入 VimRemoteOpen。
gvim --remote-tab-silent "+silent call VimRemoteOpen('%1')" " "
VimRemoteOpen会负责转议、开启正确的档案,并且把 ' ' 空档案移除
老实说,这个解法不是很好,看看是否有其他高手能提供一下解法。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.210.39.175