我使用vim编写c++代码。
经常会发现自己浪费时间(并且打破了工作状态),去查找一些琐碎的事情,例如:
std::string.substring需要传入(start, length)还是(start, end)参数。
这通常会导致我打开浏览器,等待加载;在Google上搜索;第一个链接无用,尝试第二个链接;好了,完成。
其他人如何在vim中处理这个问题?是否有一个漂亮的*.tgz包可以下载标准函数文档,并在vim内部引用它们?
谢谢!
我使用vim编写c++代码。
经常会发现自己浪费时间(并且打破了工作状态),去查找一些琐碎的事情,例如:
std::string.substring需要传入(start, length)还是(start, end)参数。
这通常会导致我打开浏览器,等待加载;在Google上搜索;第一个链接无用,尝试第二个链接;好了,完成。
其他人如何在vim中处理这个问题?是否有一个漂亮的*.tgz包可以下载标准函数文档,并在vim内部引用它们?
谢谢!
您还可以使用cppman,提供以下内容:
适用于Linux/MacOS的C++ 98/11/14手册页
然后当您在Vim中键入ShiftK时,您可以使用它代替man
(请参见@alesplin的回答):
autocmd FileType cpp set keywordprg=cppman
这将打开一个类似于man
的页面,其中包含STL文档,您可以使用Vim分页器进行导航。
为了更好地与Vim集成,它可能可以与vim-man或任何其他类似的插件一起使用。
个人而言,我通过重新映射C ++文件的ShiftK来绕过keywordprg
,并打开了tmux拆分:
command! -nargs=+ Cppman silent! call system("tmux split-window cppman " . expand(<q-args>))
autocmd FileType cpp nnoremap <silent><buffer> K <Esc>:Cppman <cword><CR>
tmux split-window cppman vector
会打开一个新的 tmux 窗口,并显示 vector 的 cppman 页面。 - Jan我不熟悉C++编程,但是如果有相关函数的手册页面,您可以将光标放在函数名称上,然后按下ShiftK来访问它们。这仅适用于已安装手册页面的函数,所以效果因情况而异。
我知道这是一个老问题,但我正在寻找同样的东西,没有任何答案对我有帮助。如果其他人来到这个问题,他们可能会发现这很有用。
你应该使用CRefVim插件。使用它,您将完全访问C参考手册。它是为C而不是为C ++设计的,但仍然非常方便。
The usage:
There are several ways to specify a word CRefVim should search for in order
to view help:
正常模式下 cr:获取光标下单词的帮助信息 记忆法 cr:(c)-(r)eference 可视模式下 cr:获取可视选择文本的帮助信息 记忆法 cr:(c)-(r)eference cw: 提示输入 CRefVim 应搜索的单词 记忆法 cw:(c)-reference (w)hat cc: 跳转到 C-reference 手册的目录 记忆法 cc:(c)-reference (c)ontents
注意:默认情况下,是 \,例如按下 \cr 来调用 C-reference
注意:搜寻运算符(++, --, %, ...)的最佳方法是将其可视化选择并按下 cr。
获取帮助请执行 :help crefvimdoc 显示 C-reference 手册请执行 :help crefvim
您也可以使用 :help
。要搜索函数的帮助,请像这样使用它
:help crv-FUNCTION_NAME
使用:h crv-strlen
,您可以找到有关strlen()
函数的帮助。使用:h crv-operator
,您可以找到有关C运算符的章节。
这并不是一个“在vim内部”的答案……但为什么不跳过“打开浏览器,搜索Google”这一步呢?只需将浏览器指向好的API文档,并保持其打开状态。http://www.dinkumware.com/manuals/default.aspx是我最喜欢的(也可以下载离线参考),http://www.cplusplus.com/reference/也不错。切换窗口,再点击两三下,你就能得到答案了;我怀疑“在vim内部”的解决方案对你的工作流程影响不会更小。
话虽如此,对于那些使用纯文本界面的人来说,在vim内部找到解决方案确实很不错,所以我期待其他答案的出现。;-)