微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在Vim中引用命令中当前选定的文本?

在我的C头文件中说我想包含另一个尚未创建的文件

#include "AnotherFile.h" /*not being created yet*/

现在,我在Visual Mode中选择文件,
      #include“AnotherFile.h”

如何使用我选择的名称创建一个文件?我的意思是,

:e  {something that  refers to what I selected}

解决方法

我能想到的最接近的是创建一个函数

function! W() range
  execute "e " .  getline("'<")[getpos("'<")[2]-1:getpos("'>")[2]] 
endfu

然后,您可以选择单词并键入:call W()enter,它应该打开新的缓冲区.

编辑如果修改了包含#include的缓冲区,则上述函数无法正常工作.在这种情况下,以下功能更适合:

function! W() range
  let l:fileName = getline("'<")[getpos("'<")[2]-1:getpos("'>")[2]] 
  new      
  execute "w " . l:fileName
endfu

编辑2您也可以尝试输入:e< cfile> (参见:help< cfile>).

编辑3最后,在:帮助gf你发现隐藏

If you do want to edit a new file,use: >
        :e <cfile>
To make gf always work like that: 
        :map gf :e <cfile><CR>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐