Найти в Дзене
Блокнот математика

Рубрика "Секреты Вим". Тезаурус

Привет, коллеги. Тезаурус - это словарь синонимов. Слово пришло из греческого ("сокровище") через латынь. Многие программные средства дают возможность пользоваться таким словарем. И Вим тоже. В прошлой заметке мы обсуждали автодополнение по словарю, там же есть ссылка на заметку про автодополнение вообще. Словарь надо подключить, а потом можно начать печатать слово и, нажав комбинацию клавиш, дополнить слово до целого. Или получить список подходящих вариантов. Слова в файле словаря стоят на отдельных строках, но на строке может быть больше одного слова. Это удобно, например, если у вас словарь имен: Альберт Эйнштейн
Исаак Ньютон В этом словаре четыре слова. Совершенно равноправных. Можно группировать слова по смыслу, но на строке они всё равно индивидуальны. Например, один одна одно
два две
три В этом словаре шесть разных слов. Можно было их по одному на строку сложить, Виму это всё равно, но человеку так чуть удобнее. Хотя спешу заметить: словарь вы, как правило, не видите! В него за

Привет, коллеги. Тезаурус - это словарь синонимов. Слово пришло из греческого ("сокровище") через латынь. Многие программные средства дают возможность пользоваться таким словарем. И Вим тоже.

https://tiktokit.ru/wp-content/uploads/2020/07/2747714B_8.jpg
https://tiktokit.ru/wp-content/uploads/2020/07/2747714B_8.jpg

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

Слова в файле словаря стоят на отдельных строках, но на строке может быть больше одного слова. Это удобно, например, если у вас словарь имен:

Альберт Эйнштейн
Исаак Ньютон

В этом словаре четыре слова. Совершенно равноправных.

Можно группировать слова по смыслу, но на строке они всё равно индивидуальны. Например,

один одна одно
два две
три

В этом словаре шесть разных слов. Можно было их по одному на строку сложить, Виму это всё равно, но человеку так чуть удобнее.

Хотя спешу заметить: словарь вы, как правило, не видите! В него заглядывает Вим.

Словарь синонимов работает аналогично (но с важным отличием). Файлы указываются в опции thesaurus, через запятую, лучше использовать :set+=. Можно начать вводить слово и, нажав специальную комбинацию, получить список синонимов.

В файле на отдельных строках стоят синонимы к одному и тому же слову (собственно, друг к другу). В итоге это работает не как дополнение, так как слово может быть полностью замещено. И слова на строке связаны одним смыслом. Например:

красивая прелестная очаровательная
некрасивый уродливый отвратительный

Комбинация клавиш громоздкая, <C-X><C-T>, но можно добавить t в опцию complete, тогда Вим будет дополнять слово по тезаурусу в том числе, а это всего-навсего <C-N> в режиме вставки; или можно привязать комбинацию к чему-то:

imap <F11> <C-X><C-T>

Если мы запишем эти две строчки в файл, укажем его имя в опции thesaurus, начнем печатать "преле" и нажмем <C-X><C-T>, то увидим выбор из трех вариантов.

Вместо "преле" получилось то, что планировалось, но нажму ввод и получу синоним.
Вместо "преле" получилось то, что планировалось, но нажму ввод и получу синоним.

Для чего можно использовать данную возможность помимо собственно поиска синонимов? Можно искать антонимы, почему нет. Рифмы, если есть подходящий словарь. Перевод слов. Функции вашего любимого языка программирования, только нужен словарь вида

time get_current_time date2str date_time systimer
io read write open close clear flush
trig sin cos tan asin acos atan pi

Скачать словарь синонимов русского языка можете, например, здесь. Важно, что сохранять файл надо в кодировке utf8. Для английского это неважно, а для русского - критично. В файле по ссылке синонимы разделены вертикальной чертой |; это надо заменить.

Теперь важный недостаток технологии. Синонимы на строке разделены пробелами (или другими несловными символами), а ведь в русском часто нужно именно словосочетание! Скажем, синонимы к "любить" включают в себя "обожать", "боготворить", "души не чаять"; а последнее для словаря синонимов не подходит. В файле по ссылке выше очень много синонимичных фраз. Я заменил пробелы на подчерк _, а черту | на пробел, и это работает, но это компромисс, конечно.

Но это решаемо, если вам это надо (скоро обсудим). Мне хватает встроенного в голову словаря синонимов.

Еще недостаток в том, что большой словарь (и dictionary, и тезаурус) читается сравнительно медленно.

Есть скрипт (плагин), который ходит за (английскими) синонимами на специальный сайт. Можно скачать и словарь синонимов: классический Роже. Есть в текстовой форме, но тоже нуждается в подготовке.

Roget's Thesaurus Of English Words And Phrases : Peter Mark Roget : Free Download, Borrow, and Streaming : Internet Archive

Удачи, коллеги.

Научно-популярные каналы на Дзене: путеводитель
Новости популярной науки12 марта 2022