作者Bellkna (柔弱氣質偽少女)
看板Editor
標題[vim ] 外部命令時 如何關閉 自動加 \ ?
時間Sun Jul 26 22:35:25 2015
linux 下
遇到特殊字元時(空白之類,處理檔名or路徑)
外部命令會自動加上 \ 沒什麼問題
windows 下
檔名和路徑的空白會變成 " " -> "\ "
這會讓 cmd 錯誤
請問該怎麼不讓它處理特殊字元時 不自動加上 \
不然每次處理有特殊字元的外部命令時
總是得再手動編輯
謝謝
舉例:
0read !dir/on 含空白之路徑or檔名
這樣子就會跳錯誤
說明詳細點就是
假設我今天要用外部命令讀取一個目錄的檔案列表(使用 cmd 的 dir)
目錄路徑為 c:\arch linux\
使用指令為 :0read !dir/on c:\arch(按tab auto-comp後) 會變成
:0read !dir/on c:\arch\ linux\
^^
問題點在於 cmd 不吃這個跳脫符號
變成遇到這類型目錄or檔案 就得手動再編輯命令
使用 ssl 也只是變成
:0read !dir/on c:/arch\ linux/
"\" 會變成 "/"
我在目錄前先加了 單or雙引號 也是會自動在空白前加上 "\"
不知道這樣子問題有沒有比較清楚一點
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.123.103
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Editor/M.1437921328.A.4EF.html
1F:→ ViewMoon: 不是很理解問題, 是指要 :set nossl 嗎 07/27 19:07
※ 編輯: Bellkna (114.33.123.103), 07/27/2015 19:36:53
2F:→ ViewMoon: cnoremap <C-t> <C-\>e(<SID>RmCmdBackSlash())<CR> 07/30 00:10
3F:→ ViewMoon: function! s:RmCmdBackSlash() 07/30 00:10
4F:→ ViewMoon: return substitute(getcmdline(), '\\ ', ' ', 'g') 07/30 00:10
5F:→ ViewMoon: endfunction 07/30 00:10
6F:→ ViewMoon: 把以上四行貼到 .vimrc (Windows 是 _vimrc) 07/30 00:11
7F:→ ViewMoon: 以後按 Ctrl-t , 參考資料是 07/30 00:13
9F:→ Bellkna: 研究一下 謝謝回答 07/30 18:46
10F:→ Bellkna: ok了 謝謝 07/30 22:58