Krijg je het huidige rijnummer?

Is er een toetstoewijzing die het huidige rijnummer van de regel die wordt bewerkt, uitvoert? Of, nog beter, kunnen we formules maken op basis van de output van de key mapping?

Ik wil het rijnummer krijgen en 1toevoegen aan de huidige tekst die wordt bewerkt.


Antwoord 1, autoriteit 100%

Ctrl+Gzal je het regelnummer vertellen en zelfs de kolom waarin de cursor staat. Als je bedoelt dat het als tekst naar je document moet, dan niet dat ik weet van.


Antwoord 2, autoriteit 98%

Wat bedoel je met “uitvoer”? Je kunt het volgende doen:

:echo line(".") + 1

Om het huidige regelnummer plus 1 weer te geven. U kunt een toetsaanslag binden met map, bijvoorbeeld:

:noremap <F1> :echo line(".") + 1<cr>

Om de gegevens daadwerkelijk in de buffer in te voegen:

:noremap <F1> :execute "normal! i" . ( line(".") + 1 )<cr>

Antwoord 3, autoriteit 14%

Het antwoord is gegeven door @ZyX in een reactie op een ander antwoord:

Je hebt <C-r>in de invoegmodus voor dit soort dingen:

nnoremap <F1> i<C-r>=line('.')+1<CR><Esc>


Antwoord 4, autoriteit 12%

1. Gebruik :set ruler. (Werkt alleen in vim) Referentie

Het toont de huidige regel en kolom van de regel die wordt bewerkt (regel waar de cursor staat), in de rechterbenedenhoek van de weduwe.

1,1 <position>

  1. Als de eerste regel is bewerkt, is de positie Top.
  2. Als de laatste regel is bewerkt, is de positie Bot.
  3. Als er geen scroll beschikbaar is (zowel de begin- als de eindregel zijn zichtbaar), is de positie All
  4. Als er geen eerste en laatste regel zichtbaar zijn, is positie het percentage van het document dat zichtbaar is.

Om het permanent te maken, voegt u set rulertoe aan het bestand ~/.vimrc(als het bestand er niet is, maakt u er een).

2. Gebruik :set number. (Werkt in zowel vials vim) Referentie

Toont het regelnummer voor elke regel.


Antwoord 5, autoriteit 4%

Je kunt de visuele breedte van de huidige cursorpositie krijgen met virtcol('.'); voeg dat in de buffer in via het expressieregister, b.v. in invoegmodus met <C-R>=virtcol('.')<CR>

Houd er rekening mee dat de breedte verschilt van het aantal tekens wanneer de regel tekens met dubbele breedte, <Tab>of niet-afdrukbare tekens bevat.


Antwoord 6

niet echt gerelateerd aan het oorspronkelijke probleem, maar voor mij, om een ​​regelnummer te zien, gebruik ik liever :#, het zal ook het regelnummer en de inhoud afdrukken

Other episodes