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.
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
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).
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,
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ę.
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]
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:
Odpowiedzi:
Spróbuj, jeśli szukasz opcji „linijka”. Na moim komputerze w prawym dolnym rogu pokazuje wiersz i kolumnę, w której mam kursor.
EDYTUJ DO KOMENTARZY :
Z pomocą vim (polecenie
:help ruler
):Możesz spróbować zmienić to za pomocą
rulerformat
opcji, np:set rulerformat=%l,%v
źródło
23,62-68
Gdy 23 wydaje się być linią. Jak mam interpretować62-68
tę kolumnę?ruler
nie działa z podzielonymi oknami w Vimie.Zobacz
:help statusline
wiele dostępnych opcji.Mam to
~/.vimrc
między kilkoma innymi dyrektywami:które wyjścia
w mojej linii statusu.
Nie mam
set ruler
.źródło
set laststatus=2
w swoim,.vimrc
aby 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).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 )
źródło
RealColumn-VisibleColumn, Line, Word, Character and Byte
.Lub pozostaw „linijkę” nieuzbrojoną, zwiększ wydajność i naciśnij CTRL-G, jeśli chcesz zobaczyć bieżącą kolumnę.
źródło
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]
źródło
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
źródło