vim命令让我困惑.我已多次阅读并重读:help shellescape()
.我还是不明白数字的意义1
在shellescape(expand('%:p'), 1)
.
这是我试图理解的完整命令:
:nnoremap <F4> :exe ':silent !"c:\Program Files\Mozilla Firefox\firefox.exe"'shellescape(expand('%:p'), 1)<CR>
Run Code Online (Sandbox Code Playgroud)
让我们一块一块地分解这个长命令.
:exe
是执行一些命令.:silent !
是静默执行shell命令"c:\Program Files\Mozilla Firefox\firefox.exe"
可以调用我的firefox程序.shellescape()
,有空白被逃脱. expand('%:p')
可以在完整表达式中获取当前文件名,即path + filename.从帮助页面中摘录的内容是什么意思?
使用|非零arg | {special}和'shell'在尾部包含"csh",它
第二次逃脱了.
是否有一些含义与1或2相同s/(ha.*)(world)/\2\1/g
?
请详细举一个简单的例子.
我有两个与该主题相关的问题.
1.我可以通过哪种方式获得我的gvim中有多少种贝壳?
2.在哪种情况下我可以改变1
成2
shellescape()?
:nnoremap <F4> :exe ':silent !"c:\Program Files\Mozilla Firefox\firefox.exe"'shellescape(expand('%:p'), 2)<CR>
Run Code Online (Sandbox Code Playgroud)
基本上有两种不同的用途shellescape()
; 一个是Vimscript system()
函数,另一个是:!
Ex命令.虽然大多数转义需求在两种用途中都是相同的(例如,处理空格,参数必须用引号括起来),但:!
命令需要一些额外的转义,因为在命令行中,Vim为符号赋予特殊含义%
(替换为当前文件名).这不会发生system()
.
因此,要告诉使用shellescape()
哪种转义模式,它有额外的{special}
参数; 如果你传递1
(或任何其他评估为"true"的值),其他字符也会被转义.
TL; DR:通过1
为:!
命令,0
或者省略参数与使用system()
.
归档时间: |
|
查看次数: |
2240 次 |
最近记录: |