映射a<;时需要何时使用expand;cword>;vim中的命令?

映射a<;时需要何时使用expand;cword>;vim中的命令?,vim,Vim,我可以创建一个映射来搜索光标下的单词,如下所示: noremap <leader>/ :grep <cword> **<cr> noremap/:grep** 为什么像unite这样的unite映射(我怀疑这是unite特有的问题)需要=expand(“”)或而不是 nnoremap g/:Unite-input==expand(“”)标记 特殊字符如%和在:help cmdline special下进行了说明 在Ex命令中,在可以使用文件名的位置,以下命

我可以创建一个映射来搜索光标下的单词,如下所示:

noremap <leader>/ :grep <cword> **<cr>
noremap/:grep**
为什么像unite这样的unite映射(我怀疑这是unite特有的问题)需要
=expand(“”)
而不是

nnoremap g/:Unite-input==expand(“”)标记

特殊字符如
%
:help cmdline special
下进行了说明

在Ex命令中,在可以使用文件名的位置,以下命令 字符有特殊的含义。这些也可用于表达式中 函数
expand()


这就解释了为什么
:edit
有效,但
:echo”“
无效:后者没有文件名<代码>:grep只是模糊地引用了
[参数]
,但自然地其中一些必须是文件。
:Unite
命令是通用的(并且是自定义的),因此您需要在那里使用
expand()
。如果有疑问,请尝试:-)

不使用
expand()
进行尝试。在后一种情况下不起作用。仅将.fzf.vim作为不使用文件作为参数的命令Ag,在这种情况下,我也可以使用
而不使用
expand
。命令定义也没有指定
-complete=file
。该命令可以在内部对传递的参数执行
expand()
。你检查过它的实现了吗?我发现fzf.vim中的Ag最终会被转换成一个运行
execute'silent。如果我运行
:!echo
cword被翻译成光标下的单词,即使vim不知道echo是否在查找文件名(实际上不是)。
nnoremap g/ :Unite -input=<C-r>=expand('<cword>')<CR> tag<CR>