Come saltare all'inizio o alla fine della riga in vim + OS X


17

Nel terminale posso farlo premendo shift + home e shift + end, ma non sembra funzionare in vim. I tasti Home e Fine fanno scorrere solo la finestra del terminale. Vorrei saltare in modalità modifica.


4
Nella modalità di comando, puoi trovare sul Cheat Sheet di Vim (0 e $): fprintf.net/vimCheatSheet.html . Non conosco la modalità di modifica, però.
Gnoupi,

Risposte:


13

Questa risposta presuppone che tu stia utilizzando VIM in una finestra Terminale .

I collegamenti predefiniti per Home ed End sono leggermente diversi da ciò che un programma si aspetterebbe in base alla solita impostazione TERM (ovvero una variante xterm). Se vuoi attenersi ai collegamenti predefiniti (e devi usare le varianti Shifted nel Terminale ), potresti provare a inserire qualcosa del genere nel tuo .vimrc:

:" map Mac OS X Terminal.app default Home and End
:map <ESC>[H <Home>
:map <ESC>[F <End>
:imap <ESC>[H <C-O><Home>
:imap <ESC>[F <C-O><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>

Altrimenti, potresti provare a regolare i codici che Terminal invia quando usi Home e End (anche senza spostamento, se lo desideri). Una ricerca probabilmente rivelerebbe alcuni luoghi che descrivono come farlo ( eccone uno ). L'idea di base è che si desidera che Terminal invii ESC [1 ~ invece di ESC [H per Home e ESC [4 ~ anziché ESC [F per End (o Shift-Home / Shift-End se si desidera mantenere Home / Fine per accedere allo scrollback). Descriverei il processo in modo più dettagliato, ma ho solo la 10.4 e so che Terminal è stato modificato molto nella 10.5 e successive.


8

Con iTerm e Vim puoi usare le frecce destra e sinistra fn + in modalità inserimento per saltare all'inizio o alla fine della linea. Con Terminal.app usi maiusc + frecce .



1

Come aggiunta alla risposta di Chris , puoi anche ottenere la navigazione delle parole (con i Option+arrowtasti), semplicemente aggiungendo queste quattro righe:

:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el

Si noti che oè in minuscolo, in modo che non esca dalla insertmodalità per l'operazione. Puoi anche cambiare le lettere maiuscole Onella risposta originale per lo stesso effetto.


0

In MacVim, puoi usare il comando 'Freccia sinistra' e il comando 'Freccia destra' per andare all'inizio e alla fine della riga mentre sei in modalità di modifica.


Sembra che JtR stia usando vim in Terminal.app invece di usare MacVim (che consiglio vivamente, e lo uso anche personalmente).
Matrix Mole

0

Vai a Terminale -> Preferenze -> Profili -> Tastiera e aggiungi:

Chiave: ↖ Azione: \ 033OH

Chiave: ↗ Azione: \ 033OF

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.