Sposób zrobić wskazanie 80-kolumny w vim wydaje się nieprawidłowy: set columns=80
. Czasami ja również set textwidth
, ale chcę być w stanie zobaczyć i przewidzieć przepełnienie linii za pomocą set columns
alternatywy.
Ma to kilka niefortunnych skutków ubocznych:
- Nie mogę
set number
obawiać się podziału na pliki o różnych porządkach numerów linii; tzn. <100 plików linii i> = 100 plików linii będzie wymagać dwóch różnychset columns
wartości ze względu na dodatkową kolumnę używaną do wyświetlania dodatkowych cyfr. - Zaczynam też nowe (g) sesje Vima zamiast rozdzielać okna w pionie. Jest tak, ponieważ
vsplit
zmusza mnie doset columns
każdorazowego otwierania lub zamykania okienka, więc rozpoczęcie nowej sesji jest mniej kłopotliwe.
Jak radzisz sobie ze wskazaniem 80 znaków, kiedy chcesz set numbers
, podział w pionie itp.?
vim
coding-style
cdleary
źródło
źródło
Odpowiedzi:
Mam to skonfigurowane w moim .vimrc:
Podkreśla to tło w subtelnym czerwonym kolorze dla tekstu przekraczającego limit 80 kolumn (subtelny w trybie GUI, w każdym razie - w trybie terminalowym jest mniej).
źródło
Od wersji vim 7.3 możesz używać
set colorcolumn=80
(set cc=80
w skrócie).Ponieważ wcześniejsze wersje tego nie obsługują,
.vimrc
zamiast tego moje zastosowania:Zobacz także dokumentację online dotyczącą tej
colorcolumn
opcji .źródło
highlight ColorColumn ctermbg=7
Krótsza droga:
źródło
ErrorMsg
jesthighlight-group
. W Vimie jest wiele domyślnych grup świateł, których możesz używać w oparciu o kodowanie kolorów, które chcesz zastosować w tym przypadku.Wolę:
źródło
Odpowiedź Simona Howarda jest świetna. Ale
/\%81v.\+/
nie wyróżnia kart przekraczających kolumnę 81. Więc zrobiłem małe ulepszenie, w oparciu o rzeczy, które znalazłem na wiki VIM i wybór kolorów HS powyżej:A teraz VIM podświetli wszystko, co przekracza kolumnę 80.
źródło
guifg=white
na końcu.Minimalistyczne, nie over-the-top podejście. Podświetlany jest tylko 79 znak zbyt długich linii. Rozwiązuje kilka typowych problemów: działa na nowych oknach, przepełnione słowa są odpowiednio podświetlone.
Uwaga: zwróć uwagę, że
FileType scala,java
ogranicza to to do plików źródłowych Scala i Java. Prawdopodobnie będziesz chciał to dostosować. Jeśli miałbyś go pominąć, działałoby to na wszystkich typach plików.źródło
FileType scala,java
? (nie działa dla mnie)Możesz także narysować linię, aby zobaczyć limit 80:
Wynik:
źródło
Dobry sposób na oznaczenie tylko pierwszego znaku wychodzącego z określonych granic:
Z przemówienia Damiana Conwaya .
źródło
Nowsze wersje vima pozwalają na
:set numberwidth=x
wartość, która określa szerokość wyświetlania numeru linii. Tak naprawdę nie używam składania itp., Więc nie wiedziałbym o tym. Narysowanie cienkiej linii pionowej jest jednak poza możliwościami aplikacji konsolowej. GVim może na to pozwolić (nie używam tego, więc nie mogę komentować).źródło
Obawiam się, że nałożyłeś ograniczenia na zestaw rozwiązań, które, no cóż, pozostawiają ci zestaw zerowy.
Użycie
:set textwidth=80
poprawi wszystkie problemy, o których wspomniałeś, poza tym, że nie zobaczysz zbliżającego się limitu linii. Jeśli tak:set ruler
, włączysz wyświetlanie pozycji x, y na pasku stanu, za pomocą którego możesz sprawdzić, w której kolumnie się znajdujesz.Poza tym nie jestem pewien, co ci powiedzieć. Szkoda stracić kolumnę liczb, złożyć kolumnę i podzielić tylko dlatego, że musisz
:set columns=80
.źródło
Możesz spróbować:
Spowoduje to ustawienie dwóch wyróżnień w każdym buforze, jednego dla znaków w 8 kolumnach przed tym, co
&textwidth
jest ustawione, i jednego dla znaków poza tą kolumną. W ten sposób masz pewien stopień oczekiwania. Oczywiście możesz go dostosować, aby używał innej szerokości, jeśli chcesz mniej lub bardziej przewidywania (za co płacisz w postaci utraty podświetlenia składni w tych kolumnach).źródło
Patrząc na kolumny: help, nie jest tak naprawdę do robienia bałaganu.
W konsoli jest to zwykle określane przez ustawienie konsoli (tzn. Jest wykrywane automatycznie); w GUI określa (i jest określany przez) szerokość okien gvim.
Zwykle pozwalasz konsolom i menedżerom okien wykonywać swoje zadania, komentując to
set columns
Nie jestem pewien, co masz na myśli przez „zobacz i przewiduj przepełnienie linii”. Jeśli chcesz wstawić EOL z grubsza w kolumnie 80, użyj albo
set textwidth
lubset wrapmargin
; jeśli chcesz tylko miękkiego zawijania (tzn. linia jest owinięta, ale nie ma rzeczywistego EOL), to zagraj za pomocąset linebreak
iset showbreak
.źródło
ten jest poza lewym polem, ale jest to ładna mała mapa do zmiany obecnego podziału na 80 znaków, jeśli masz numery linii:
źródło
Możesz spróbować ustawić rozmiar okna, aby zezwolić na 80 znaków rzeczywistego tekstu. To jednak nadal nie działa w przypadku podziałów pionowych.
let &co=80 + &foldcolumn + (&number || &relativenumber ? &numberwidth : 0)
Wymaga to vim 7+, 7.3 dla relatywnej liczby.
źródło