Мой вопрос прост: есть ли способ сократить два слова, разделенных пробелом , используя только команду ab
в vi
... Is можно ли избежать символа пробела?
В stackoverflow я нашел только этот один, но все ответы использовали < сильная> команда подстановки . Я также пробовал:
:ab word1<space>word2 replaceWord
Но зря (сгенерировал ошибку)
2 ответа
К сожалению, это невозможно.
От :help :abbreviate
:
Examples of strings that cannot be abbreviations: "a.b", "#def", "a b", "_$r"
Это потому, что существует только три типа сокращений (все еще из :help
):
full-id The "full-id" type consists entirely of keyword characters (letters
and characters from 'iskeyword' option). This is the most common
abbreviation.
Examples: "foo", "g3", "-1"
end-id The "end-id" type ends in a keyword character, but all the other
characters are not keyword characters.
Examples: "#i", "..f", "$/7"
non-id The "non-id" type ends in a non-keyword character, the other
characters may be of any type, excluding space and tab. {this type
is not supported by Vi}
Examples: "def#", "4/7$"
На самом деле это можно подражать.
Вам нужно будет определить сокращение для word2
, которое будет проверять, что ему предшествует. Я подробно описал ответ о том, что сокращение начинается с '\', это то же самое (за исключением того, что вам, возможно, придется протестировать последний слово в предыдущей строке).
Похожие вопросы
Связанные вопросы
Новые вопросы
vim
Vim - это бесплатный модальный текстовый редактор с открытым исходным кодом, доступный для большинства основных платформ. Это позволяет с высокой эффективностью выполнять многие задачи по редактированию текста, но имеет крутую кривую обучения. Чтобы изучить основы, запустите ": help vimtutor". Для вопросов, не связанных с программированием, используйте https://vi.stackexchange.com/.