5

Всем добрый день,

Семь недель назад я начал изучать Vim. Я попробовал это в прошлом много, но на этот раз не было , как каждый экземпляр в прошлом. Я понял, и у Вима появилась привычка, от которой я не могу отказаться. Я даже написал свой vimrc, и я не могу поверить, что я жил в эпоху, когда я использовал прославленные блокноты. Я ни в коем случае не эксперт или Виммер среднего уровня. Я просто нуб, который хочет продолжать использовать Vim в своей повседневной жизни. Это звучит скорее романтично, чем прагматично, но это правда.

На этой неделе мне нужно было редактировать файлы, которые содержат языки, отличные от английского. Это арабский язык, но проблема касается и иврита и фарси (персидского). Для меня было шоком, что Vim не поддерживает двунаправленный текст. (Не очень хорошее) решение состоит в том, чтобы иметь две вкладки, одна слева направо, а другая справа налево, но это, на мой взгляд, довольно уродливо. Единственный редактор на моей машине, который не поддерживает биди-текст, это edit (Редактор командной строки в Windows!).

Есть ли решение, или я должен вернуться к Notepad++ и забыть о Vim?

Мне трудно переключаться между Notepad++ и Vim, потому что я редактирую много файлов, которые содержат текст с двумя словами.

Спасибо всем,

4 ответа4

6

Vim не поддерживает двунаправленный текст. IIRC эта тема много обсуждалась в списках рассылки vim без всякого продвижения.

Смотрите :help hebrew и :help rileft , в котором вы можете найти этот параграф:

Двунаправленность (или, для краткости, двунаправленный текст) - это то, что Unicode предлагает как полное решение для этих языков. Bidi предлагает пользователю возможность одновременно просматривать текст справа налево, а также слева направо в одном и том же окне. В настоящее время Vim из-за простоты не предлагает двунаправленный текст и просто предлагает функциональные средства для отображения / ввода / использования языков с написанием справа налево.

Итак, я вижу 3 варианта для вас:

  • вернуться к Notepad++
  • используйте обходные пути, найденные в :help hebrew , включая :set rl и :set revins
  • продолжайте жонглировать между двумя редакторами
1

У меня тоже такая же проблема. В конечном итоге решение заключается в использовании другого редактора. Таким образом, вы можете оставить оба редактора открытыми, и оба должны иметь возможность автоматического обновления при изменении файла. Gvim такой, если в вашем файле set autoread .vimrc .

0

Как уже отвечали другие, у Vim нет поддержки BiDi.
Однако вы можете получить большую часть этой функциональности от emacs с установленным злым режимом. Emacs поддерживает BiDi «из коробки», а режим evil содержит все общепринятые сочетания клавиш vim (или, по крайней мере, все те, которые я использовал для себя). Ваш пробег может отличаться). Только убедитесь, что вы не набираете иврит непосредственно из вашей ОС, а вместо этого установите вашу систему на английский и измените методы ввода внутри emacs на иврит. Это достигается с

M-x set-input-method

команда и отвечая на hebrew при появлении запроса или добавив строку

'(default-input-method "hebrew")

в custom-set-variable в вашем файле ~/.emacs.
После любого добавления вы можете использовать C-\ для переключения между английским и ивритом, не теряя функциональность, подобную vim, при наборе текста на иврите.

Я отвечал за иврит, так как это было исправление, в котором я нуждался. Очевидно, что это все работает и для арабского языка.

0

Вам не нужно возвращаться в Notepad++ Смотрите здесь:

В Debian выполните от имени пользователя root или sudo: (sudo) apt install mlterm

man mlterm см. страницу руководства для mlterm mlterm -b grey -w 18 запускает mlterm с серым фоном и размером шрифта 18

Откройте vim (не gvim) в mlterm, чтобы видеть правильно написанный иврит - справа налево. В emacs это автоматическая настройка - вы можете протестировать его, скопировав любой словарь с сайта Библии Step в файл, и открыть его, например, в mlterm: vim file.md

Как писать на иврите и арабском в vim? В vim используйте следующие команды:: :set rl :set revins : set norl :set norevins :set spelllang=en,he - к сожалению, эти команды пишут все справа налево, включая европейские языки. Таким образом, решение состоит в том, чтобы открыть vim (не gvim) в mlterm, и все будет хорошо, чтобы пойти :)

В emacs - используя режим зла (этот режим я использую чаще всего), это биди (иврит и арабский и др.) Языки RL настроены правильно при смешивании с LR - европейскими языками :)

Не забудьте добавить клавиатуру на иврите / арабском языке в настройках Debian (или другого дистрибутива) и ярлык, чтобы изменить их соответствующим образом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .