Re: [vim ] 某些檔名的檔案無法用vim打開
看板Editor (編輯器(vim/emacs))作者akria (akria)時間14年前 (2010/08/28 22:43)推噓0(0推 0噓 0→)留言0則, 0人參與討論串2/2 (看更多)
稍微測試了一下這個功能,確實有這個問題。
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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
Editor 近期熱門文章
PTT數位生活區 即時熱門文章