Re: [vim ] 某些檔名的檔案無法用vim打開

看板Editor (編輯器(vim/emacs))作者 (akria)時間14年前 (2010/08/28 22:43), 編輯推噓0(000)
留言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
文章代碼(AID): #1CUI1zR8 (Editor)
文章代碼(AID): #1CUI1zR8 (Editor)