Domanda

Ho una voce nel mio .vimrc che fa scorrere la pagina verso il basso nel viewport quando colpisco la barra spaziatrice. Sembra così:

map <Space> <PageDown>

Voglio creare un'altra mappatura dei tasti che spinga la finestra verso l'alto quando si tiene premuto shift e si preme la barra spaziatrice. Ho provato le seguenti voci:

map <Shift><Space> <PageUp>
map <S-Space> <PageUp>

Nessuno dei due funziona. Qualcuno sa come ottenere questa funzionalità?

È stato utile?

Soluzione

Non puoi. La soluzione di CMS funzionerà per gVim, ma non in vim perché i terminali non sono in grado di distinguere tra & Lt; Space & Gt; e < S-Space > perché le maledizioni li vedono allo stesso modo. In futuro potrebbe essere possibile se vim ottiene il supporto libtermkey e il tuo terminale supporta il corretto & Lt; CSI & Gt; sequenze (xterm se configurato correttamente; nient'altro lo fa ancora).

Altri suggerimenti

Se stai usando vim all'interno di iTerm2 puoi mappare shift-spazio su ctrl + U inviando la chiave esadecimale 15. Ecco una schermata:

inserisci qui la descrizione dell'immagine

Per cercare un codice esadecimale per una combinazione ctrl + lettera, ad esempio ctrl + u, puoi fare quanto segue:

  • In vim entra nella modalità di inserimento
  • Premi ctrl + v quindi ctrl + u quindi ctrl + c poi ga
  • varie rappresentazioni numeriche verranno stampate in basso

È possibile applicare questa idea ad altri emulatori di terminale che supportano la mappatura dei tasti.

Usa questo:

map <Space> ^D   " Pagedown when press Space
map <S-Space> ^U " Page Up when press Shift Space

Per ottenere correttamente il simbolo ^ D e ^ U basta premere Control-V Control-D e Control-V Control-U

Per OSX:

nnoremap <Space> <C-d>
nnoremap <S-Space> <C-u>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top