vim script: работа с визуальным выделением, а также со словом под курсором - PullRequest
0 голосов
/ 27 июля 2011

У меня есть маленький скрипт vim , который запрашивает у Google вставку ссылок в текст в формате уценки. В настоящее время он работает только с использованием слова под курсором, который извлекается с помощью expand("<cword>") и изменяется путем выполнения команд обычного режима (norm ciw<new_text>).

Как я могу изменить этот скрипт, чтобы он работал, используя визуальный выбор, если он существует?

Мне нужно в основном три вещи:

  • знать, выбирается ли текст (иначе используйте слово под курсором)
  • восстановить выделенный текст
  • изменить выделенный текст

В идеале я бы хотел, чтобы это был чистый способ.

Есть подсказки?

Приветствия

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

Вы можете аккуратно обработать этот случай, используя отдельное отображение в визуальном режиме (vnoremap вместо nnoremap), которое вызывает ту же базовую функцию.

Для извлечения текста могут быть полезны маркеры `<и`> (для начала и конца предыдущего визуального выбора).

Чтобы изменить текст, вы можетеиспользуйте gv из вашего скрипта (повторно выберите предыдущий визуальный выбор), а затем удалите или замените его, как хотите.

Надеюсь, это поможет сейчас;Я смогу потратить немного больше времени на это позже.

1 голос
/ 28 июля 2011

Ваша функция извлечения визуального выбора слишком сложна. Обычный способ продолжить следующий: lh#visual#selection().

Кстати, вы можете построить отображение нормального режима с помощью:

vnoremap µ :call <sid>DoStuff()<cr>
nmap µ viwµ
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...