Come posso spostarmi alla fine della linea in Vim?
-
01-07-2019 - |
Domanda
So generalmente spostarmi nella modalità di comando, in particolare, saltare alle linee, ecc. Ma qual è il comando per saltare alla fine della linea in cui mi trovo attualmente?
Soluzione
Solo la chiave $ (segno di dollaro) . Puoi utilizzare A per spostarti alla fine della riga e passare alla modalità di modifica (Aggiungi). Per saltare l'ultimo carattere non vuoto, puoi premere g quindi _ .
Il contrario di A è I (modalità Inserisci all'inizio della riga), a parte. Premendo solo ^ posizionerai il cursore all'inizio della riga.
Altri suggerimenti
Come molte persone hanno detto:
- $ ti porta alla fine della riga
ma anche:
- ^ o _ ti porta al primo carattere non bianco nella riga e
- 0 (zero) ti porta all'inizio della riga incl. spazi
- $ si sposta sull'ultimo carattere della linea.
g _ passa all'ultimo carattere non bianco.
g $ arriva alla fine della linea dello schermo (quando una linea di buffer viene spostata su più linee dello schermo)
La domanda principale - fine della linea
$ va alla fine della riga, rimane in modalità comando
A va alla fine della riga, passa alla modalità di inserimento
Viceversa - inizio riga (tecnicamente il primo carattere non bianco )
^ va all'inizio della riga, rimane in modalità comando
I (maiuscola i) passa all'inizio della riga, passa alla modalità di inserimento
Inoltre - inizio della riga (tecnicamente la prima colonna indipendentemente da spazi bianchi )
0 (zero) va all'inizio della riga, rimane in modalità comando
0i (zero seguito da i minuscoli) inizia l'inizio della riga, passa alla modalità di inserimento
Per coloro che iniziano a imparare vi, ecco una buona introduzione a vi elencando i comandi vi affiancati al tipico movimento del cursore dell'editor della GUI di Windows e ai tasti di scelta rapida.
Se la riga corrente si avvolge attorno allo schermo visibile sulla riga successiva, puoi usare g $ per arrivare alla fine della riga schermata .
Il simbolo del dollaro: $
Il vantaggio del tasto 'End' è che funziona sia in modalità normale che in inserimento.
'$' funziona solo in modalità normale / comando ma funziona anche nel classico editor vi (utile sapere quando vim non è disponibile).
In molti casi, quando siamo all'interno di una stringa, siamo racchiusi tra virgolette doppie o quando scriviamo un'istruzione non vogliamo premere Esc e andare alla fine di quella riga con il tasto freccia e premere il punto e virgola (< code>; ) solo per terminare la riga. Scrivi la seguente riga all'interno del tuo file vimrc :
imap <C-l> <Esc>$a
Cosa dice la linea? Associa Ctrl + l a una serie di comandi. Equivale a premere Esc (modalità comando), $ (fine riga), a (append) contemporaneamente.
Nota anche la distinzione tra linea (o forse linea fisica) e linea dello schermo . Una riga termina con il carattere Fine riga (" \ n "). Una linea di schermo è qualsiasi cosa accada che viene mostrata come una fila di caratteri nel tuo terminale o nella tua schermata. I due si separano se hai linee fisiche più lunghe della larghezza dello schermo, il che è molto comune quando si scrivono e-mail e simili.
La distinzione compare anche nei comandi di fine riga.
- $ e 0 si spostano rispettivamente alla fine o all'inizio della riga o del paragrafo fisico:
- g $ e g 0 si spostano rispettivamente alla fine o all'inizio della riga dello schermo o del paragrafo .
Se preferisci sempre quest'ultimo comportamento, puoi rimappare le chiavi in ??questo modo:
:noremap 0 g0
:noremap $ g$
Premi A per accedere alla modalità di modifica a partire dalla fine della riga.
O c'è la risposta ovvia: usa il tasto End per andare alla fine della riga.
Forse non correlato, ma se si desidera iniziare una nuova riga dopo la riga corrente, è possibile utilizzare o in qualsiasi punto della riga.
L'opzione più semplice sarebbe quella di digitare $ . Se lavori con blocchi di testo, potresti apprezzare il comando { e } per spostare rispettivamente un paragrafo avanti e indietro.
Ero abituato a Home / End portandomi all'inizio e alla fine delle linee in modalità Inserisci (dall'uso in Windows e penso che Linux), che Mac non supporta. Questo è particolarmente fastidioso perché quando sto usando VIM su un sistema remoto, non riesco nemmeno a farlo facilmente. Dopo alcuni tentativi dolorosi, ho trovato queste linee .vimrc
che fanno la stessa cosa, ma associate a Ctrl-A per l'inizio della linea e Ctrl-D per la fine della linea . (Per qualche motivo, credo che Ctrl-E sia riservato o almeno non riesco a trovare un modo per legarlo.) Divertiti.
:imap <Char-1> <Char-15>:normal 0<Char-13>
:imap <Char-4> <Char-15>:normal <*>lt;Char-13>
Qui c'è una buona tabella per i codici dei caratteri di controllo ASCII anche per gli altri:
http://www.physics.udel.edu/~watson/ scen103 / ascii.html
Puoi anche fare Ctrl-V + Ctrl-, ma questo non si incolla anche in posti come questo.
Non riesco a vedere il tasto di scelta rapida per macbook per l'uso di vim nel terminale standard. Spero che possa aiutare qualcuno. Per utenti macOS (testato su macbook pro 2018):
fn + & # 8592; - passa alla riga iniziale
fn + & # 8594; - sposta alla fine
fn + & # 8593; - sposta la pagina in alto
fn + & # 8595; - sposta la pagina in basso
fn + g - sposta il cursore all'inizio del documento
fn + shift + g - sposta il cursore alla fine del documento
Per gli ultimi due comandi a volte è necessario toccare due volte.