Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Vim

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9

Открыть новую тему     Написать ответ в эту тему

8AleX8



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 
Vim

 
Vim (Вим) — один из двух существующих в мире текстовых редакторов ;-) свободный, кроссплатформенный, расширяемый текстовый редактор, сколь угодно настраиваемый и автоматизируемый; и вообще, в представлении не нуждающийся.
 



 
Ресурсы:

Документация:
  • Vim documentation
    Официальная документация (та, что :help) онлайн. Подробно и сухо.
     
  • Vim Recipes [HTML Online] [HTML+PDF Tarball] [PDF] [DEB] [SRC]
    С одной стороны, название нас не обманывает: эта небольшая книга — действительно сборник рецептов для решения конкретных задач; с другой — это именно книга, излагающая хорошо подобранный материал связно, цельно и без излишней подробности, свойственной манам. Разобранный круг вопросов: от выхода из Вима :) до кастомизации. Т. о. книжка пригодна в роли первого учебника вполне.
     
  • A Byte of Vim
    (Просто о Vim)

Эссе:
  • ‘Coming Home to Vim’ by Steve Losh
    (Возвращение к Vim)
    Опыт программиста-маковода по переходу на Вим. Изложено авторское видение вимовской «философии», приведены любопытные строчки конфига, сделан обзор необходимых плагинов.

Шпаргалки (cheet sheets, quick reference cards) — распечатать и положить под стекло:
  • VIM Quick Reference Card by Laurent Gregoire
    Шпаргалок по Виму не просто много, а очень много; эта, по крайней мере, неплоха.
     
  • Graphical cheat sheet by ViEmu
    Что делает та или иная клавиша надписано на самой клавише схеме QWERTY-клавиатуры; весьма наглядно.

 
Зачатки FAQ'а:
Q: Как быть с вводом кириллицы?
A: Увы, на настоящий момент наиболее разумным решением будет использовать собственный вимовский механизм переключения раскладок, сиречь переключать раскладки по сочетанию отличному от общесистемного (по-умолчанию: ^6 и ^^, т.е. Ctrl+6 и Ctrl+Shift+6), для чего в .vimrc добавить строку
set keymap=russian-jcukenwin
Мапинг кириллицы (map й q) в силу разного расположения на клавишах присутствующих в обеих раскладках символов оказывается существенно более неудобным.
 
 

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

Всего записей: 1813 | Зарегистр. 11-12-2001 | Отправлено: 14:38 21-05-2003 | Исправлено: Maz, 11:14 19-08-2020
latin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RuVim
 
Продолжение здесь или здесь

Всего записей: 781 | Зарегистр. 01-03-2006 | Отправлено: 17:03 19-09-2020
Wave_Blessed

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А не подскажет ли многоуважаемый all какое-нибудь простенькое решение для работы с bb-кодами? Нужно буквально вставлять коды и помещать курсор между ними или оборачивать выделенный текст оными. Что-то не получается ни сообразить, как это проще всего сделать, ни нагуглить чего-то подходящего.

Всего записей: 1134 | Зарегистр. 16-04-2006 | Отправлено: 22:16 19-09-2020
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wave_Blessed,
смотрели?
https://github.com/tpope/vim-surround
https://github.com/rstacruz/sparkup
https://www.vim.org/scripts/script.php?script_id=13
https://www.vim.org/scripts/script.php?script_id=2591
 

Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 09:12 20-09-2020
Wave_Blessed

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
О, спасибо! Surround практически то, что нужно. И ведь встречал его, когда начинал осваивать вим, но сразу не посчитал нужным поставить и использовать, а потом забыл.
А то, что находил, когда искал для бб, требовало ещё всякого дополнительного обвеса типа tskeleton.
 
Кстати, подружил командный режим с русским языком я таки через
https://github.com/powerman/vim-plugin-ruscmd
 
 
Зы. Чтобы surround заработал с bb-кодами (не на полную катушку, но базовая функциональность будет), нужно в конфиг добавить

Код:
let g:surround_{char2nr("b")} = "[\1bbcode: \1]\r[/\1\1]"

или

Код:
let g:surround_{char2nr("b")} = "[b]\r[/b]"
let g:surround_{char2nr("i")} = "[i]\r[/i]"
let g:surround_{char2nr("q")} = "[quote]\r[/quote]"
и так далее…

Всего записей: 1134 | Зарегистр. 16-04-2006 | Отправлено: 14:23 20-09-2020 | Исправлено: Wave_Blessed, 18:12 21-09-2020
latin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wave_Blessed
 
Я могу ошибаться, но для чего это делать через сторонний модуль, если есть встроенное средство.
 
:langmap
 

 
Или этот параметр не работает так как вам надо?

Всего записей: 781 | Зарегистр. 01-03-2006 | Отправлено: 14:38 21-09-2020
Wave_Blessed

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
latin, это к вопросу о русском языке? Видите ли,  
 
set langmap=ёйцукен…ЁЙЦУКЕН…qwerty…~QWERTY… и т.д.
 
работает довольно-таки ограниченно и костыльно. Я уже не помню точно, где и какие ограничения встречались, в чём подглюкивало, чем не устраивало, но это был первейший опробованный способ подружить вим с русским языком, и этот способ совершенно не удовлетворил, пришлось искать способы дальше. Опять же, видите ли, мне гораздо больше приходится работать с русскими текстами. Если бы в основном я редактировал, скажем, исходники с редкими русскими вкраплениями, например, в комментариях — это одно. Какие-то недоработки были бы незаметны. Но когда основной текст русский, то каждое такое спотыкание оказывается довольно частым и становится очень заметным.
 
Ещё гугл давал советы менять внутреннюю раскладку по Ctrl+^ не помню уже зачем, ещё что-то. Все эти способы или работали очень ограниченно, или были откровенно неудобными как тот же Ctrl+^
Прорыв наступил, когда я нагуглил XkbSwitch (и то не сразу получилось заставить заработать, на прошлой странице я как раз спрашивал). Решение было не идеальным, но вполне неплохим. Разве что не учитывало переходы t или f к русским буквам. Тут надо было нажать t, сменить раскладку, нажать русскую букву, а потом ещё раз сменить раскладку.
А чуть позже случайно где-то в комментах наткнулся на ruscmd. И он заработал абсолютно так, как мне нужно. Там ничего военного, вот такие вот вещи:

Код:
    cabbrev <expr> ив    getcmdtype()==':' && getcmdline()=="ив"    ? "bd"    : "ив"
    cabbrev <expr> ит    getcmdtype()==':' && getcmdline()=="ит"    ? "bn"    : "ит"
    cabbrev <expr> й    getcmdtype()==':' && getcmdline()=="й"    ? "q"    : "й"
    cabbrev <expr> йф    getcmdtype()==':' && getcmdline()=="йф"    ? "qa"    : "йф"
    cabbrev <expr> ц    getcmdtype()==':' && getcmdline()=="ц"    ? "w"    : "ц"
    cabbrev <expr> цй    getcmdtype()==':' && getcmdline()=="цй"    ? "wq"    : "цй"
    map <unique> ё `
    map <unique> ’ `
    map <unique> й q
    map <unique> ц w

но просто, получается, в этом модуле покрыты все или почти все типичные случаи, и вот с ним уже почти похоже на нативную работу редактора с русским языком. Кое-где всё-таки видны совсем-совсем мелкие блошки, но они почти не мешают и встречаются редко.
 
Добавлено:
Кстати, RuVim, который вы предлагаете тестировать — это только перевод интерфейса вима на русский, или что? Я не совсем понял, заглядывая в него.

Всего записей: 1134 | Зарегистр. 16-04-2006 | Отправлено: 18:45 21-09-2020 | Исправлено: Wave_Blessed, 18:57 21-09-2020
latin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wave_Blessed
 
Как ни странно, но я также работаю в Vim в основном с русским текстом (тот же перевод) и решил эту задачу давно и весьма успешно (в моём сценарии работы).
И то, что вы называет проблемой с t (T) и f (F), и набор команд в командной строке Vim на латинице и, если требуется, на кириллице, рвано как и поиск по / и ?, и удобное (во всяком случае для меня) переключение раскладок. При этом использовал только встроенные в Vim средства.  
Я смотрел этот плагин перед тем как вам написать, и, уж извините, это, как сейчас модно говорить, "костыль".
 
В том переводе, о котором вы говорите, есть ещё такой файлик как russian-typograph.vim. Он позволяет быстро и удобно набирать, как русский текст, так и, при необходимости, символы которые есть только в латинской раскладке, но отсутствуют в стандартной русской. И набирать это всё "слепым десятипальцевым" способом.
Вы уж извините за рекламу.
 
Да, это пока перевод интерфейса и меню. Документация будет (я надеюсь) чуть позже.
Только берите файлы из последних выпусков на github или sourceforge.

Всего записей: 781 | Зарегистр. 01-03-2006 | Отправлено: 23:05 21-09-2020
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wave_Blessed, latin,
под какими ОС вы используете vim?
 

Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 09:13 22-09-2020
latin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los
 
В основном Windows и, совсем немного, UNIX-подобные.

Всего записей: 781 | Зарегистр. 01-03-2006 | Отправлено: 14:56 22-09-2020
Wave_Blessed

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Windows. Вим консольный.
 
Типографская раскладка у меня в системе, включая кавычки-ёлочки, длинные тире и так далее. Нет необходимости делать её отдельно в виме.
 
Костыль? Не больший чем langmap.

Всего записей: 1134 | Зарегистр. 16-04-2006 | Отправлено: 17:11 22-09-2020
latin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wave_Blessed

Цитата:
Костыль? Не больший чем langmap.

Ну, вам видней.
Вообще-то :langmap предназначен не для того, для чего его используют, в том числе и вы.
Но вы ведь это и так знаете, да?
 

Всего записей: 781 | Зарегистр. 01-03-2006 | Отправлено: 14:24 23-09-2020
Wave_Blessed

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Но вы ведь это и так знаете, да?

Вообще-то нет. Но тем не менее, как вижу ситуацию лично я, с практической точки зрения и для меня.
Из коробки вим не совместим с русским языком. При этом обладая такой достаточно уникальной штукой, как командный режим. А чтобы подружить редактор с языком, приходится хоть в конфиге, хоть в виде плагина — это абсолютно не важно — добивать его, указывая соответствия русских букв английским. Причём, делать ли это с помощью langmap или так, как это сделано в ruscmd… И то, и то — вимовские встроенные средства. Может, внутри экзешника есть какая-то техническая разница, но наружу отдаётся один и тот же способ реализации с точки зрения пользователя: набить в *.vim файле соответствия.
Вот уже XkbSwitch не настолько нативная вещь, потому что кроме вимовского скрипта имеет платформенно-зависимую библиотеку, *.dll в случае винды. И к тому же немного конфликтует с ruscmd, из-за чего я от XkbSwitch отказался.
Идём дальше. Про langmap все найденные примеры, статьи пр настройку вима и репозитории с вимовскими конфигами говорят одно:

Код:
set langmap=длинная строка русских букв и их соответствий в латинской раскладке
nmap Ж :
nmap Н Y
nmap з p
nmap ф a
nmap щ o
nmap г u
nmap З P
И ещё чего-то про russian-jcuken.vim, нету сейчас под рукой точного примера, как именно его подключать.

Вот как-то так. Если это неправильное применение, то я нигде не нашёл правильного и не горю желанием глубоко копать, осваивая мегабайты и мегабайты документации. Я и в самом-то использовании редактора застрял, грубо говоря, на базовом наборе, который есть на Graphical cheat sheet by ViEmu в заголовке этого топика плюс немного нахватался о конфигах, пока настраивал под себя и перебирал интересные мне плагины. О чём бишь я. О том, что этого оказалось недостаточно, чтобы в командном режиме можно было комфортно себя чувствовать, не переключаясь на английский.
А вот подключение ruscmd-плагина (можно было бы вбить всё то же самое в конфиг — но зачем?) меня полностью удовлетворило. Всё работает почти настолько хорошо, как если бы вим нативно поддерживал русский язык. И новые способы подружить их я бы глянул только просто интереса ради. Например, что делать с RuVim? Вижу три каталога: keymap, lang, syntax. lang мне, походу, не нужен. syntax — это, судя по всему, к русификации помощи относится, полезная вещь, только я не понял, где сама русская помощь и как help_ru.vim подключить. А вот keymap должен добавить в вим типографскую раскладку клавиатуры, но надо смотреть, как его подключить и как он будет работать и как работать с ним. Это случайно не для таких способов рекомендовали переключать раскладку по Ctrl+^ ?
 
Добавлено:
Зы. Гуглю.
Цитата:
После установки keymap можно переключаться между кириллицей и латиницей нажатием Ctrl+^. При этом происходит чего и добивались: команды и шорткаты ни коем образом не страдают при активной русской раскладке. Ура!

Абсолютно неприемлемо. Переключалка языка у меня уже 22 года — Ctrl+Shift и таковой она и останется.

Всего записей: 1134 | Зарегистр. 16-04-2006 | Отправлено: 18:31 23-09-2020
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wave_Blessed

Цитата:
Из коробки вим не совместим с русским языком.

что имеется в виду?

Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 21:41 23-09-2020
Wave_Blessed

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
что имеется в виду?

Поставьте коробочный вим и попробуйте поредактировать русский текст — сразу поймёте. Редактируете-редактируете текст на русском, потом надо, допустим, исправить очепятку — поменять пару букв местами. Командный режим… Переключение раскладки раз! — F (или f, не суть важно) — Переключение раскладки два! — русская буква — Переключение раскладки три! — x p i — Переключение раскладки четыре!
Ну и как это называется? Это ж хуже чем в windows notepad работать.
 
Добавлено:
latin, пробую RuVim. Чисто для теста.
 
В режиме вставки переключается норм, но в режиме команд выскакивает
Код:
E23: Соседний файл не существует
Неудобство (одно из) в том, что у меня настроен автоматический переход в командный режим через несколько секунд неактивности. Т.е. я не могу в любой момент ткнуть Ctrl+Shift, мне надо убедиться, что я в режиме вставки, или перейти в него, если успел из него выскочить, и только тогда жать Ctrl+Shift+6.
 
Неудобно, что командный режим зависит от системной раскладки клавиатуры. Т.е. если я забудусь и переключусь на русский, всё стопорится. Не говоря уже о том, что смотреть, если что, надо не на индикатор раскладки в правом нижнем углу, к чему привык за 22 года, а в левый нижний в строку статуса вима.
 
Есть придирки к типографике, но они субъективные, с непривычки и с того, что не запомнил, где что. Если зададусь целью приучиться к такой раскладке, приучусь.
 
 
В общем, вот вам и  

Код:
set keymap=russian-jcuken

Возвращаюсь на ruscmd.

Всего записей: 1134 | Зарегистр. 16-04-2006 | Отправлено: 23:22 23-09-2020
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Поставьте коробочный вим и попробуйте поредактировать русский текст — сразу поймёте.

у меня не windows и поставить "коробочный" vim или собрать его из исходников - задача тривиальная.

Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 09:21 24-09-2020
Wave_Blessed

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los, хотите сказать, в линуксе собранный из исходников вим без дополнительных настроек понимает русский? А мне почему-то все говорили, что вся его принципиальная суть в том, что он не нажатия клавиш ловит, а уже введенные буквы. Удалённые терминалы, ssh, все дела.

Всего записей: 1134 | Зарегистр. 16-04-2006 | Отправлено: 10:39 24-09-2020
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
хотите сказать, в линуксе собранный из исходников вим без дополнительных настроек понимает русский?

хотел сказать что проблемы с vim в windows мне не совсем понятны поэтому и спрашивал.  
 
$ echo 'хотите сказать, в линуксе собранный из исходников вим без дополнительных настроек понимает русский?' >file
$ rm -f .vimrc
$ vim file



Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 11:03 24-09-2020
Wave_Blessed

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
los, ну и что вы мне показываете скриншот? Скриншот не отображает, что вы нажимаете на клавиатуре, от слова совсем. Вы мне скажите, в командном режиме, чтобы перейти к русской букве, например, щ, вам достаточно нажать русскую а и нажать щ, или нужно переключиться в английскую раскладку, нажать f, переключиться в русскую и нажать щ?

Всего записей: 1134 | Зарегистр. 16-04-2006 | Отправлено: 13:25 24-09-2020
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wave_Blessed
не надо ни куда переключаться
достаточно быть в русском языке
 
Добавлено:

Код:
set langmap=ёйцукенгшщзхъфывапролджэячсмитьбю;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.,ЙЦУКЕHГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM
 


----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 14:35 24-09-2020
los

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd

Цитата:
не надо ни куда переключаться  
достаточно быть в русском языке  

там по-хорошему нужно смотреть как сам vim собран, может  '-langmap'.

Всего записей: 7334 | Зарегистр. 08-09-2001 | Отправлено: 17:21 24-09-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9

Компьютерный форум Ru.Board » Компьютеры » Программы » Vim


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru