Я ищу простой способ поиска и замены вещей в vim как «обходной путь» для рефакторинга.vim: Поиск и замена
На какой-то другой StackOverflow-вопрос, который я нашел этот фрагмент кода:
nnoremap gR gD:%s/<C-R>///gc<left><left><left>
Я думал Б-жьей выбирает текущее слово под курсором во всем документе и % S затем поиск и заменяет после ввода шаблона замены. gc означает глобально с подтверждением?!
Однако: Это не работает должным образом. Например, в каком-то классе python я могу легко переименовать события самостоятельно во весь файл, но он не работает с идентификаторами методов или идентификаторами полей с длиной одного.
def __init__(self):
self.test = []
self.A = []
...
Так само может быть изменен с помощью этого фрагмента кода, но делать Gr на поле просто не работает.
Как я могу получить эту работу, чтобы сделать простой поиск и заменить на один файл?
Любые советы по интеллектуальному рефакторингу также будут оценены. После нескольких часов поиска я только что нашел плагины и обходные пути, которые работают в основном с файлами C, но мне также понадобится хотя бы совместимость с Java, Python и PHP.
Спасибо за каждый ответ :)
UPDATE: Недавно я узнал, что это просто работает, если исходный выбранный шаблон на начало строки. Если шаблон находится где-то посередине линии, он не работает ... какие-либо идеи?
спасибо за объяснение и быстрый ответ :) но на самом деле, если я нажимаю gR, когда курсор включен * сам * он работает, как ожидалось, делает то же самое на * A * от * self.A * он просто выделяет каждый * A * в файле, но не предлагает командной строки с заполненным поиском и заменяет материал. Командная строка просто пуста ...? – daniel451
Редактирование: одна длинная переменная работает тоже, но только если начальное появление находится в начале строки. В дополнение к этому: также более длинные слова, такие как * append * или stuff do ** not ** работают, если они находятся где-то посередине линии ... любые идеи? – daniel451
Ошибки 'gD', когда слово под курсором является первым вхождением в буфер. – romainl