VIM: замените [aeiou] 'на соответствующее акцентированное письмо - за исключением - PullRequest
0 голосов
/ 08 мая 2018

Всякий раз, когда за буквой aiouAIOU следует символ ', я бы хотел поручить VIM автоматически заменять буквы акцентированными буквами àìòùÀÌÒÙ (при удалении').

Буква «е» (и Е), однако, является исключением: если перед ней ставится пробел или CR, а за ним следует ', становится è (и È; при удалении'), в противном случае становится é.

Это не полностью отражает правила итальянского языка, но для меня это начало.

Я сейчас использую это в моем .vimrc nnoremap <leader>, :%s/\([aeiouAEIOU]\)'/\=tr(submatch(1), 'aeiouAEIOU', 'àèìòùÀÈÌÒÙ')/g<CR>

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

1 Ответ

0 голосов
/ 08 мая 2018

Я не знаю, как набрать верхний регистр é .. поэтому я просто использую x и X для них.Этот cmd должен помочь:

%s/\v(\s|\_^)([eE])'/\=tr(submatch(2),'eE','èÈ')/g|%s/\v([aeiouAEIOU])'/\=tr(submatch(1), 'aeiouAEIOU', 'àxìòùÀXÌÒÙ')/g

Вы также можете использовать его в своем отображении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...