Scorri lo schermo, non il cursore, quando usi la rotellina


18

Sto usando Vim in un terminale, quindi lo scorrimento con la rotella di scorrimento usa la sintassi \e[Ae \e[B(dove \esimboleggia \x1bo scappa).

Tuttavia, Vim lo interpreta spostando il cursore verso l'alto o verso il basso di una riga. Il comportamento desiderato è che lo schermo venga spostato verso l'alto o verso il basso, come <C-e>e come <C-y>.

Come posso dire a Vim di spostare lo schermo quando ho usato la mia rotella di scorrimento, mantenendo il cursore sulla stessa linea? Questo dovrebbe funzionare in tutte le modalità comuni (inserisci, normale, selezione visiva).

Ho già provato, ad esempio, :nnoremap <esc>[A <C-e>(sostituendo <esc>con un carattere di fuga letterale inserito con Ctrl+V Esc), ma questo si è rivelato inutile.

Sto usando Vim 7.4.52 su Ubuntu 14.04 con GNOME.


Potresti limitare la domanda a un sistema operativo o un ambiente a finestre?
200_successo

@ 200_success Va bene, ho modificato il mio ambiente nella domanda.
Doorknob,

Penso che anche questa domanda debba essere etichettata come "terminale". È modificabile perché ha una risposta?
bsmith89,

Risposte:


12

Come ha detto @Doorknob nel suo commento, :set mouse=arisolve il problema.


1
C'è un modo per farlo senza impostare mouse=a? Non voglio che i clic accidentali rovinino il mio flusso di modifica.
wchargin,

l' aa mouse=asta per all(non append). from :help mouse: "il mouse può essere abilitato per diverse modalità ... Normalmente si abiliterebbe il mouse in tutte e quattro le modalità con:: set mouse = a" almeno nella mia vim quando abilitavo che non si sbagliasse con il cambio di modalità (appena abilitato lo scorrimento - e "fai clic per andare alla riga")
Fawix,

2
Anche se questo thread è vecchio, per qualcuno che vuole set mouse=asenza clic accidentali il flusso di confusione, :map <LeftMouse> <nop>farebbe il trucco.
Sunny Pun,

0

Il comportamento che vuoi è quello che succede sul mio film. Non riesco a trovare un'impostazione che la accenda / spenga. Forse controlla : aiuto scorrimento ? scrolloffpotrebbe essere coinvolto.

Si potrebbe anche considerare l'utilizzo dei marchi come soluzione alternativa.

  1. ma (impostare il segno 'a')
  2. scorrere lo schermo come desideri
  3. `a (invia il cursore per contrassegnare 'a')

Ottengo questo comportamento anche senza caricare il mio vimrc ( vim -u NONE). Questo è Vim 7.4 su Ubuntu 14.04 con GNOME.
Doorknob,

@Doorknob E ottengo la finestra invece del cursore che si sposta senza il mio .vimrc(solo set mouse=a). :help scrollingafferma che il comportamento di scorrimento è specifico della piattaforma. Sto usando vim in iterm2 su OSX.
bsmith89,

Aha! :set mouse=aha risolto il problema per me. Modificalo nella tua risposta e lo accetterò. Grazie!
Doorknob,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.