ファイルの内容を別のファイルに挿入する前にファイル名を挿入する方法はありますか
ファイルを別のファイルに挿入する方法を知っています -- :r
しかし、前に挿入しているファイル名を挿入する方法
ありがとう
ファイルの内容を別のファイルに挿入する前にファイル名を挿入する方法はありますか
ファイルを別のファイルに挿入する方法を知っています -- :r
しかし、前に挿入しているファイル名を挿入する方法
ありがとう
コンテンツを読み取る前にファイル名を挿入する小さな関数を作成できます。
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
関数は最初にファイルのパスを挿入し、次にコンテンツを挿入します。ファイルが読み取れない場合 (たとえば、存在しない場合)、エラー メッセージが表示されます。
これは基本的なスクリプトなので、少し調整できます。
ファイル名がレジスタ (システム クリップボードなど) にある場合は、<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>#