2013-01-10 15 views
11

ben değiştirmek istiyorum VIM en (değil GVIM en) imleç ben şu anda neysem modu bağlı isterim.Nasıl Gnome Terminalinde farklı modlarda VİM imleç şeklini değiştirmek için

  • Normal & Görsel modlar = blok imleç
  • takın & Komut modları = I kiriş imleci

Ben .vimrc aşağıdaki kodu ekleyerek denedim ama işe yaramadı.

if has("autocmd") 
    au InsertEnter * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam" 
    au InsertLeave * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape block" 
    au VimLeave * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam" 
endif 

ben http://vim.wikia.com/wiki/Change_cursor_shape_in_different_modes kod o biraz var ama buna Gnome-Terminal (sürümü 2.26) içindir ve ben Gnome-Terminal (sürüm 3.60) olduğunu söylüyor. Çalışmamanın sebebi bu olduğundan emin değilim.

Bunu nasıl yapacağınıza dair herhangi bir fikir var mı?

+0

@eduan, kodunuz iTerm-özgüdür. Gnome terminalinde çalışmıyor. En iyi bulabildiğim, imlecin rengini değiştirmektir. – romainl

+0

@romainl Ah görüyorum, o detayı unuttum. – greduan

+0

Gönderdiğiniz yapılandırma, benim için, nnome-terminal sürümü 3.4.1.1 ile çalışır. "Varsayılan" gnome terminal profili kullanıyor musunuz? Değilse, yapılandırmadaki "Varsayılan" seçeneğini kullandığınız profilin adına değiştirmeniz gerekir. – chreekat

cevap

1

gnome-terminal 3.10.2 var ve aşağıdaki adımlarla çalışma var:

bir komut dosyası denilen gnome-terminal-cursor-shape.sh oluşturun:

#!/bin/sh 
DEFAULTPROF=`dconf read /org/gnome/terminal/legacy/profiles:/default` 
DEFAULTPROF=`echo "$DEFAULTPROF" | sed -e "s/^'/:/" -e "s/'$//"` 
dconf write /org/gnome/terminal/legacy/profiles:/$DEFAULTPROF/cursor-shape "'$1'" 

Ve çağrı İmleç şeklini değiştirmek için ibeam, blok veya alt çizgi ile.

/usr/bin veya/usr/local/bin senaryoyu koyun ve .vimrc aşağıdaki satırları ekleyin: Benim için

if has("autocmd") 
    au InsertEnter * 
     \ if v:insertmode == 'i' | 
     \ silent execute "!gnome-terminal-cursor-shape.sh ibeam" | 
     \ elseif v:insertmode == 'r' | 
     \ silent execute "!gnome-terminal-cursor-shape.sh underline" | 
     \ endif 
    au InsertLeave * silent execute "!gnome-terminal-cursor-shape.sh block" 
    au VimLeave * silent execute "!gnome-terminal-cursor-shape.sh block" 
endif 
+1

Bunun, xfce'de çalışan gnome terminalinde çalıştığını doğrulayabilirim. Xfce uygulama autostart ayarlarında "GSettings veri dönüşümü" ni etkinleştirmeniz gerekir. –

+0

Maalesef bu numarayı uygulayamıyorum, çünkü bu tamamen terminale bağlı (terminatör kullanıyorum). Benim yorumum, yarış koşulları ile ilgili: bu çözüm tüm canlı gnome terminallerini (vim kullanmayanlar bile) etkiliyor olabilir mi? – Dacav

0

, gnidmoos çözüm gnome Senaryo gereği komut değiştirdikten sonra çalıştı (.vimrc aynı çizgileri kullanılarak)

#!/bin/sh 
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/cursor_shape" --type string "$1" 

Ps: için -terminal-cursor-shape.sh. 14.04, GNOME Terminali 3.6.2

Şerefe!