Chcę użyć możliwości zawijania miękkiego Vima ( :set wrap
), aby zawijać kod do 80 znaków, niezależnie od mojej rzeczywistej szerokości okna.
Nie udało mi się jeszcze znaleźć na to sposobu - całe miękkie opakowanie wydaje się związane z szerokością okna
textwidth
iwrapmargin
oba służą do twardego zawijania (wstawiają znaki nowej linii do pliku)- pionowe podzielenie na wiele okien i użycie
:vertical resize 80
(prawdopodobnie z,:set breakat=
aby umożliwić przerwy w dowolnym znaku) na jednym z nich rodzaj pracy (nawet jeśli jest to trochę hakerskie), ale przerywa się, gdy używa się:set number
jako, że numery linii zajmują zmienną liczbę kolumn (w zależności na długości pliku) i są częścią 80.
Czy jest jakiś sposób, aby to zrobić w vimie? Według innych źródeł nie wygląda to obiecująco .
W tej chwili moje przybliżenie jest takie, że /^.\{80}\zs.\+
jako domyślne wyszukiwanie, więc przynajmniej jest podświetlone. Myślałem o dodaniu do niego :syntax
elementu, ale to się zepsuło, gdy nałożyło się na inne elementy składni, więc porzuciłem ten pomysł.
Odpowiedzi:
Mógłbyś
:set numberwidth=6
i:set columns=86
(lub myszki) do odpowiedniego rozmiaru.Jeśli edytujesz plik zawierający milion wierszy, możesz mieć problemy, ale jest to mało prawdopodobne. W ten sposób marnujesz również 6 kolumn ekranu. Więc nadal istnieje wiele problemów.
Możesz podświetlić miejsce poza 80. kolumną, używając
:match
tak, jak jest napisane tutaj i tutaj .Poza tym nie widzę żadnego sposobu, aby to zrobić. Wygląda na to, że byłaby to fajna funkcja.
źródło
Spróbuj tego:
Możesz usunąć,
if (&columns > 80) |
jeśli zawsze chcesz 80 kolumn.źródło
Nie mam rozwiązania na miękkie zawijanie, ale jeśli chodzi o oznaczanie kolumny, od Vim 7.3 (wydany 2010-08-15)
:set colorcolumn=80
podświetli kolumnę 80. Kolor będzie zależał od pliku składni.Zobacz Vim 80 kolumna układ obawy ,
:h colorcolumn
.źródło
:let w:eighty_column_match = matchadd('ColorColumn', '\%81v.\+', 100)
colorwidth
rzecz jest pomocna z innych powodów, więc cieszę się, że to opublikowałeś.Czy próbowałeś
'linebreak'
?źródło
breakat
to tylko wzór (nie długość), więc nie wiem, jak mógłbym go użyć do wymuszenia miękkiego owinięcia przy 80 ...^.{,80}\b
byłby odpowiedni dla osób używających miękkich / rozwijanych zakładek. Zwróć uwagę, że to wyrażenie regex perl, a nie vim regex.Nie ma na to dobrego sposobu. Możemy włamać prowizorycznym
setlocal softwrap
zeautocmd
jeśli będziemy modyfikować @eborisch odpowiedź. Jeśli zmieniamy rozmiar za każdym razem, gdy wchodzimy do bufora i zmieniamy rozmiar do określonej długości, gdy ustawianasoftwrap
jest zmienna lokalna , uzyskujemy pożądane zachowanie.Załóżmy, że chcemy miękko zawinąć do 80 kolumn, możemy napisać w
.vimrc
.Aby włączyć tryb dla konkretnego bufora, użyj następujących poleceń:
źródło