Лисаков и макромир

Gentoo + mueller + vim

Консольный словарь, англо-русская база данных и перевод по клавише в vim. Пришлось немного покопаться, чтобы найти всю эту информацию, поэтому решил собрать всё в одном месте и поделиться.

Установка dictd

Установим программу dictd и стандартные словари:

root #
emerge --ask dictd dictd-dicts

Запустим сервис dictd и добавим в автозагрузку:

root #
root #
/etc/init.d/dictd start
rc-update add dictd default

Словарями можно пользоваться:

user $
dict prodigy
From WordNet (r) 3.0 (2006) [wn]:

prodigy
    n 1: an unusually gifted or intelligent (young) person; someone
         whose talents excite wonder and admiration; "she is a chess
         prodigy"
    2: a sign of something about to happen; "he looked for an omen
       before going into battle" [syn: {omen}, {portent}, {presage},
       {prognostic}, {prognostication}, {prodigy}]
    3: an impressive or wonderful example of a particular quality;
       "the Marines are expected to perform prodigies of valor"

Список словарей можно посмотреть по dict -D. Чтобы использовать конкретный словарь, например, easton, надо выполнить dict -d easton prodigy.

Установка en-ru словаря mueller

Скачиваем исходники mueller-dict-3.1. Также ссылку на скачивание можно найти на mueller-dict.sourceforge.net, там же более подробная информация по установке.

Распаковываем архив и устанавливаем словарь:

user $
user $
user $
user $
tar xzfv mueller-dict-*.tar.gz 
cd mueller-dict-*
./configure 
make
root #
make install

Последней команде могут быть нужны права root, чтобы записать файлы в /usr/local/share/dict/.

Теперь надо прописать пути к новым словарям в конфигурационном файле dictd (/etc/dict/dictd.conf или /etc/dictd.conf). Нужно вставить это до строки #LASTLINE! Все изменения, сделанные вручную после этой линии, после перезагрузки пропадут.

/etc/dict/dictd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
database mueller-abbrev {
data /usr/local/share/dict/mueller-abbrev.dict.dz
index /usr/local/share/dict/mueller-abbrev.index
}
database mueller-base {
data /usr/local/share/dict/mueller-base.dict.dz
index /usr/local/share/dict/mueller-base.index
}
database mueller-dict {
data /usr/local/share/dict/mueller-dict.dict.dz
index /usr/local/share/dict/mueller-dict.index
}
database mueller-geo {
data /usr/local/share/dict/mueller-geo.dict.dz
index /usr/local/share/dict/mueller-geo.index
}
database mueller-names {
data /usr/local/share/dict/mueller-names.dict.dz
index /usr/local/share/dict/mueller-names.index
}

Перезапустим dictd.

root #
/etc/init.d/dictd restart

Использование (удалил из вывода пустые строки):

user $
dict -d mueller-base torrent
From Base dictionary [mueller-base]:
torrent
  ['tOrэnt] _n.
    1) стремительный поток
    2) _pl. ливень
    3) поток (ругательств и т.п.)

Если всё работает, то можно удалить архив mueller-dict-*.tar.gz и распакованную из него директорию mueller-dict-*.

Перевод в vim

Научим vim переводить слова под курсором по нажатию клавиши. Перевод будет открываться в горизонтальном split окне. Взято с wiki.solab.rshu.ru и немного модифицировано.

Добавьте в ~/.vimrc:

~/.vimrc
1
2
3
4
5
6
7
8
9
10
11
function! TranslateWord()
let s:dict = "dict -d mueller-base"
let s:phrase = expand("<cword>")
let s:tmpfile = tempname()
silent execute "!" . s:dict . " " . s:phrase . " > " . s:tmpfile
execute "botright sp " . s:tmpfile
g/^\s*$/de
normal ggVG<.dd.J
endfunction

map <F8> :call TranslateWord()<CR>

Не забудьте :source ~/.vimrc.

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

Теперь клавиша F8 будет открывать горизонтальное split окно с выводом команды dict -d mueller-base, применённой ко слову под курсором. По ссылке выше приведён ещё вариант для gVim с всплывающим переводом по наведению курсора. Но vimы-gVimы у меня с мышью как-то не ассоциируются, поэтому пользуюсь кнопочным вариантом.

P.S.

user $
dict -d mueller-base vim
1 definition found

From Base dictionary [mueller-base]:
  vim
    [vIm] _n. _разг. энергия, сила; напор; put more vim into it!
    поднатужься!, давай, давай!