У меня есть проект cmake. Я хочу сделать следующее легко
Как я могу это настроить?





Вы можете указать Vim, где искать включения, добавив записи в опцию path. Однако у меня недостаточно опыта работы с Cmake, чтобы знать, как извлекать пути из CMakeLists.txt.
См. :help 'path'.
Предполагая, что path настроен правильно, можно использовать встроенный :dsearch и связанные с ним команды для поиска определений во включениях.
Параметр define имеет предписывающее имя, но его можно использовать для поиска любого конкретного шаблона, чтобы вы могли изменить его, чтобы он соответствовал объявлениям или чему-то еще.
См. :help include-search и :help 'define'.
В Vim нет встроенного понятия «ссылка». :isearch и друзья должны работать для этого, но они, вероятно, будут слишком шумными.
Переименование обычно выполняется примерно так:
:grep foo paths
:cwindow
:cdo s/foo/bar/gc
@bloody, Vim - это не IDE. Он ничего не знает о вашем коде, поэтому нет никаких причин ожидать уровня интеллекта IDE. Тем не менее, флаг /c запрашивает у пользователя подтверждение, поэтому, если вы обратите внимание на то, что делаете, вы не сильно рискуете.
Спасибо за ответ. После нашего обмена я понял, что :grep -w foo paths лучше вообще переименовать. Это не похоже на переименование IDE, но оно, по крайней мере, не будет включать подстроки из более длинных имен, что, возможно, сэкономит время на проверку. Наверняка ближе к "настоящему" переименованию.
Вы можете попробовать использовать плагин vim cmake4vim, чтобы интегрировать CMake в Vim. Этот плагин помогает работать с целями cmake и позволяет генерировать файл базы данных компиляции (compile_commands.json). Многие плагины используют этот файл для завершения кода, перехода к определению и т. д. (Например, YCM)
Также вы можете использовать плагины vim lsp (например, vim-lsp), эти плагины используют языковые серверы для автозавершения кода, рефакторинга и других полезных функций.
Но интеграция проекта CMake (создание кеша cmake, компиляция проекта и т. д.) И поиск объявления, определения и т. д. - разные задачи. И эти задачи решают разные плагины и инструменты.
Ты дополняешь меня вам поможет. Он использует compilation_database.json, который может быть сгенерирован cmake.
Этот плагин также обеспечивает автоконкурс для многих языков.
Пожалуйста, Возьмите тур, и обязательно с вашим ссылка для ответа. Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. как ответить
Я использую функции в vim и назначаю их горячим клавишам.
https://developer.ibm.com/tutorials/l-vim-script-2/
это дает вам больше ощущения от IDE. но в конце концов вы получаете немного больше контроля.
Это переименование по токену (как это предусмотрено всеми современными IDE)? Или это поиск / замена тупой строки, которая может нанести ущерб другим именам и частям текста?