Как преобразовать весь текст в нижний регистр в Vim - PullRequest
190 голосов
/ 09 июля 2009

Как конвертировать весь текст в Vim в нижний регистр? Это вообще возможно?

Ответы [ 10 ]

372 голосов
/ 09 июля 2009

Полагаю, вам нужен строчный текст. Решение довольно простое:

ggVGu

Пояснение:

  1. гг - переход к первой строке текста
  2. V - включает визуальный выбор в режиме линии
  3. G - идет в конец файла (в данный момент у вас выделен весь текст)
  4. u - выделенная строчная область
116 голосов
/ 09 июля 2009
  1. Если вы действительно имеете в виду маленькие заглавные буквы , то нет, это невозможно - точно так же, как невозможно преобразовать текст в жирный или курсив в любом текстовом редакторе (в отличие от текстового процессора ). Если вы хотите преобразовать текст в нижний регистр, создайте визуальный блок и нажмите u (или U для преобразования в верхний регистр). Тильда (~) в командном режиме меняет регистр символа под курсором.

  2. Если вы хотите, чтобы весь текст в Vim отображался маленькими буквами, вы можете посмотреть опцию guifont или ввести :set guifont=*, если ваш аромат Vim поддерживает средство выбора шрифтов GUI.

35 голосов
/ 02 декабря 2013

используйте эту опцию командного режима

ggguG


gg - Goto the first line 
g  - start to converting from current line    
u  - Convert into lower case for all characters
G  - To end of the file.
34 голосов
/ 02 января 2011

Похоже на решение Мангледорфа, но короче и дружелюбнее

:%s/.*/\L&/g

24 голосов
/ 18 октября 2009

Множество способов снять шкуру с кошки ... вот как я просто написал о:


:%s/[A-Z]/\L&/g

Аналогично для заглавных букв:


:%s/[a-z]/\U&/g

Я предпочитаю этот способ, потому что я использую эту конструкцию (:%s/[pattern]/replace/g) все время, поэтому она более естественная.

20 голосов
/ 08 сентября 2011
  • Переключить случай «HellO» в «HELLo» с помощью g ~, затем движения.
  • Прописные буквы от «HellO» до «HELLO» с gU, затем с движением.
  • Строчные буквы "HellO" - "привет" с гу и движением.

Для примеров и дополнительной информации, пожалуйста, прочитайте это: http://vim.wikia.com/wiki/Switching_case_of_characters

7 голосов
/ 14 января 2017

использование ggguG

gg: идет к первой строке. гу: изменить на строчные. G: идет к последней строке.

6 голосов
/ 13 июля 2009

Если вы работаете под управлением Unix

:0,$!tr "[A-Z]" "[a-z]"
5 голосов
/ 14 января 2017

Обычно V u (или V U для прописных букв) достаточно, чтобы превратить всю строку в строчные, как V уже выделяет целую строку, к которой будет применено действие.

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

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

Например, v - истинный визуальный режим и связанные V - визуальная линия и Ctrl + Q - режимы визуальных блоков (что позволяет выбирать блоки, отличная функция, которую некоторые другие продвинутые редакторы также обычно предлагают, удерживая клавишу Alt и выделяя текст).

2 голосов
/ 08 октября 2013

У меня была похожая проблема, и я хотел использовать ":%s/old/new/g", но в итоге использовал две команды:

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