我想创建一个键组合,用于复制光标下的文本,打开:find
命令,拉出单词,然后按Tab键自动完成列表中的第一个文件名,这样(99%) (例如)我只需按Enter即可打开文件。
map <Leader>o yw:find <C-R>"<Tab>
但是,当我按<Leader>o
时,我会在命令行中获得:find FileName^I
。我怎么能像我自己按键那样做出反应呢?
答案 0 :(得分:3)
您需要wildcharm
选项:
set wildcharm=<C-z>
map <Leader>o yw:find <C-R>"<C-z>
请参阅:help 'wildcharm'
。
这是一个更加可靠,非递归的替代方案,不会无缘无故地破坏未命名的寄存器:
nnoremap <leader>o :find <C-r><C-w><C-z>
答案 1 :(得分:1)
gf
( goto file )命令应该与映射完成相同的操作。这将打开名称位于光标之下或之后的文件。
如果没有达到预期的行为,则值得检查isfname
选项的内容(使用set isfname?
进行检查)。这指定了被视为文件路径名的有效字符的字符列表。
还值得检查/设置Vim path
选项的内容,该选项列出了使用gf
,:find
和类似命令时搜索的目录,例如MS上的默认设置Windows为.,,
:
.
搜索相对于当前正在编辑的文件的目录,,
(空字符串)搜索当前目录;使用cd
命令检查(或设置)当前目录。见
help gf
help isfname
help path