<тегов>
и их содержания, взятых в кавычки "строк"
, {блоков кода}
. Это удобно при редактировании как программ, так и разных языков разметки (HTML, XML и т. п.).Ниже я покажу визуальное выделение этих текстовых объектов (команда
vобъект
), хотя их можно использовать и в других командах, например для удаления (dобъект
) или замены (cобъект
).Итак, начнём с HTML-тэгов. Предположим у нас есть такой текст:
![Hello magic <em>Vim</em> world!](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFmSsb7RMvVwwZFuwm1-iyEEXAxrBZdU-JK9-vpwNS5gajSH_OY0qBtGu7dKtc2Q-NB05dJK84j6sn4Yc6K3MZQFLQwGyjUBlwV2Cy1dwwECT6QKd_CxWx0sFwRxLza2AtMB1chA/s800/vim-html-01.png)
и курсор стоит на слове «Vim», выделенном с помощью тега
<em>
. Тогда, чтобы выделить всё содержимое тега (т. е. слово «Vim») можно использовать команду vit
(от слов «inner tag»):![visual inner tag selection: vit](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjW7bENyYWS3QqUVofWSmFhVJaP-z86XxSGfoWrCyNub140XrxavZnWOy6lGSauvDMQlJINhTWJfN1IFWJpA1XQz_nGw88vRVecymr9WtfUJ-tDi9QQEB9Q51uryDTJCv_CexF7iQ/s800/vim-html-vit.png)
А чтобы выделить весь тег целиком, т.е. «<em>Vim</em>», можно использовать команду
vat
(от слов «a tag»):![a tag selection: vat](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzLLrVyGbfO9Uyt4bMR4fWjvRA0u13VnNlHuKzPLnLMHDF9mY_tcZQh62Kon0ztCAR_NEw5ElUEAJaEiRMiBFd69dnfgfXgsU2fdhVPe6BkHXZCGidKtm8y7L6u40FvPVcPxhFyw/s800/vim-html-vat.png)
Теперь рассмотрим примеры выделения закавыченных
"строк"
и {блоков кода}
. Пусть у нас есть такой текст программы на Си:![C hello world snippet](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilkKTk8NqimGNs7hKPTA8DdQkPoA8h-ej4SqVvoMoYvmN3g11ZECvPFr-QlcOHnbBUgdNhdLJhhmkdCJWEiK4sGXqVcvGWE5GzfWAtgil8FJsjwb8PAULcnHpgRbH38SZWJ0U0LA/s800/vim-c-01.png)
Поместим курсор, как и прежде на слово «Vim». Выделим всё содержимое закавыченной строки, команда
vi"
:![inner string selection: vi"](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibl1Xc5PT-VMRSRSLmAvLAa-Y4Za4-AssUqR3_qLw9iDNb3PNwuUpuwMgc282eLNUTa8n2cJea6MQ11qAVgjSTnxxu6C7xVV779D6mtPMk4t4M5Hs01LbQ3U4uXwL-t9r5V7sXog/s800/vim-c-viquot.png)
и выделение строки целиком, вместе с кавычками — команда
va"
:![a string selection: va"](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO_ECEr2vPYK7bIGaG4n-HFz8X0C5ClviX9yrak38po-5OhfEbJR6ghyphenhyphenopBBZpuDoTTeaC5gtLSvSNGNO34B5HxkIfRNRjYTBuPzsYBHEgP4gchbEPlWUpwbouiKsHqsKQUFTYKA/s800/vim-c-vaquot.png)
Аналогично для выделения содержимого блока кода — команда
vi}
:![inner block seletion: vi}](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYY1sa5NzKs33HVg-Evv0t0bwsHDy2N0eW0K4KBXy2FoG7h-8LFdaqT2EcZ_NFVbrZQPEZ3gibD9c_hA8Ak0R69qF450pONhpQWoW28pkRIV6zYkaI2yKTUNlZJNwwMTFu6_Ewpg/s800/vim-c-vibrace.png)
А для всего блока целиком —
va}
:![entire block selection: va}](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT_tJuslA0qnwYFB-QQ5zdB2qwdfWgKdXeMz79BBB1kXPsGu46QPFq1mhcRZd_um6b269unyTfTNOyAjQFpia4kvq-ePoS5Fy0GE9awd7luQjGB3Xy6KJqE1kMyJw4FuDqT_CF-g/s800/vim-c-vabrace.png)
Вот так — двумя нажатиями клавиш.
Подробнее о текстовых объектах можно почитать во встроенной справке Vim,
:help text-objects
.Ещё о Vim:
☙ Vim: как быстро закомментировать/раскомментировать блок кода
☙ Вставка Python-кода в Vim (с исправлением отступов)
☙ Vim в терминале: вставка текста с сохранением отступов (:paste)
☙ Редактирование HTML и XML в Vim