ГлавнаяОперационные системыLinuxКак превратить Vim в текстовый процессор

Как превратить Vim в текстовый процессор

Хотите верьте, хотите нет, но я использую Vim в качестве повседневного текстового процессора. Мне нравится его простой макет и модальный дизайн, в котором предпочтение отдается команды клавиатуры над щелчками мыши.

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

Читайте также: Как использовать ярлыки Vim для навигации по веб-браузеру

Начало работы

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

Установка

Ваш дистрибутив Linux, вероятно, поставляется с Vim в репозитории пакетов, п

Начало работы

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

Arch Linux:

sudo pacman -S vim

Fedora:

sudo dnf install vim

Ubuntu:

sudo apt install vim

Все остальные могут загрузить Vim из репозитория Github:

git clone https://github.com/vim/vim.git
cd ./vim/src/
make
sudo make install

Файл конфигурации Vim

При установке Vim в вашем домашнем каталоге может быть создан файл.vimrc. Если нет, создайте его:

touch ~/.vimrc

Вы можете открыть его с помощью самого Vim:

cd
vim .vimrc

Наш текстовый процессор

Сейчас вы, вероятно, смотрите на пустой файл. Давайте изменим это.

Мы можем создать функцию под названием «WordProcessor», которую вы сможете вызывать в любое время. Это будет выглядеть так:

func! WordProcessor()
  " movement changes
  map j gj
  map k gk
  " formatting text
  setlocal formatoptions=1
  setlocal noexpandtab
  setlocal wrap
  setlocal linebreak
  " spelling and thesaurus
  setlocal spell spelllang=en_us
  set thesaurus+=/home/test/.vim/thesaurus

Файл конфигурации Vim

span>.
txt " complete+=s makes autocompletion search the thesaurus set complete+=s endfu com! WP call WordProcessor()

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

Наш текстовый процессор

отдельные строки выделены серым цветом.

1. Движение меняется с map j gjи map k gk

Здесь вы видите изменение в том, как работает перемещение курсора внутри Vim. Если вы читали предыдущие статьи о Vim, упомянутые в начале этой статьи, вы знаете, что jперемещает курсор вниз, а kперемещает курсор вверх. Аналогично, gjи gkперемещают вас вниз и вверх, но они перемещают курсор по строке на экране, а не по строке в файле.

Наше сопоставление j/kс gj/gkдает курсору возможность перемещаться вверх и вниз по перенесенным линиям на экране. Это помогает, когда вы печатаете длинные абзацы и вам нужно легко переместить курсор в середину этих абзацев.

2. Форматирование текста с помощью команд setlocal

Сначала см. setlocal formatoptions=1. «Параметры форматирования» позволяют выбирать из нескольких режимов форматирования текста. В случае варианта «1» Vim воздержится от переноса строк после однобуквенного слова. Вместо этого, когда это возможно, он попытается разбить строки перед однобуквенным словом.

Далее, setlocal noexpandtabпозволяет запретить Vim менять табуляцию на пробелы. Например, настройка «expandtab» заставит Vim изменить нажатие клавиши Tab на несколько пробелов одинаковой длины. «Noexpandtab» делает обратное; он сохраняет нажатие клавиши Tab как один символ.

setlocal wrapсообщает Vim о переносе текста, когда он достигает конца экрана. Именно такого поведения вы ожидае

1. Движение меняется с map j gjи map k gk

позволяет Vim разрывать строки в разумных местах. Это предотвращает перенос строк на последний символ, который помещается на экране. Частично именно поэтому вы увидите, как строки текста достигают различных точек экрана, прежде чем перевернуться в начало. Посмотрите, как это выглядит с незаконченной копией этой статьи, на скриншоте ниже

Пример разрыва строки Vim

3. Орфография и офлайн-тезаурус

Vim имеет встроенную функцию проверки орфографии. Вы можете заставить функцию «WordProcessor» использовать эту возможность с помощью команды setlocal spell spelllang=en_us. Здесь вы можете определить несколько языков в списке, разделенном запятыми.

Найдите дополнительные языковые файлы на этом FTP-сайте Vim . Поместите выбранные файлы (файлы.spl и.sug для каждого языка) в «$HOME/.vim/spell/». Измените строку функции на set spelllang=en_us,nl,medical, например, чтобы проверить наличие английских, голландских и медицинских сл

2. Форматирование текста с помощью команд setlocal

нутыми и жирными шрифтами.

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

Вы можете найти замену, введя :z=в обычном режиме. (Используйте клавишу Escape, чтобы перейти в обычный режим.) Эта команда создаст экран, подобный следующему изображению.

Vim предлагает варианты слов с ошибками

Вы можете использовать функцию тезауруса Vim, указав выбранный вами каталог тезауруса с помощью set thesaurus+=/home/<user>/.vim/thesaurus/mthesaur.txtили аналогичного. Вы можете найти файл «mthesaur.txt» в Проекте Гутенберг . Поместите загруженный текстовый файл в каталог, который вы определите с помощью этой команды.

Найдите слова, похожие на выделенное слово, перейдя в режим вставки (нажмите iв обычном режиме) и набрав Ctrl+ x, а затем Ctrl+ t. Он покажет вам список, подобный следующему изображению, который вы можете прокручивать, чтобы найти новое слово.

Предложения по тезаурусу Vim

Иногда предложения не самые лучшие.

4. Автодополнение слов с помощью опции «завершить»

Посмотрите set complete+=sдля нашего окончательного рассмотрения. Эта опция предписывает Vim искать в вашем тезаурусе слово, которое вы хотите автозаполнить.

Обычно вы можете автозаполнять слова, заставляя Vim просматривать предыдущие введенные вами слова, например «опечатка» и «ошибка» на следующем снимке экрана. Вы просто входите в режим вставки и набираете Ctrl+ nили Ctrl+ pдля поиска слова, которому соответствует, например, наполовину написанное слово

3. Орфография и офлайн-тезаурус

="https://saintist.ru/wp-content/uploads/2024/05/vim-suggest-c.png" alt="Рекомендации по автозаполнению Vim">

Видите, первые два отрывка не из тезауруса? Эти две строки — единственные варианты, которые вы бы здесь увидели, если бы наша функция не использовала «complete+=s». Вы можете опустить или закомментировать эту строку для более быстрого автозаполнения.

Запуск текстового процессора

Последняя строка вашего.vimrc, обеспечивающая работу функции WordProcessor, — это com! WP call WordProcessor(). Он позволяет вам ввести :WPв обычном режиме, чтобы настроить возможности обработки текста Vim.

Вы можете отредактировать «WP» в этой строке, чтобы читать все, что захотите – просто убедитесь, что текст непрерывен. Какой бы текст вы ни выбрали, команда изменится на :<your-text>.

Заключение

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

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

4. Автодополнение слов с помощью опции «завершить»

Запуск текстового процессора

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи