2013-07-28 17 views
5

IdeaVim'in Rusça düzenini Giriş dışındaki modlarda anlamasını sağlayan bir yol var mı? Benim .vimrc benIdeaVim ve Rusça düzeni

set keymap=russian-jcukenwin 

yüzden Ctrl +^ve nispeten mutlu basarak VIM diller arasında geçiş yapabilirsiniz vardır. Ancak IdeaVim'in bu ayarı okumadığı veya anlayamadığı anlaşılıyor. Rusça bir şey yazmayı (örneğin yorum) durdurmak, komut moduna geçmek ve takılıp kalmak çok can sıkıcı olabilir. Herhangi bir geçici çözüm var mı?

cevap

0

Привіт! Kısa cevap hayır, geçici bir çözüm yok. IdeaVim'i değiştirmeye istekli olmadığınız sürece.

Bir tuşa basıldığında, olay hakkında farklı bilgiler edinilebilir. Bizim durumumuz için en ilginç parçalar hardware key code ve key value'dur. Birincisi, aynı anahtarda bulunan s, , ve ve için özdeştir; İkincisi düzeninden düzenine değişir. Fikirler için IdeaVim uses key values'dan beri (ve ayar eylemleri de anahtar değerlere bağlı), anahtar değerinin farklı olduğu bir düzen kullanırken eylemleri tetiklemek mümkün değildir. Sonuç olarak, örneğin bir Alman düzeninde iyi çalışacaktır.

Yine de Rusça olarak yorum yazmamaktan kaçınmanızı tavsiye ederim.

5

İlk olarak gist gibi langmap kullanmayı denedim ancak IdeaVim langmap'u desteklemiyor.

let rumap = 'йцукенгшщзхъфывапролджэёячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ' 
let enmap = 'qwertyuiop[]asdfghjkl;''\zxcvbnm,.QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>' 
let mapLen = strchars(rumap) 
let i = 0 
while i < mapLen 
    let ruChar = matchstr(rumap, ".", byteidx(rumap, i)) 
    let enChar = enmap[i] 
    "echo 'map '.ruChar.' '.enChar 
    execute 'map '.ruChar.' '.enChar 
    execute 'cmap '.ruChar.' '.enChar 
    let i += 1 
endwhile 

map Ё \| 
cmap Ё \| 

Sen klavye düzeni için özelleştirebilirsiniz:

Sonraki Ben bu yüzden bu çözüm yapılmış map kullanmaya çalıştı.

Ama IdeaVim vimscript ve cmap desteklemediği unuttum ve echo 'map '.ruChar.' '.enChar (yorumladı çizgi) eklendi, eklenen kod .vimrc için yukarıdan ve bana tüm map komutları baskılı böylece komut satırından vim açıldı. Ben .ideavimrc yanına koyan ve boru kartografyasını eklenmiş | karakteri(): Ben IdeaVim normal kiril düzeni ile çalışma var Şimdi + görsel seçin ve operatör bekleyen modları

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

.

+0

Teşekkürler, benim için çalışıyor! Eh, neredeyse. “ciw” veya “daw” gibi kombinasyonların hala çalışmadığını fark ettim. Görünüşe göre 'ben' ve 'a', 'iç' ve 'etrafında' olarak kullanıldığında doğru şekilde ele alınmıyor. Bunun nasıl düzeltilebileceği hakkında bir fikrin var mı? –

+0

Bu kombinasyonlar benim için de işe yaramıyor :(Henüz bir çözüm bulamamış olursanız lütfen buraya gönderiniz – mixel

+0

Çok teşekkürler! Kodlamanın ANSI – zhekaus