我最近转换为使用 vim 并且完全被它卖掉了。
我还没有找到一种很好的方法来使用带有 ctags 的 jsdoc 注释来获得智能感知或跳转到函数的能力。
你怎么做到这一点?
我不得不说,coc-vim
github 主页自述文件中的一些建议键映射给了我迄今为止最好的体验,尤其是在将 TypeScript 用作语言服务器时,您可以coc-tsserver
使用coc-vim
.
<SHIFT>K
将在我的屏幕顶部显示函数定义/文档的弹出窗口。您还可以获得类似于在 VSCode 中获得的自动完成功能。只需少量设置,您还可以在屏幕底部的回声区域获得功能签名。
gd
超过一个符号将带我直接进入该符号的定义。这也适用于 React,并将带我到定义组件的文件。
我还没有测试过vim-jsdoc
,但是从 github 页面的浏览来看,它看起来很方便基于函数签名生成 JSDoc 注释。
作为替代方案,coc-snippets
有一些方便的 JSDoc 看起来可能会做类似于vim-jsdoc
/jsdoc.vim
的事情。
“类似智能感知”的自动完成是通过像autocomplpop或neocomplcache这样的插件获得的。如果没有这些插件或标签文件,并且假设您正在编写 JavaScript,那么<C-x><C-o>
在该点之后键入myObj.
将为您提供本机和自定义属性/方法的列表。
我不知道有任何使用 JSDoc 的全方位完成脚本。
ctags 不会帮助您进行智能感知,但它会帮助您跳转到函数或类定义:
$ ctags -R *
在您的 java 项目的顶层执行此操作,然后:
$ vi -t functionName # or ClassName
一旦进入 vim,ctrl+] 跳转到光标下的函数或类名的定义,ctrl+T 跳转回来。
对于智能感知,请查看 vim 的 ensime - 它也可以在 vim 和 emacs 中完成 scala 和 java:https ://github.com/MarcWeber/ensime 。但是设置这一切并不容易,所以要注意:)
另请查看更易于设置的 vim jde 插件:http: //www.vim.org/scripts/script.php? script_id=1213
Tern的能力给我留下了深刻的印象。
在分析了我们项目中的代码之后,它可以告诉我哪些全局变量是可见的、它们内部可用的函数以及它们的参数的类型(某些)!
使用Tern-for-Vim 插件,您可以在自动完成时查看此信息(在拆分窗口中使用 jsdocs),或在命令行中显示信息。
不过,它确实需要一些设置。(npm install
在插件文件夹中,并创建一个配置文件来告诉 Tern 要查看哪些文件。)
您可以将文档绑定到K
Javascript 和 Coffeescript 文件的键,如下所示:
autocmd BufReadPost *.{js,coffee} nnoremap <buffer> K :TernDoc<CR>