LINUX.ORG.RU

Vim для текстов на естественных языках

 , ,


2

1

Vim – суперский редактор конфигов и программного кода. Даже при моих ограниченных знаниях он более удобен, чем любые другие. Однако я до сих пор админю локалхост, а на хлеб зарабатываю копирайтингом. Соответственно, хотелось бы приспособить инструмент под простые *.txt с человекочитаемым текстом.

Как прикрутить проверку орфографии – с этим я разберусь: в Сети полно инструкций, одну из которых мне рекомендовали на ЛОРе.

Хотелось бы еще вот что. Как известно, Vim воспринимает пространство от \n до \n как единую строку, пусть даже она разобьется в терминале, и переход с 30-го символа абзаца вниз при ширине терминала 50 символов приведет не на 80-й знак текущего абзаца, а на 30-й следующего.

Мне нужно, чтобы курсор при нажатии j или стрелки вниз не прыгал между абзацами, а переходил на ту же позицию в следующей строке терминала, как это происходит в Word, Notepad, Leafpad и прочих гуях. И чтобы, соответственно, k или стрелка вверх переводили на предыдущую строку терминала. Поведение Enter желательно оставить в существующем виде.

Есть ли соответствующие инструкции для .vimrc?

UPD: Получил уже несколько грамотных ответов, благодарю! Предлагаю обсудить книгу «Изучаем редакторы vi и Vim». Пока не читал, интересуют впечатления.

★★★★★

тебе случаем не

nnoremap j gj
nnoremap k gk

нужен?

habamax ★★★ ()

Вроде оно:

" не перепрыгивать через длинные строки при включенном переносе строк
nnoremap j gj
nnoremap k gk
vnoremap j gj
vnoremap k gk
nnoremap <DOWN> gj
nnoremap <UP> gk
vnoremap <DOWN> gj
vnoremap <UP> gk
inoremap <DOWN> <C-O>gj
inoremap <UP> <C-O>gk

orm-i-auga ★★★★★ ()

Ого, сколько накидали. Всем спасибо! Забавно, что всех вас вижу впервые - пока не ответил ни один тусовщик-флудер.

То есть, мои задачи решают gj и gk, и такой вариант меня тоже устроит. Но можно привязать соответствующиие команды к j, k, up, down - попробую и такое, должно быть удобно.

Буду читать маны по *map, расширять сознание.

Bagrov ★★★★★ ()

Как прикрутить проверку орфографии – с этим я разберусь

оно в коробке в седьмой версии. Не нужно ничего прикручивать. Русский умеет, про другие не знаю.

emulek ()

проверка орфографии одновременно нескольких языков, чтобы не тратить кнопки:

map      <F6>        :setlocal spell! spelllang=en,ru<CR>

clojure ()

Для работы с текстом, при глюках мышечной памяти на определенных словах, например «сконцетрироваться» вместо «сконцентрироваться», как в моем случае (я действительно знаю, как пишется это слово, но при (а вот и еще одно: рпи вместо при) быстром наборе почти всегда допускается ошибка, рекомендуется плагин vim-abolish, это не пунтосвитчер, если что.

Предлагаю обсудить книгу «Изучаем редакторы vi и Vim». Пока не читал, интересуют впечатления.

Не теряй время, сразу начинай читать единственную, настоящую книгу: Practical Vim

clojure ()
Ответ на: комментарий от clojure

vim-abolish

Выглядит привлекательно

Practical Vim

Скачал, интересная штука, потом сравню обе книги.

Bagrov ★★★★★ ()
Ответ на: комментарий от Bagrov

Да, прикрутить требуемый функционал только к *.txt, *.htm, *.html, *.php и, возможно, *.tex - вообще супер!

:help ftplugin, :help autocmd

fat_angel ★★★★★ ()
Ответ на: комментарий от clojure

читать единственную, настоящую книгу

А на русском она есть? Или что-нибудь другое стоящее на русском посоветуй.

anonymous ()
Ответ на: комментарий от anonymous

А на русском она есть?

Нет.

что-нибудь другое стоящее на русском посоветуй.

кроме «Изучаем редакторы vi и Vim» и не обновленной версии vimtutor на русском мне ничего не известно.

Я полагаю, что даже с совсем начальным английским можно просмотреть видеокурс Жосе Моты «Venture Into Vim», там титры какие он кнопки нажимает, на рутрекере есть.

clojure ()
Ответ на: комментарий от clojure

А кто как переключает раскладку в vim?

C-^ - неудобно. Биндинг русских клавиш на латинские в normal mode - тоже.

https://github.com/lyokha/vim-xkbswitch должно быть то что надо, но у меня не заработало, да и внешнее приложение не хочется ставить.

tri10bit ()
Ответ на: комментарий от q11q11

Нет, это другое. Мне не нужно, чтобы курсор бегал, как Пакман даже там, где нет символов. Я не составляю кроссвордов, не играю в Vim в морской бой, не рисую ASCII-арт.

Суть вот в чем: есть абзац-строка в текстовом файле, в терминале он выглядит как несколько строк - как в книге. Мне нужно, чтобы курсор перемещался в промежутке от LF до LF между отображаемыми строками.

Моя задача решается ремаппингом j и q, как выше посоветовали.

Bagrov ★★★★★ ()
Ответ на: комментарий от anonymous

Я учился по этой статье: http://www.gentoo.org/doc/ru/vi-guide.xml?style=printable#doc_chap9_sect1

Оригинал на английском: http://www.ibm.com/developerworks/linux/tutorials/l-vi/

Но это такое же краткое введение, как и vimtutor. Чайникам – рекомендую, опытные ничего нового не найдут.

Bagrov ★★★★★ ()
Ответ на: комментарий от tri10bit

https://github.com/lyokha/vim-xkbswitch должно быть то что надо, но у меня не заработало

у меня работает отлично, настройка такая:

NeoBundle 'lyokha/vim-xkbswitch'
let g:XkbSwitchEnabled = 1
let g:XkbSwitchLib = '/usr/lib64/libxkbswitch.so'
let g:XkbSwitchIMappings = ['ru']

Во-первых, кроме самого vim-плагина нужно установить сам xkb-switch, во-вторых, оно не находит само либу, как обещают в ридми, так что указывать нужно, а также если вдруг ты тестил не на русской раскладке, только которая из коробки, остальные добавлять нужно, как именно - в ридми.

Если кому нужен ебилд на xkbswitch, то вот: http://bpaste.net/show/301473/

clojure ()
Ответ на: комментарий от Bagrov

Твоя задача решается set tw и gqap, а не врап-костылями, хотя для примитивного текста таб-многобуков-ентер они сойдут.

anonymous ()
Ответ на: комментарий от anonymous

Абзацы, разбитые на строки, потом невозможно по-человечески вставить в WYSIWYG. К тому же, твое решение будет кошмарить баш-скрипты, вставляя разрыв строки, где не нужно.

У того же, что ты называешь костылем, нет побочных эффектов - во всяком случае, в моих сценариях использования.

Bagrov ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.