0

ファイルの内容を別のファイルに挿入する前にファイル名を挿入する方法はありますか

ファイルを別のファイルに挿入する方法を知っています -- :r

しかし、前に挿入しているファイル名を挿入する方法

ありがとう

4

2 に答える 2

2

コンテンツを読み取る前にファイル名を挿入する小さな関数を作成できます。

fun! ReadwithFn(fname)
    let fn = expand(a:fname)
    if !filereadable(fn)
        echohl Error 
        echom fn." cannot be read!"
        echohl NONE
    else
        execute "put ='".fn."'"
        execute 'read '.fn
    endif   
endf

独自のコマンドを追加して定義します。

command! -nargs=1 R call ReadwithFn(<q-args>)

上記のコードをソースする場合は、次のように入力できます

:R fileToRead

関数は最初にファイルのパスを挿入し、次にコンテンツを挿入します。ファイルが読み取れない場合 (たとえば、存在しない場合)、エラー メッセージが表示されます。

これは基本的なスクリプトなので、少し調整できます。

于 2013-03-25T15:54:15.200 に答える
2

ファイル名がレジスタ (システム クリップボードなど) にある場合は、<C-r>+. これは Vim 変数でも機能します: <C-r>=g:filename<CR>.

ただし、通常は:r filename;を入力するだけです。次に、再度入力することを避けるための唯一のショートカットは、ファイル名の補完 ( :help i_CTRL-X_CTRL-F) です。挿入モードで、ファイル名の先頭を入力してから、補完を試みますfilen<C-x><C-f>

逆の順序で入力すると、入力を避けることができ:readます。コマンドが代替ファイルを設定するので、特殊レジスタを介して挿入できます#

:read filename
'[OI just added <C-r>#
于 2013-03-25T15:34:38.970 に答える