如何在将文件插入vim中的另一个文件之前插入文件名

时间:2013-03-25 15:06:03

标签: unix vim vim-plugin

我们是否可以在将文件内容插入另一个文件之前插入文件名

我知道如何将文件插入另一个文件 - :r

但是如何插入我们之前插入的文件名

由于

2 个答案:

答案 0 :(得分: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>#

答案 1 :(得分: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

该函数将首先插入文件的路径,然后是内容。如果文件不可读(例如不存在),则会出现错误信息。

这只是基本的脚本,你可以调整一下。