我主要通过vi命令从终端使用 vim 。
我想创建并保存一个名为getting started.txt的文件(两个单词之间有空格)。我尝试了两种方法:
方法#1
:sav getting started.txt
但我得到一个错误:E172: Only one file name allowed
方法#2
:sav "getting started.txt"
这次我得到了:E471: Argument required
我怎样才能达到我想要的?
我主要通过vi命令从终端使用 vim 。
我想创建并保存一个名为getting started.txt的文件(两个单词之间有空格)。我尝试了两种方法:
:sav getting started.txt
但我得到一个错误:E172: Only one file name allowed
:sav "getting started.txt"
这次我得到了:E471: Argument required
我怎样才能达到我想要的?
转义空格字符:
:sav getting\ started.txt
评论者@ib 提到fnameescape
,这里是你如何使用它:
:save
和一个空格。fnameescape("Your spacey, special character'y file name")
。Tab扩展工作,所以你可能可以做fn
Tabe
Tab.海报iler.ml 建议使用一个函数来轻松执行此操作(我稍微修改了他的代码)。把它放在你的.vimrc中:
" :W and :Save will escape a file name and write it
command! -bang -nargs=* W :call W(<q-bang>, <q-args>)
command! -bang -nargs=* Save :call Save(<q-bang>, <q-args>)
function! W(bang, filename)
:exe "w".a:bang." ". fnameescape(a:filename)
endfu
function! Save(bang, filename)
:exe "save".a:bang." ". fnameescape(a:filename)
endfu