Как конвертировать весь текст в Vim в нижний регистр? Это вообще возможно?
Как конвертировать весь текст в Vim в нижний регистр? Это вообще возможно?
Ответы:
Если вы действительно имеете в виду маленькие заглавные буквы , то нет, это невозможно - точно так же, как невозможно преобразовать текст в жирный или курсив в любом текстовом редакторе (в отличие от текстового процессора ). Если вы хотите преобразовать текст в нижний регистр, создайте визуальный блок и нажмите u
(или U
для преобразования в верхний регистр). Tilde ( ~
) в командном режиме меняет регистр символа под курсором.
Если вы хотите, чтобы весь текст в Vim отображался маленькими буквами, вы можете посмотреть на эту guifont
опцию или ввести, :set guifont=*
поддерживает ли ваш аромат Vim средство выбора шрифтов GUI.
guu
снизит строчку и gu[motion]
уменьшит значение текста этого движения. Точно так же gUU
и gU[motion]
работают так же, только для прописных.
Я полагаю, вы хотите, чтобы текст в нижнем регистре. Решение довольно простое:
ggVGu
Объяснение:
U
буквы (например ggVGU
)
Похоже на решение Мангледорфа, но короче и дружелюбнее
:%s/.*/\L&/g
:%s/.*/\L&
было бы достаточно (не нужен g
флаг, так как .*
выделяет всю строку)
:%s/./\L&/g
, поскольку / g / обозначает глобальную для строки операцию. Что получает меня, тем не менее, это &
. Почему это необходимо?
&
означает здесь what was matched by the pattern
, так что это можно понять следующим образом: заменить .*
на \Lowercase(what was matched by the pattern)
. Обратите внимание, что сопоставление .
глобально медленнее, чем сопоставление.*
Множество способов снять шкуру с кошки ... вот способ, о котором я только что писал :
:%s/[A-Z]/\L&/g
Аналогично для заглавных букв:
:%s/[a-z]/\U&/g
Я предпочитаю этот способ, потому что я использую эту конструкцию ( :%s/[pattern]/replace/g
) все время, так что это более естественно.
:%s/./\U&/g
тоже работает. Оказывается, он игнорирует цифры и не алфавитные символы. Что получает меня, так это &
. Почему \ U (или \ L) само по себе недостаточно? Можем ли мы получить объяснение этому?
&
является заменой для согласованной строки. Таким образом, \U&
заглавная строка соответствует заглавной, чтобы ее можно было использовать для замены.
Для примеров и дополнительной информации, пожалуйста, прочитайте это: http://vim.wikia.com/wiki/Switching_case_of_characters
&
. \ L и \ U имеют смысл, но зачем это &
нужно?
использование ggguG
GG: идет к первой строке. gu: изменить на строчные. G: идет к последней строке.
Обычно Vu(или VUв верхнем регистре) достаточно, чтобы превратить всю строку в строчную, так как Vуже выбирается вся строка, к которой применяется действие.
Tilda ( ~) изменяет регистр отдельных букв , что приводит к регистру верблюдов или тому подобному.
Действительно здорово, что у Vim есть много разных режимов, чтобы иметь дело с различными случаями, и как эти режимы аккуратно организованы.
Например, v- истинный визуальный режим и связанные с ним V- визуальные линии и Ctrl+ Q- режимы визуальных блоков (что позволяет выбирать блоки, отличная особенность, которую некоторые другие продвинутые редакторы также обычно предлагают, удерживая Altклавишу и выбирая текст).
Если вы работаете под ароматом Unix
:0,$!tr "[A-Z]" "[a-z]"
:%!tr A-Z a-z
!
Показывает внешнюю команду оболочки, так что $ man tr
(в отличие от :help tr
) , показывает , что tr
для translate
.
:%0,$!tr [:upper:] [:lower:]