Нет, хотя Vim является хорошей средой для редактирования и может быть настроена множеством способов (свертывание кода, раскраска синтаксиса, расширение макроса и т. Д.), Большинство из них выполняется на уровне синтаксиса, а не на семантическом уровне , Даже свертывание кода просто совпадает с противоположными скобками.
Чтобы правильно выполнить рефакторинг, вы должны иметь много семантических знаний об AST, о том, какие переменные объявлены, в какой области и т. Д. Среды IDE, такие как Eclipse, создают кэш переменных, определенных в каждой лексической области, чтобы они могли быстро ссылаться на то, где они используются в плане определения того, что переименовывать и где.
Это не значит, что вы не можете делать некоторые вещи синтаксически; в конце концов, достаточно просто вынуть блок кода и поместить его в отдельную функцию. Возможно, вы даже сможете угадать некоторые параметры (например, найти список переменных, выяснить, какие из них имеют локальные объявления, удалить их, а что осталось - ваши параметры. Но Eclipse также делает другие вещи - например, выясняет, есть ли какие-либо переменные). изменено в функции и гарантирует, что они возвращаются возвращаемым значением. Он также проверяет наличие любых исключений и добавляет их в список.
Чистый эффект состоит в том, что, хотя вы можете приблизить некоторые из них в Vim, вы действительно не сможете заставить это работать в среде только для Vim. Вы можете использовать Vim-подобную привязку клавиш в собственном Eclipse или посмотреть на eclim . С домашней страницы:
Основная цель eclim - принести
Функциональность Eclipse для Vim
редактор. Первоначальной целью было
обеспечить Java-функциональность Eclipse
в VIM, но поддержка различных других
языки (c / c ++, php, python, ruby,
CSS, HTML, XML и т. д.) были добавлены
и еще несколько запланировано.
Eclim - это менее приложение и
больше интеграции двух великих
проекты. Первое, Вим, возможно
один из лучших текстовых редакторов в
существование. Второе, Затмение,
предоставляет много отличных инструментов для
разработка на разных языках. каждый
предоставляет множество функций, которые могут
увеличить производительность разработчика, но
оба все еще оставляют что-то
желательно. Vim не поддерживает нативную Java
и многие из расширенных возможностей
доступно в Eclipse. Затмение, на
С другой стороны, все еще требует использования
мышь для многих вещей, и когда
по сравнению с Vim, обеспечивает менее
идеальный интерфейс для редактирования текста.
Вот где эклим вступает в игру.
Вместо того, чтобы пытаться написать IDE в
Vim или редактор Vim в Eclipse, eclim
предоставляет подключаемый модуль Eclipse, который
предоставляет возможности Eclipse через
интерфейс сервера и набор Vim
плагины, которые общаются с Eclipse
через этот интерфейс.
Это не только дает Eclipse-подобную среду, это - это Eclipse. Но вы по-прежнему получаете функции навигации и редактирования текста в vim. Похоже, это может удовлетворить ваши потребности, хотя в документации по поддержка рефакторинга не указано, что она обеспечивает функциональность метода извлечения.