Come fare in modo che vim muova il cursore di un carattere a destra su insertlive?

StackOverflow https://stackoverflow.com/questions/5841646

  •  27-10-2019
  •  | 
  •  

Domanda

Poiché il terminal.app di mac os x non supporta molti degli aspetti visivi di vim, incluso il passaggio del cursore da blocco a riga quando si passa alla modalità di inserimento, utilizzo osascript per accopmlisch qualcosa di simile.

Nel mio file .vimrc ho scritto:

autocmd InsertEnter * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 11`j
autocmd InsertLeave * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 12`j

dove settings set 11 è un insieme di impostazioni del terminale che ha un cursore di linea e settings set 12 è uno che ha un cursore a blocchi.

In realtà funziona abbastanza bene, ma c'è un piccolo problema. Su InsertLeave il cursore viene sempre spostato di un carattere a sinistra, il che non è un grosso problema ma può essere anoying.

Ho provato a compensare inserendo autocmd InsertLeave h nel mio .vimrc, ma senza successo (mi dà un errore).

Come dovrei dire a vim di:

  1. non si sposta a sinistra?
  2. se quanto sopra non è possibile, compensare spostandosi a destra
È stato utile?

Soluzione

Prima di rispondere alla domanda, ti consiglio di dare un'occhiata a MacVim (se non l'hai fatto).Se desideri (o hai bisogno) di restare con il terminale, forse un altro terminale come iTerm fornirà più funzionalità.Ad ogni modo, il cursore cambia tra la barra di blocco non è presente in iTerm (almeno penso di sì) e il tuo modo per risolverlo è stato fenomenale, ora è inserito nei segnalibri.Grazie!


Un modo semplice per risolverlo sarebbe aggiungere un altro autocomando, come hai detto.Ma nel tuo mancano il pattern e il comando corretto da eseguire.

Il h non è un comando.Per eseguire una sequenza in modalità normale , utilizza il comando :normal.Questo potrebbe funzionare correttamente:

au InsertLeave * normal! h
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top