Skip to content

Instantly share code, notes, and snippets.

@bebyx
Last active February 1, 2024 09:30
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bebyx/09307c0d9bdd381add8e9fd623a827d3 to your computer and use it in GitHub Desktop.
Save bebyx/09307c0d9bdd381add8e9fd623a827d3 to your computer and use it in GitHub Desktop.
:set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ї],фa,іs,вd,аf,пg,рh,оj,лk,дl,ж\\;,є',ґ\\,яz,чx,сc,мv,иb,тn,ьm,ю.,./,ЙQ,ЦW,УE,КR,ЕT,НY,НY,ГU,ШI,ЩO,ЗP,Х{,Ї},ФA,ІS,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж\\:,Є\\",Ґ<bar>,ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б\\<,Ю>,№#
@bebyx
Copy link
Author

bebyx commented Mar 3, 2020

Ukrainian Language Layout for Vim HotKeys

Vim doesn't understand non-Latin letters by default. The recommended way to add a support is to set langmap in your Vim config file.

I've created this gist to help Ukrainians who may want to use Vim navigation with Ukrainian keyboard layout.

To teach Vim to understand main hotkeys on Ukrainian language layout in a moment, execute in your terminal:

curl -w "\n" https://gist.githubusercontent.com/bebyx/09307c0d9bdd381add8e9fd623a827d3/raw >> ~/.vimrc

This adds the gist's content, langmap setting, into the config ~/.vimrc file :

It's as simple as that. No plugins, no bloat.

Official docs on 'langmap'

@Searge
Copy link

Searge commented Apr 11, 2020

На жаль ламає vim keybindings, з того, що помітив: b — працює як і, r — робить відступи...

@bebyx
Copy link
Author

bebyx commented Jul 26, 2020

На жаль ламає vim keybindings, з того, що помітив: b — працює як і, r — робить відступи...

Дякую за коментар! Так, сам перевірив, на жаль, ламає ці гарячки в англійській розкладці. Я подумаю, що можна зробити. Тимчасове рішення — прибрати иb та кr з langmap.

@ivankovnatsky
Copy link

ivankovnatsky commented Nov 29, 2021

а якщо ось так:

set langmap=йqwertyuiop,х[,ї],фasdf,пghjkl\\;,
  ',ґ\\,яz,чxcvbnm,ю.,./,ЙQ,ЦW,УE,КR,ЕT,НY,НY,ГU,ШI,ЩO,ЗP,Х{,Ї},ФA,
  S,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж\\:,Є\\",Ґ\|,ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б\\<,Ю>,№#

Ґ\|

@bebyx
Copy link
Author

bebyx commented Dec 10, 2021

@ivankovnatsky дякую, треба буде спробувати.

@timsofteng
Copy link

а можно так, шоб на літері 'б' був функіонал такий самий як і на аглійскій розкладці?

@ivankovnatsky
Copy link

ivankovnatsky commented Jun 29, 2022

чому ні, пропустили чомусь:

set langmap=йqwertyuiop,х[,ї],фasdf,пghjkl\\;,
  ',ґ\\,яz,чxcvbnm\\,,ю.,./,ЙQ,ЦW,УE,КR,ЕT,НY,НY,ГU,ШI,ЩO,ЗP,Х{,Ї},ФA,
  S,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж\\:,Є\\",Ґ\|,ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б\\<,Ю>,№#

б\\,

@ivankovnatsky
Copy link

set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ї],фa,іs,вd,аf,пg,рh,оj,лk,дl,ж\\;,
  \є',ґ\\,яz,чx,сc,мv,иb,тn,ьm,б\\,,ю.,,ЙQ,ЦW,УE,КR,ЕT,НY,НY,ГU,ШI,ЩO,ЗP,Х{,Ї},ФA,
  \ІS,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж\\:,Є\\",Ґ\|,ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б\\<,Ю>,№#

прибрав ось це: ./ ламає vim repeat ..

@JayXT
Copy link

JayXT commented Oct 16, 2022

set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ї],фa,іs,вd,аf,пg,рh,оj,лk,дl,ж\\;,
  \є',ґ\\,яz,чx,сc,мv,иb,тn,ьm,б\\,,ю.,,ЙQ,ЦW,УE,КR,ЕT,НY,НY,ГU,ШI,ЩO,ЗP,Х{,Ї},ФA,
  \ІS,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж\\:,Є\\",Ґ\|,ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б\\<,Ю>,№#

прибрав ось це: ./ ламає vim repeat ..

@ivankovnatsky, це кінцева версія, чи ви вносили ще якісь покращення на зразок підтримки додаткових символів верхнього ряду (!@$^&) ?

@ivankovnatsky
Copy link

ivankovnatsky commented Oct 17, 2022

це версія яку я користую наразі, поки що не було потрібно прям усе відтворити, може колись. якшо у вас буде наснага, я думаю усі тут будуть тільки раді.

але якшо заміните ось ці символи, то як ви будете вводити їх при українські розкладці? ";:?, просто воно їх маппить так само і в INSERT моді.

загалом я б сказав шо при різних типах укр розкладок: unix/win можна це обійти, але це не той варіант який точно усім підійде, тому автор мабуть це не включав напочатку.

@JayXT
Copy link

JayXT commented Oct 17, 2022

це версія яку я користую наразі, поки що не було потрібно прям усе відтворити, може колись. якшо у вас буде наснага, я думаю усі тут будуть тільки раді.

але якшо заміните ось ці символи, то як ви будете вводити їх при українські розкладці? ";:?, просто воно їх маппить так само і в INSERT моді.

Так, це проблема:(

@ivankovnatsky
Copy link

ivankovnatsky commented Oct 17, 2022

найбільшу проблему яку вирішив для мене цей маппінг, це коли була укр розкладка, а я думав шо англ, і я хотів перейти в COMMAND режим, або користувати hjkl навігацію. хоча $%^ теж було б дуже зручним.

@JayXT
Copy link

JayXT commented Oct 17, 2022

Можливо ідеальним рішенням було б існування якогось надійного кросплатформного механізму запам'ятовування розкладки в Normal Mode, щоб при переході до нього вона змінювалась автоматично.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment