2013-01-10 19 views
11

vorrei cambiare di VIM (non del gvim) cursore a seconda di quale modalità Sono attualmente in vorrei:.Come per cambiare la forma del cursore VIM, mentre in modalità diverse in Gnome Terminal

  • Normale & modalità visiva = blocco cursore cursore fascio
  • Inserire & modalità di comando = I

ho provato ad aggiungere il seguente codice .vimrc ma non ha funzionato.

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 

ho avuto quel po 'di codice da http://vim.wikia.com/wiki/Change_cursor_shape_in_different_modes ma dice che è per Gnome-Terminal (versione 2.26) e ho gnome-terminal (versione 3.60). Non sono sicuro se questo è il motivo per cui non funziona.

Qualche idea su come fare questo?

+0

@eduan, il tuo codice è specifico per iTerm. Non funziona nel terminale Gnome. Il meglio che ho trovato è cambiare il colore del cursore. – romainl

+0

@romainl Ah capisco, ho dimenticato quel dettaglio. – greduan

+0

La configurazione che hai postato funziona per me, con la versione 3.4.1.1 di gnome-terminal. Si sta utilizzando il profilo "gnome-terminal" predefinito? Altrimenti, dovresti cambiare "Default" nella configurazione con il nome del profilo che usi. – chreekat

risposta

1

ho gnome-terminal 3.10.2 e ho ottenuto che funziona con i seguenti passi:

Creare uno script chiamato gnome-terminal-cursor-shape.sh:

#!/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'" 

e call con ibeam, blocco o sottolineatura per cambiare la forma del cursore.

inserire lo script in/usr/bin o/usr/local/bin, e aggiungere le seguenti righe al tuo Vimrc:

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

Posso confermare che funziona su gnome-terminal in esecuzione in xfce. Devi abilitare la "conversione dei dati di GSettings" nelle impostazioni di avvio automatico delle applicazioni xfce. –

+0

Purtroppo non posso applicare questo trucco, perché è strettamente legato a gnome-terminal (mentre sto usando Terminator). Il mio commento riguarda comunque le condizioni di gara: potrebbe essere che questa soluzione colpisca tutti i terminali gnome attivi (anche quelli che non eseguono vim)? – Dacav

0

Per me, la soluzione gnidmoos lavorato dopo aver modificato lo script script chiamato gnome -terminal-cursor-shape.sh a:

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

(utilizzando le stesse linee in Vimrc)

Ps. Sono in esecuzione Ubuntu 14.04, GNOME Terminal 3.6.2

Cheers!

Problemi correlati