Jak wyświetlić bieżącą kolumnę na pasku stanu w vimie?

187

Chciałbym wyświetlić bieżącą kolumnę na pasku stanu, jak to często bywa w wielu innych edytorach tekstu. Np. Dobrze wiedzieć, czy masz około 80 lub więcej kolumn.

Jak wyświetlić bieżącą kolumnę na pasku stanu?

Jonas
źródło
Jeśli chcesz wyświetlić bieżącą kolumnę kursora, wpisz: echo col ('.').
SibiCoder

Odpowiedzi:

218

Spróbuj, jeśli szukasz opcji „linijka”. Na moim komputerze w prawym dolnym rogu pokazuje wiersz i kolumnę, w której mam kursor.

:set ruler

EDYTUJ DO KOMENTARZY :

Z pomocą vim (polecenie :help ruler):

Jeśli liczba wyświetlanych znaków różni się od liczby bajtów w tekście (np. Dla TAB lub znaku wielobajtowego), wyświetlana jest zarówno kolumna tekstowa (numer bajtu), jak i kolumna ekranowa, oddzielone myślnikiem.

Możesz spróbować zmienić to za pomocą rulerformatopcji, np:set rulerformat=%l,%v

Birei
źródło
Tak jakby. Ale to pokazuje dziwną wartość, np. 23,62-68Gdy 23 wydaje się być linią. Jak mam interpretować 62-68tę kolumnę?
Jonas,
7
62 liczy karty jako jeden znak, 68 liczy rozszerzone karty
RedGrittyBrick
1
Z polecenia „: linijka pomocy”: „Jeśli liczba wyświetlanych znaków różni się od liczby bajtów w tekście (np. Dla TAB lub znaku wielobajtowego), zarówno kolumna tekstowa (liczba bajtów), jak i ekran kolumna jest pokazana, oddzielona myślnikiem. ” Możesz spróbować zmienić go za pomocą opcji „rulerformat”, na przykład „: set rulerformat =% l,% v”
Birei
rulernie działa z podzielonymi oknami w Vimie.
Mihai,
@Jonas Nie tylko tabulatory, jak powiedział RedGrittyBrick, ale także znaki kontra bajty. Jest to bardzo widoczne w plikach UTF-8, w których jednoznakowy glif ma wielobajtowy kod. Na przykład łaciński eñe (nz tyldą, wymawiany EN-yea) jest pojedynczym znakiem, ale zajmuje dwa bajty do przedstawienia punktu kodowego (\ xC3B1), a jedna trzecia (1/3) to pojedynczy znak z trzy bajtowym punktem kodowym (\ xE28593).
Luv2code
27

Zobacz :help statuslinewiele dostępnych opcji.

Mam to ~/.vimrcmiędzy kilkoma innymi dyrektywami:

set statusline+=col:\ %c,

które wyjścia

col: 64

w mojej linii statusu.

Nie mam set ruler.

romainl
źródło
1
To mi nie działa. Prawdopodobnie potrzebuję więcej ustawień.
Jonas,
3
Jonas, być może będziesz musiał użyć set laststatus=2w swoim, .vimrcaby zawsze wyświetlać linię statusu. (0 -> nigdy nie wyświetlaj linii stanu, 1 -> tylko, jeśli są co najmniej dwa okna, 2 -> zawsze wyświetlaj linię stanu).
pabuisson
Użyłem następujących, aby zapewnić miejsce przed tym i poprzednimi rzeczami na linii statusu: ustaw statusline + = \ col: \% c,
David Baucum
18

Innym sposobem jest zrobienie „g Ctrl-G”, który wypisuje bieżącą pozycję kursora na pięć sposobów: Kolumna, Linia, Słowo, Znak i Bajt. (z http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G )

Piotr
źródło
To rozwiązanie ma coś zgrabnego, co odróżnia Column i VisibleColumn. Znaki niedrukowalne są wyświetlane 2 kolumny, ale należy je liczyć jako jedną. Jeśli niezarejestrowanych znaków widocznych wyjście wygląda następująco: RealColumn-VisibleColumn, Line, Word, Character and Byte.
mxlian
17

Lub pozostaw „linijkę” nieuzbrojoną, zwiększ wydajność i naciśnij CTRL-G, jeśli chcesz zobaczyć bieżącą kolumnę.

ma11hew28
źródło
3
Wciśnięcie Ctrl-Anything nie brzmi jak zwiększenie wydajności. Piszemy postacie. Żaden człowiek nie ma palców i oczu, które latają wystarczająco szybko, aby zobaczyć taką różnicę w wydajności.
macetw
10

Amortyzowałbym za pomocą ustawionej linijki, ponieważ uważam, że nie jest ona zgodna z opcjami linii statusu, np. Jeśli ustawisz linię statusu tak, aby wyświetlała pełną ścieżkę pliku w połączeniu z ustawioną linijką

set statusline+=%F

set ruler

Następnie NIE wyświetla numeru kolumny, a jedynie pełną ścieżkę do pliku na pasku stanu. Jeśli jednak umieścisz następujące elementy w pliku .vimrc

set statusline+=%F\ %l\:%c

Wyświetli wszystko poprawnie, a mianowicie

[Ścieżka / nazwa pliku] [numer bielizny]: [numer kolumny]

Giovanni Macciocu
źródło
2

Dla innych osób, które szukają tej odpowiedzi i nie są przyzwyczajeni do pracy z VIm, osobiście najprostszą odpowiedzią, jaką znalazłem, jest dodanie tej linii na końcu pliku .vimrc w katalogu domowym:

set ruler

Sójka
źródło