【发布时间】:2018-08-31 06:03:00
【问题描述】:
我有一个 cmake 项目。我想轻松完成以下操作
- 搜索光标下任意变量、函数等的声明、定义和引用,可以在外部头文件中声明,其路径通过CMakeLists.txt中的INCLUDE_DIRECTORIES添加
- 重命名项目中声明的变量、函数等
我该如何设置?
【问题讨论】:
我有一个 cmake 项目。我想轻松完成以下操作
我该如何设置?
【问题讨论】:
您可以通过在path 选项中添加条目来告诉 Vim 在哪里寻找包含。不过,我没有足够的 Cmake 经验,不知道如何从 CMakeLists.txt 中提取路径。
见:help 'path'。
假设正确设置了path,则可以使用内置的:dsearch 和相关命令来跨包含搜索定义。
define 选项有一个规定名称,但它可用于查找任何特定模式,因此您可以对其进行更改以匹配声明,或其他任何内容。
参见:help include-search 和:help 'define'。
Vim 没有内置的“引用”概念。 :isearch 和朋友应该为此努力,但他们可能太吵了。
重命名通常通过以下方式完成:
:grep foo paths
:cwindow
:cdo s/foo/bar/gc
【讨论】:
/c 标志会提示用户进行确认,因此,如果您注意自己在做什么,就不会冒险。
:grep -w foo paths 首先更适合重命名。它不像 IDE 的重命名,但它至少不会包含来自较长名称的子字符串,可能会节省一些审查时间。肯定更接近“真正的”重命名。
YouCompleteMe 会帮助你。它使用compile_database.json,可以通过cmake生成。
此插件还提供多种语言的自动竞争功能。
【讨论】:
我在 vim 中使用函数并将它们分配给热键。
https://developer.ibm.com/tutorials/l-vim-script-2/
它给你更多的 IDE 感觉。但归根结底,您会获得更多控制权。
【讨论】: