作者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/cn.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