În Vim, cum se obține numărul de linii din fișierul curent folosind vimscript? (Programare, Vim)

Jason Axelson a intrebat.
a intrebat.

Încerc să obțin numărul de linii din fișierul curent folosind vimscript, dar nu-mi dau seama cum (iar Google îmi returnează o grămadă de prostii despre afișarea numerelor de linii).

Comentarii

  • Nu am folosit niciodată vimscript, dar acest răspuns ar putea fi de ajutor: stackoverflow.com/a/553257/778118 –  > Por jahroy.
  • Nu folosiți Google pentru astfel de lucruri. Răspunsul se află pe mașina ta: :help functions. –  > Por romainl.
5 răspunsuri
kev

Puteți utiliza line() funcție:

:echo line('$')

matty

Cel mai simplu mod este să apăsați ctrl-g, care va dezvălui numele fișierului, linia curentă, numărul de linii, poziția dvs. curentă ca procent și numărul curent al coloanei cursorului.

Comentarii

  • După ce am recitit întrebarea, îmi dau seama că ați încercat să faceți acest lucru prin vimscript. Îmi pare rău, răspunsul meu nu este util în acest scop. –  > Por matty.
  • Totuși, pentru cineva care a dat peste această întrebare de pe Google, acesta a fost cel mai bun răspuns pentru mine – -.  > Por Burrito.
irin

De asemenea, ați putea folosi

wc -l <filename>

serup

atunci când selectați o zonă, apoi vim arată în colț câte linii ați selectatdacă aveți următoarele în fișierul .vimrc:set statusline=%f %l,%c

Comentarii

  • Dacă OP dorește să folosească acel număr înapoi într-un script vim, nici 'statusline' nici CTRL-Gîi vor fi de ajutor. line('$') va returna numărul de linii din bufferul curent, iar len(readfile(filename)) numărul de linii dintr-un anumit fișier. –  > Por Luc Hermitte.
  • titlul nu spune nimic despre script – poate că ar trebui schimbat atunci -.  > Por serup.
  • Într-adevăr, titlul nu spune nimic despre acest lucru. Cu toate acestea, în text, OP a specificat „folosind vimscript”. Este posibil ca el să fi exprimat un mijloc(e?) care restricționează, fără un motiv întemeiat, soluțiile valide pentru obiectivul său real. În acest caz, răspunsul tău și cel al lui matty ar fi perfect valabile. Nu pot să vă spun. –  > Por Luc Hermitte.
  • Schimbat titlul 🙂 –  > Por Jason Axelson.
holytrousers

Variabila %L conține deja numărul total de linii.

Ați putea folosi :echo %L sau :set statusline+=%L pentru a-l adăuga la starea

Comentarii

  • exemplul dvs. ‘:echo %L’ nu funcționează în gvim 7.4.580 pe linux și nici în 8.0.6 pe windows. Exemplul statusline a funcționat, dar vă rugăm să includeți versiunea de vim se poate folosi ‘%L’ ca țintă a ‘echo’ pe vim-cmdline(‘:’) pentru caracteristici specifice versiunii/platformei. Vă mulțumim! –  > Por Astara.

Tags: