Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

הגדרת עברית - |שאלה| קצרי דרך בvim שהיו תקפים גם בעברית וגם באנגלית

Anonymous - 29/08/2018 - 16:17
נושא ההודעה: |שאלה| קצרי דרך בvim שהיו תקפים גם בעברית וגם באנגלית
שלום לכולם,
אני מעוניין לכתוב מסמכים בעברית בעזרת vim, בשביל זה התקנתי טרמינל בשם mlterm שתומך בטקסט מימין לשמאל ושמאל לימין. וvim עובד מספיק טוב עם mlterm שאפשר לכתוב איתו טקסטים רצינים.
אבל אם המקלדת שלי נמצאת במצב עברית ואני לוחץ על קיצורי דרך די בסיסיים של וvim כמו i וdd
הוא לא מזהה אותם ודי בצדק כי למעשה לא לחצתי על i או dd אלה על "ן" ו"גג". וזה די מעצבן להחליף שפה כל פעם כדי לערוך שורה וכו'.
אז השאלה שלי היא אם יש דרך אוטומטית למפות את כפתורים בעברית לאנגלית בvimrc?
Anonymous - 29/08/2018 - 16:47
נושא ההודעה:
ואיך vim אמור לדעת מתי אתה כותב בעברית ומתי אתה צריך קיצור מקשים?
Anonymous - 29/08/2018 - 16:53
נושא ההודעה:
Anonymous :
ואיך vim אמור לדעת מתי אתה כותב בעברית ומתי אתה צריך קיצור מקשים?


אם אני בnormal mode כלומר במצב הרגיל אני צריך קיצורי דרך, אבל אם אני בinsert או replace אז שיכתוב בעברית.
בדומה לפקודה nmmap אני חושב רק שאני לא רוצה להקליד nmmap לכל אות בעברית בקובץ קונפיגרציה.
mksoft - 29/08/2018 - 16:56
נושא ההודעה:
אפשר לנצל את אופציית ה-langmap בשביל זה. למידע נוסף:
קוד:
:h langmap

Anonymous - 29/08/2018 - 21:19
נושא ההודעה:
תודה רבה לך זה עכשיו עובד מצויין.
למי שמעוניין זה השורה שצריך להדביק לvimrc


:set langmap=AA,BB,CC,DD,EE,FF,GG,HH,II,JJ,KK,LL,MM,NN,OO,PP,QQ,RR,SS,TT,UU,VV,WW,XX,YY,ZZ,שa,נb,בc,גd,קe,כf,עg,יh,ןi,חj,לk,ךl,צm,מn,םo,פp,/q,רr,דs,אt,וu,הv,'w,סx,טy,זz
Anonymous - 01/09/2018 - 11:10
נושא ההודעה:
Anonymous :

:set langmap=AA,BB,CC,DD,EE,FF,GG,HH,II,JJ,KK,LL,MM,NN,OO,PP,QQ,RR,SS,TT,UU,VV,WW,XX,YY,ZZ,שa,נb,בc,גd,קe,כf,עg,יh,ןi,חj,לk,ךl,צm,מn,םo,פp,/q,רr,דs,אt,וu,הv,'w,סx,טy,זz


שים לב שהשורה הזאת תחליף בין / (חיפוש) לq (מאקרו), ובין ' (goto mark) לבין w (התקדם מילה), גם כשאתה על מקלדת אנגלית.

אפשרות אחרת זה להשתמש ב
קוד:
set keymap=hebrew

כדי לעבור לעברית בvim בלי לשנות את פריסת המקלדת, כך שכל הפקודות עובדות כרגיל.

למשל הקוד הבא ב.vimrc יחליף בין עברית לאנגלית בלחיצה על F2
קוד:

" Hebrew support
imap <f2> <c-o>:call ToggleHebrew()<cr>
map <f2> :call ToggleHebrew()<cr>

func! ToggleHebrew()
  if &keymap == "hebrew"
    set keymap=
  else
    set keymap=hebrew
  endif
endfunc


או בגרסא הזאת של הפונקציה שגם הופכת את כיוון התצוגה:
קוד:
func! ToggleHebrew()
  if &rl
    set norl
    set keymap=
  else
    set rl
    set keymap=hebrew
  endif
endfunc

כל הזמנים הם GMT + 2 שעות