Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

ЙЦУКЕН в Vim, нарешті

with 12 comments

Мені Дмитріш ще кілька років тому щось розповідав про те що з кирилицею в Vim незручно бо ж при переході в нормальний режим потрібно повертатись до латинської розкладки. А я все терпів. Чому я нарешті вирішив розібратись – великий секрет. (А хоча, чому секретничати. Файл в якому я от набираю цей текст (в Vim) називається emacs_cheatsheet.txt 🙂 ).

Так от, є спосіб зробити так, аби українська вмикалась лише в режимі вставки, чи в нормальному режимі наприклад при введенні шаблону пошуку. При введенні команд в рядку статусу за замовчуванням спершу вмикається латиниця. Але можна перемкнутись на кирилицю (якщо раптом вводите команду заміни) за допомогою комбінації Ctrl+6. Аби таке працювало необхідно аби Vim було скомпільовано з опцією +keymap, і аби в каталозі $VIMRUNTIME/keymap/ містився відповідний файл ukrainian-jcuken.vim. Дякую Anatoli Sakhnik за те що він ще в 2007-му його створив. Тепер, виконуємо, чи прописуємо в .vimrc команду:

set keymap=ukrainian-jcuken

Крім того, виявилось що розкладка яку зробив Анатолій розділові знаки на цифровому ряду розміщує якось не дуже стандартно. Тому довелось виправити її ось так:

\/	.
?	,
@	"
#	№
$	;
^	:
&	?

Єдине що ще незвично – так це перемикання розкладки по Ctrl+6, я хотів був її на Caps Lock перемапити, але виявилось що цією клавішею займеться ОС.

Але комбінації клавіш в пам’яті людини – справа контексту. Якось я запам’ятав що вкладки термінала і браузера перемикаються по Ctrl+Pg Up / Down, а в Vim – gt / gT, то й до іншої комбінації зміни розкладки в такому контексті звикну. Хоча цей документ набирати все ще складно.

Advertisements

Written by bunyk

Вересень 28, 2013 at 13:08

Оприлюднено в Інструменти

Tagged with

Відповідей: 12

Subscribe to comments with RSS.

  1. Та, мабуть, це дуже давно було, я з того часу встиг винайти велосипед із власною розкладкою в ~/.vim/keymap/ukr.vim, потім зрозумів, що стандартна jcuken-ukrainian.vim краще і уже є всюди.

    Так що тепер у моєму .vimrc (все-таки C-F в insert mode набагато приємніше, ніж Ctrl-Shift-6):


    set keymap=ukrainian-jcuken
    set imsearch=0
    set iminsert=0 " щоб дефолтним методом в insert/search mode була англійська

    " перемикання розкладки на українську і навпаки
    imap

    dmytrish

    Вересень 28, 2013 at 13:16


    • imap <C-F> <C-^>

      тобто.

      dmytrish

      Вересень 28, 2013 at 13:17

      • Я от подумав, а чому режим вводу команди чи режим вводу шаблону пошуку це не режим вставки а нормальний режим? Було б логічно.

        bunyk

        Вересень 28, 2013 at 23:03

        • Режим вводу команди — це command mode (:cmap), режим вводу пошуку — це search mode (:smap), а normal mode це ні те, ні друге.

          dmytrish

          Вересень 28, 2013 at 23:12

    • А можнай щей російську ? Ну тобто щоб було 3 ?

      foldl

      Березень 14, 2014 at 13:13

      • В Вімі все можна 🙂

        Із простих варіантів: перемапити якусь клавішу на дію :set keymap=russian-jcuken, якусь іншу на :set keymap=ukrainian-jcuken, наприклад, так:

        imap <C-U> <Esc>:set keymap=ukrainian-jcuken<CR>i
        imap <C-R> <Esc>:set keymap=russian-jcuken<CR>i

        — і тоді в insert mode Ctrl-U встановлюватиме українську розкладку, C-R російську.

        dmytrish

        Березень 14, 2014 at 13:49

        • Ой, правда повертатись краще у insert mode краще не через i, а через a, щоб курсор не зміщувався.

          imap <C-U> <Esc>:set keymap=ukrainian-jcuken<CR>a

          dmytrish

          Березень 14, 2014 at 13:56

  2. а якщо не вертатись до латиниці в нормальному режимі? На зразок
    :nmap л k
    :nmap д l
    :nmap с c

    — + ще 30 рядків? =)
    (при введенні пошуку працює правильно)

    beaver

    Квітень 20, 2015 at 22:32


Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: