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?
vimtutor
è fantastico. Probabilmente non lo sapevano?
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?
vimtutor
è fantastico. Probabilmente non lo sapevano?
Risposte:
Solo il tasto $ (simbolo del dollaro) . È possibile utilizzare Aper spostarsi alla fine della riga e passare alla modalità di modifica (Aggiungi). Per saltare l'ultimo carattere non vuoto, è possibile premere gquindi i _tasti.
L'opposto di Aè I(modalità Inserisci all'inizio della riga), a parte. Premendo solo il ^cursore posizionerà il primo carattere non vuoto della riga.
g_
g_
variazione in quanto non include caratteri vuoti
Come molte persone hanno detto:
ma anche:
|
comando pipe può contare, ad esempio 3 | per saltare alla terza colonna.
g _ va all'ultimo carattere non bianco.
g $ va alla fine della linea dello schermo (quando una linea di buffer viene spostata su più linee dello schermo)
b
va all'inizio della parola precedente che non è affatto la stessa cosa. È approssimativamente equivalente a $ge
.
_
e g_
per visual / yanking, così come $
copierò / eliminerò il nuovo carattere di linea (LN).
g_
è l'unico modo che ho trovato per arrivare alla fine effettiva della linea.
$
arriva alla fine della linea anche se avvolto per me. Non conosco alcuna impostazione per regolarne il comportamento. Forse è stato rimappato dal tuo .vimrc g$
?
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 della riga (tecnicamente il primo carattere non bianco )
^ va all'inizio della riga, rimane in modalità comando
I (i maiuscola) va all'inizio della riga, passa alla modalità di inserimento
Inoltre - inizio della linea (tecnicamente la prima colonna indipendentemente dallo spazio )
0 (zero) va all'inizio della riga, rimane in modalità comando
0i (zero seguito da i minuscoli) passa all'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.
I
non è 0
ma ^
, come entrambi I
e ^
va al primo carattere non bianco della riga ma 0
va alla colonna zero (come suggerisce il nome).
0
sarebbe l'analogo di ? (vai al primo carattere (= colonna 0) della riga e vai alla modalità di inserimento)
0i
. :-)
Se la riga corrente si avvolge attorno allo schermo visibile sulla riga successiva, puoi usare g $ per arrivare alla fine della riga dello schermo .
gw
e gq
sono comandi che riformattano il testo. (vedi :h gw
e :h gq
) Quello che probabilmente è successo è stato che hai fatto gw{motion}
e modificato del testo in modo che le linee dello schermo corrispondessero alle linee effettive.
Il simbolo del dollaro: $
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 ( ;
) solo per terminare la linea. Scrivi la seguente riga nel tuo file vimrc :
imap <C-l> <Esc>$a
Cosa dice la linea? Associa Ctrl + l a una serie di comandi. Equivale a premere contemporaneamente Esc(modalità di comando), $(fine riga), a(aggiungi).
vim
ti permette sicuramente di fare molto di più in molto meno tempo con cose come questa. @razorxpress, sarebbe una regolazione minore imap <C-l> <Esc>A
, che rende Ctrl + l l'equivalente della pressione Esc
(esci dalla modalità di inserimento), quindi A
(aggiungi alla fine della riga).
inoremap <C-l> <C-o>A
Il vantaggio del tasto 'Fine' è che funziona sia in modalità normale che in modalità inserimento.
'$' funziona solo in modalità normale / comando ma funziona anche nel classico editor vi (utile sapere quando vim non è disponibile).
Nota anche la distinzione tra linea (o forse linea fisica) e linea dello schermo . Una riga termina con il carattere Fine linea ("\ 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 si hanno 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.
Se preferisci sempre quest'ultimo comportamento, puoi rimappare i tasti in questo modo:
:noremap 0 g0
:noremap $ g$
g_
è l'ultimo non-spazio bianco della linea fisica . Che ne dici della linea dello schermo?
Oppure c'è la risposta ovvia: usa il Endtasto per andare alla fine della riga.
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+ ← - passa alla riga iniziale
fn+ → - passa alla fine
fn+ ↑ - sposta la pagina in alto
fn+ ↓ - sposta la pagina verso il 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.
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 .vimrc
linee che fanno la stessa cosa, ma sono 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 $<Char-13>
C'è un buon grafico qui per i codici dei caratteri di controllo ASCII anche qui 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.