如何使用vi保存文件名中包含空格的文件?

时间:2012-06-15 20:50:01

标签: vim

我主要通过 vi 命令从终端使用vim。

我想创建并保存一个名为 getting started.txt 的文件(两个单词之间有空格)。我尝试了两种方法:

方法#1

:sav getting started.txt

但是我收到了一个错误: E172: Only one file name allowed

方法#2

:sav "getting started.txt"

这次我得到了: E471: Argument required

我如何实现我的目标?

2 个答案:

答案 0 :(得分:12)

逃离太空人物:

:sav getting\ started.txt

答案 1 :(得分:4)

评论者@ib提及fnameescape,以下是如何使用它:

  1. 输入:save和空格。
  2. Ctrl - R 然后 = 进入表达模式。
  3. 输入fnameescape("Your spacey, special character'y file name") Tab 扩展有效,因此您可以fn Tab e Tab
  4. Enter 将转义的文件名插入命令行。
  5. 海报iler.ml suggests这是一个容易做到这一点的功能(我稍微修改了他的代码)。把它放在你的 .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