Бувають випадки коли ви маєте якусь сторінку HTML і вам конче потрібно перевести її у звичайний текст. Оскільки вручну видаляти всі позначки HTML - це марудна справа, ви можете одразу відкрити файл *.html
у Vim для редагування і виконати:
%s/<[^>]*>//g
Останнє видалить всі теги на зразок <html>
, <body>
, <table>
і так далі.
Якщо ви звернете увагу на регулярний вираз, то зрозумієте що він має одну хитрість, а саме - шукає лише вирази із відкриваючою <
і закриваючою >
, оминаючи знак >
. Це обмежує співпадання лише до справжніх позначок.
Частою помилкою початківців є написання подібного виразу заміни як %s/<.*>//g
. Останній створює те що в регулярних виразах називається "жадібним виразом", який співпадає із більшим ніж ми мали на увазі. Тобто, він співпаде з усім аж до наступного закриваючої мітки >
:
<b>Some important text we are interested in.</b>
^ ^
Явно не те що нас цікавить.
Після видалення міток HTML, вам, можливо захочеться поміняти помітки "
&
, <
і >
, прийняті у HTML у відповідні знаки &
, <
і >
, це не складно:
%s/</</g
Також, може виникнути бажання видалити порожні рядки що повинні утворитись у очищеному файлі HTML:
g/^\s*$/d
У цьому випадку, вказівник адреси g
вказує шукати по всьому файлу, тоді як команда d
видалить рядок, що, можливо, містить лише пробіли (\s
).
Пам'ятайте, що ви завжди можете скасувати ваші зміни до того як вони були збережені командою :u
. Накінець, збережіть файл, але вже без закінчення .html
, можливо .txt
.