Как стать автором
Обновить

Использование Vim для редактирования простого текста

Время на прочтение 5 мин
Количество просмотров 19K
Про Vim сказано и написано более чем достаточно. Но большинство материалов представляют собой либо самые первоначальные сведения, либо же советы матерых профессионалов. В результате для того, чтобы приспособить редактор для решения стоящих перед пользователем задач, приходится перелопатить кучу мануалов. Перед осознанием масштаба необходимой работы, нужен нешуточный стимул, чтобы решиться на такое. И вполне может возникнуть резонный вопрос: а зачем мне это? Помимо того, что интересно «пощупать» редактор, о котором столько разговора, должно быть что-то еще?

Конкретно для меня стимулом явилась возникшая сложность при работе с переводами. Проблема заключалась в следующем: несмотря на разрешение экрана в 1920х1200 сделать так, чтобы оба текста располагались перед глазами, было практически невозможно. Да и дергаться мышью туда-сюда, управляясь с полосами прокрутки, запоминая положения текстовых фрагментов, довольно таки неудобно. Консольный текстовый редактор, управление которым осуществляется клавиатурой, представлялся для меня логичным решением. Оставалось только разобраться в нем и из огромного массива информации выбрать только то, что нужно.

Забегая вперед, скажу, что информацию пришлось собирать фактически по крупицам. Основное направление в использовании Vim в качестве редактора «для программистов» привело к тому, что вопросам обработки «простого» текста уделяется мало внимания. В конце-концов, с поставленной задачей, как мне кажется, удалось справиться.


Первоначальные сведения о работе редактора.



Про командный режим, режим вставки, навигации по тексту и т.п., написано более чем достаточно. Однако все это можно свести к одной команде — vimtutuor. Это, как понятно из названия, обучалка базовым принципам Vim. Если вашим дистрибутивом является Ubuntu, то сперва необходимо установить полную версию редактора:

sudo apt-get install vim-full

Единственным значимым, на мой взгляд, аспектом, который не охватывает туториал — является работа в визуальном режиме. Но здесь все просто: В командном режиме нажимаем клавишу «v», выделяем необходимый кусок текста, после чего выполняем с ним необходимую операцию: будь то форматирование, удаление или копирование.

Наиболее важным вопросом, на который следует ответить перед использованием Vim для обработки текста — это перенос набранного текста по строкам. По умолчанию редактор будет писать текст одной длинной строкой, границей которой будет нажатие клавиши Enter.
Это хорошо для редактирования исходного кода, но совершенно неприемлемо для написания текста. Решения здесь два. Использовать команду

:set wrap

Это заставит редактор переходить на другую строку при достижении края окна терминала, но при переходе не будет установлен символ конца строки. Таким образом, все, что мы наберем до нажатия Enter, будет являться одной длинной строкой. Это не очень удобно, поскольку навигация по строкам является довольно важным аспектом редактирования. Решением в данной ситуации будет использовании команды

:set tw=80

Она установит длину строки в 80 символов, что, на мой взгляд, является оптимальным.
При достижении указанного значения, редактор перейдет на другую строку, поставив символ окончания строки.

Форматирование текста


Следующим вопросом, на который необходимо было найти ответ — как осуществлять форматирование текста. Для этого пригодятся следующие команды:

:ce - выравнивает строку по центру
:ri - выравнивает строку по правому краю
:le - выравнивает строку по левому краю


Но как выровнять текст, что называется, «по параграфам»? Чтобы левый и правый край были ровными. Помощь Vim говорит, что для этого нужно использовать внешнюю программу. Но есть и другое решение. Подключаем макрос (идет в стандартной поставке):

:source $VIMRUNTIME/macros/justify.vim

После этого командой "_j" в режиме редактирования можно выровнять выделенный текст «по параграфам».
Несмотря на то, что мы задали фиксированную ширину, при редактировании текста может получиться ситуация, когда одна строка окажется длиннее, или, напротив, короче. Это вполне логично — поскольку строка заканчивается символом переноса строки, который может быть затерт или смещен влево. Привести абзац к фиксированной ширине можно выделив текстовый блок в визуальном режиме и воспользоваться командой «gq».

Проверка орфографии.


Неотъемлемой функцией текстового редактора для меня является проверка орфографии. В Vim этот вопрос решается так:
Качаем архивы со словарями. Разархивируем их в папку /tmp/dict (без подкаталогов внутри).
Создаем папку
mkdir -p ~/.vim/spell/
Далее формируем словарь в Vim-формате командой:
:mkspell! ~/.vim/spell/ru /tmp/dict/ru_RU — для русского языка
:mkspell! ~/.vim/spell/en /tmp/dict/en_US — для английского

Понятно, что словарь может быть любого доступного языка. Причем одновременная проверка многоязычного документа работает замечательно! После этого проверку орфографии можно включить командой:

:setlocal spell spelllang=ru_ru,en_us

Работа с несколькими документами.


Для открытия нового окна используем команды:

:new — создает новый документ в новом окне

Если же требуется открыть уже имеющийся документ, лучший способ, на мой взгляд — это ввести в командном режиме

:Sex

Откроется подобие файлового менеджера, в котором можно выбрать требуемый для редактирования файл. Перемещение из окна в окно осуществляется следующим образом: Наживаем CTRL-w, а затем стрелкой курсора переходим к нужному окну. Вместо курсора можно воспользоваться навигационными клавишами — h,j,k,l
После того, как все требуемые документы открыты в одном окне, необходимо расставить их по местам, выбрав требуемый размер. Это делается так:
CTRL-w, а затем навигационная клавиша, только с зажатым шифтом -H,J,K,L соответственно.

Разложив окна, можно подогнать их размер под конкретные нужды можно так:
CTRL-W +
CTRL-W —
изменяют размер окна по вертикали;
CTRL-W <
CTRL-W >
изменяет размер окна по горизонтали.

В качестве резюме.



Если изложенное выше оказалось для вас полезным, а Vim оказался пригодным для написания и редактирования текстов, самое время перейти к составлению своего конфигурационного файла. Для этого Открываем в своем домашнем каталоге файл vimrc — и вписываем туда команды, которые сочли полезными для каждодневного использования. У меня это ширина текста, проверка орфографии и использование макросадля выравнивания текста «по параграфам».
Кроме того, в случае если используется юникод, настоятельно рекомендую ознакомиться с материалами на ru.wikibooks.org/wiki/Vim и прописать в конфигурационный файл переназначение символов. Потому как постоянное переключение русской-английской раскладки в командном режиме реально утомляет.

p.s. Сперва я хотел разместить этот топик в блоге, посвященному Vim. Нопотом решил, что его читатели уже знакомы с текстовым редактором и столь начальная информация будет не интересна. А вот для новичков в мире *nix, слышавших про «войны» текстовых редакторов, материал будет познавательным и позволит более быстро начать использовать редактор для повседневных нужд.
Теги:
Хабы:
+47
Комментарии 72
Комментарии Комментарии 72

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн