Function . 什么是?与C的相似性与CTags对PHP的支持无关。它支持PHP和Python。请看一看,以了解全面的支持。如果能够参考了解如何最好地操作这些CTAG,那将是非常棒的。这已经过时了。当前的解决方案是将vim和nvim可用的其中一个LSP客户端作为插件

Function . 什么是?与C的相似性与CTags对PHP的支持无关。它支持PHP和Python。请看一看,以了解全面的支持。如果能够参考了解如何最好地操作这些CTAG,那将是非常棒的。这已经过时了。当前的解决方案是将vim和nvim可用的其中一个LSP客户端作为插件,function,vim,Function,Vim,. 什么是?与C的相似性与CTags对PHP的支持无关。它支持PHP和Python。请看一看,以了解全面的支持。如果能够参考了解如何最好地操作这些CTAG,那将是非常棒的。这已经过时了。当前的解决方案是将vim和nvim可用的其中一个LSP客户端作为插件与专用的独立语言服务器结合使用,该服务器可实时分析代码。有很多LSP服务器,例如Eclipse.JDT.ls for Java,FelixBecker/php语言服务器for php等等。我一直想知道为什么有些程序员会这样写他们的签名!此外,当



. 什么是?与C的相似性与CTags对PHP的支持无关。它支持PHP和Python。请看一看,以了解全面的支持。如果能够参考了解如何最好地操作这些CTAG,那将是非常棒的。这已经过时了。当前的解决方案是将
vim
nvim
可用的其中一个LSP客户端作为插件与专用的独立语言服务器结合使用,该服务器可实时分析代码。有很多LSP服务器,例如Eclipse.JDT.ls for Java,FelixBecker/php语言服务器for php等等。我一直想知道为什么有些程序员会这样写他们的签名!此外,当您编写函数签名(包括第一列中的“{”)时,您可以通过按]]在文件中前进,快速切换到每个函数,然后[[退一步说。gnu global比ctags好。@Jichao,你能给我们一些关于你的经验的更深入的了解吗?gnu global使用什么语言对你更合适?你喜欢它的上下文中还有什么其他的东西吗?因为我很重要?或者你可能在许多不同的场景中使用过它,而且你似乎大部分/总是优先考虑它r it?你更喜欢它的什么?谢谢。@Jichao我把你的评论变成了一个社区维基答案。我欢迎你对此答案所做的更改和输入。如果光标下没有这个词(我宁愿键入它),该怎么办?@FuadSaud仅使用
/
/
搜索它几乎总是不精确的,因为它将匹配所有的眼波。我发现您实际上可以通过ctags执行
:tag
跳转到定义。@Faud跳转到定义功能依赖于用光标指向标识符(在每个IDE中).键入/搜索是另一项功能,你会把它们弄糊涂。它甚至可以遍历IdeaVIM(IntelliJ工具的免费插件,如CLion)中的文件.Hi@mykola golubyev,您在
\2507
脚本的
详细说明
部分中提供的链接已断开。您可以提供另一个链接吗?
*
g*
之间的区别在于搜索时的单词边界。
*
进行
\
搜索(与常规正则表达式中的
\bkeyword\b
相同),而
g*
在无词边界的情况下搜索
关键字
。如果一个文件中有100个函数出现,
*
将在找到定义之前平均命中50次。@NOTT101,但如果有两个函数出现,
*
将平均只命中一次find定义。除非你对定义做了
*
,这时你可能应该暂时休息一下…指向提到的Mac文章的链接已断开。下面是更新的链接:你最好使用Homebrewcoc之类的工具安装CTAG,但它似乎没有提供通过搜索你来跳转到函数定义的方法是吗?也就是说,如果我知道一个函数名,我可以使用coc从任何地方跳转到它吗?coc支持它自己的扩展类型,并附带了一些扩展-其中有一个
符号列表
扩展。默认情况下,它映射到
s
(至少我认为是-如果不是,就键入
:CocList符号
)。当列表触发时,您将获得一个输入,以搜索变量、函数、类、接口等。问题是跳转到“定义”而不是“声明”。如果函数在头文件中声明,例如
test.h
g+d将带您到“声明”。一旦无法跳转到“定义”这是在“test.c”中…有没有任何方法可以使用COC进行此跳转?@cpm回答了一些问题,但没有解释此跳转。我不知道在终端(项目文件夹内)中使用
ctags-R*
的其他方法然后在vim内部发出命令
:tag
。这么多年后,这仍然没有实现…我非常失望。。。
set tags=tags;/
int
main(int argc, char *argv[])
{
    ...
}
ctags -R
ctags --exclude=.git --exclude='*.log' -R * `bundle show --paths`
set autochdir 
set tags+=./tags;
call plug#begin()
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'puremourning/vimspector'
call plug#end()

" key mappings example
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gD <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" there's way more, see `:help coc-key-mappings@en'
call plug#begin()
Plug 'neoclide/coc.nvim'
Plug 'dense-analysis/ale'
Plug 'puremourning/vimspector'
Plug 'scrooloose/nerdtree'
Plug 'scrooloose/nerdcommenter'
Plug 'sheerun/vim-polyglot'
Plug 'yggdroot/indentline'
Plug 'tpope/vim-surround'
Plug 'kana/vim-textobj-user'
  \| Plug 'glts/vim-textobj-comment'
Plug 'janko/vim-test'
Plug 'vim-scripts/vcscommand.vim'
Plug 'mhinz/vim-signify'
call plug#end()
:tag <f_name>