2016-11-26 2 views
0

Целевой текстовый файл.Как добавить четыре пробела в строках, которые расположены между `{` и `}`?

<style type="text/css"> 
    #wrap{ 
    height: 550px; 
    width: 660px; 
    } 
    #wrap ul{ 
    list-style: none; 
    } 
    #wrap li{ 
    border-radius:3px; 
    cursor:pointer; 
    } 
    #wrap{ 
    height: 550px; 
    width: 660px; 
    } 
    #wrap ul{ 
    list-style: none; 
    } 
    #wrap li{ 
    border-radius:3px; 
    cursor:pointer; 
    } 
</style> 

Теперь я хочу, чтобы добавить четыре белых пробелы в начале линий, которые размещены между { и }, чтобы сделать выше отображается ниже.

<style type="text/css"> 
    #wrap{ 
     height: 550px; 
     width: 660px; 
    } 
    #wrap ul{ 
     list-style: none; 
    } 
    #wrap li{ 
     border-radius:3px; 
     cursor:pointer; 
    } 
    #wrap{ 
     height: 550px; 
     width: 660px; 
    } 
    #wrap ul{ 
     list-style: none; 
    } 
    #wrap li{ 
     border-radius:3px; 
     cursor:pointer; 
    } 
</style> 

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

3,4s/^/ /g 
7s/^/ /g 
10,11s/^/ /g 
14,15s/^/ /g 
18s/^/ /g 
21,22s/^/ /g 

Есть ли более простой и умный способ?

ответ

0

Предполагая, что тип файла вашего документа был правильно установлен html и настройки табуляции правильно, следующее должно хватить:

:2,23norm == 

Но, чтобы ответить на ваш вопрос прямо, вы должны быть нацелены на строки, содержащие ::

:2,23g/:/s/^/ /

Если вы не хотите, чтобы определить диапазон вручную, вы можете сделать:

vit:g/:/s/^/ /

который автоматически вводит диапазон '<,'>.

-1
:g/^[^<#}]/ normal >> 

Объяснение:

: ........... command 
g ........... global command (executes on the following pattern 
/........... start search pattern 
^ ........... beginning of line 
[^ ] ........ denied list 
<#} ......... denied chars 
/........... search pattern's end 
normal ...... execute in normal mode 
>> .......... indentation 

Если эта модель слишком рецидивирующий вы можете положить карту на ваш файл ~/.vimrc, что-то вроде этого:

map <F2> <esc>:g/^[^<#}]/ normal >><cr> 

<cr> означает возврат каретки

+0

Проверено, что некоторые неправильные шаблоны. –