1

Можно ли сделать так, чтобы метки vim (например, мм) указывали на символ, для которого они изначально установлены, вместо исходного расположения строки / столбца символа?

Например, если я наберу mm на первой букве слова "politicians" (строка 1, столбец 72) в приведенном ниже примере предложения, а затем удалю слово "records" и наберу `m, мой курсор вернется к исходному курсору. позиция (строка 1, колонка 72), которая теперь является местоположением буквы "а" в слове "политики". Я понимаю, что это ожидаемое поведение vim, но я бы хотел, чтобы `m вместо этого возвратил меня в 'p' политиков, даже если расположение строки / столбца изменилось.

Пример предложения:

10-дневный блок наступает после анонимных изменений в политиках и компаниях, а также таких событий, как убийство Кеннеди.

Я нахожу желаемое поведение гораздо более полезным для того, как я пишу / редактирую (особенно при использовании Vim за пределами его первоначальной цели кодирования). Viemu, плагин, который добавляет большую часть функциональности Vim к дескрипторам Word, отмечает то, что я хочу. К сожалению, Viemu не является идеальным портом Vim, и я бы предпочел составлять весь текст (электронные письма, эссе и т.д., А не только код) в Vim. Незнание того, как заставить Vim обращаться с метками по своему желанию, является одной из основных причин, по которой я не использую его исключительно.

Заранее спасибо,

PS Это моя первая публикация на stackexchange/superuser, поэтому, пожалуйста, прости меня, если я не соблюла правильный формат / протокол для того, чтобы задать вопрос, и, пожалуйста, поправь меня.

1 ответ1

0

В то время как отметки будут корректироваться для добавленных / удаленных линий, положение столбца не будет изменяться; Вы правы в этом. Ваше желаемое поведение, безусловно, имеет несколько преимуществ; Я думаю, это просто еще не было реализовано, возможно, из-за сложности. (И это нарушит совместимость с vi и предыдущими версиями Vim, что не так просто.)

Хотя некоторые действия по редактированию можно подключить с помощью :autocmd s, это, как правило, невозможно (например, такие вещи, как :s не могут быть перехвачены), поэтому эмулировать такое поведение в Vimscript будет сложно, и я не знаю ни о каком такая реализация.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .