14

私は主にviコマンドでターミナルから vim を使用します。

私は、 getting started.txtのような名前のファイルを作成して保存したいと考えています(2 つの単語の間にスペースがあります)。私は2つの方法を試しました:

方法 1

:sav getting started.txt

しかし、エラーが発生しました:E172: Only one file name allowed

方法 2

:sav "getting started.txt"

今回は私が得た:E471: Argument required

どうすれば私が望むものを達成できますか?

4

2 に答える 2

15

スペース文字をエスケープします。

:sav getting\ started.txt
于 2012-06-15T20:51:56.253 に答える
6

コメンター @ib が言及していfnameescapeます。使用方法は次のとおりです。

  1. とスペースを入力:saveします。
  2. Ctrl-Rを押し=て式モードに入ります。
  3. を入力しfnameescape("Your spacey, special character'y file name")ます。Tab拡張が機能するので、おそらく実行できますfnTabeTab
  4. を押しEnterて、エスケープされたファイル名をコマンド ラインに挿入します。

ポスター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 
于 2015-04-06T21:22:25.343 に答える