2012-03-29 23 views
8

Używam Vima do edycji angielskich plików tekstowych z> 10.000 słów i długich akapitów. Pliki są sformatowane jako zwykły tekst, a każdy akapit to długa linia. Korzystam z opcji wrap i wiążę odpowiednio j i na gj i gk, dzięki czemu mogę poruszać się liniami wyświetlania.Vim, długie linie i przewijanie

Jeśli mój kursor znajduje się na górze ekranu (ale nie na początku dokumentu) i przesuwaję kursor w górę (przy użyciu gk), ekran przewija się do góry, aby wyświetlić całą długą linię (akapit 300 słów)). Problem polega na tym, że z powodu długości linii powoduje to przesuwanie ekranu o połowę względem ekranu. Jest to dezorientujące, ponieważ nie wiem wcześniej, jak bardzo ekran się poruszy. Przewijanie z ^Y ma ten sam problem.

Czy istnieje sposób na sprawienie, aby Vim przewinął się tylko o jedną linię wyświetlania podczas korzystania z gk i jej ilków? Jest to bardziej naturalne w przypadku edycji kodu niezawierającego kodu źródłowego i domyślnego zachowania w większości edytorów tekstu, a także w edytorach tekstu, ale nie w Vimie. Myślę, że oznaczałoby to, że Vim musiałby przestać nalegać na pokazanie całej linii, którą edytuję.

+0

Było kilka pytań już na ten temat ; Nie przypominam sobie teraz, jakie były wnioski, ale czy próbowałeś tylko podzielić akapity. 10000 słów nie jest tak naprawdę zwykłą definicją zdania (lub akapitu). – Rook

+0

Paragrafy mają długość 300 słów, zdania są oczywiście krótsze; dla Vima akapit jest po prostu linią (linia nie jest identyczna z zdaniem). Cały dokument zawiera 10 000 słów. Oczywiście nie jest możliwe pisanie krótszych akapitów ze względu na przewijane zachowanie edytora! Jeśli przypomnisz sobie poprzednią dyskusję o moim problemie, byłbym wdzięczny za wskaźnik - wszystko, co mogłem znaleźć, to pytania o 'wrap',' gj' i 'gk'. – loevborg

+0

To było długotrwałe ograniczenie Vima. Wyszukaj w Google hasło "vim scrolling wrapped line": wydaje się, że było to powszechne żądanie z ostatnich 10 lub 15 lat. Nie ma znanych, eleganckich rozwiązań, może Vim nie jest właściwym narzędziem do tej pracy? – romainl

Odpowiedz

-1

Proponuję zdefiniować makro do przewijania strony. Jeśli mają wysokość ekranu 50, można iść z czymś takim:

map zp 48gj 
0

Osobiście stałe ten problem poprzez przełączenie do twardych owiniętych dokumentów prozy. Nie wierzę, że istnieje jakiekolwiek inne rozwiązanie. Oto jeden z artykułów, które po raz pierwszy ujawniły mi ten pomysł: http://alols.github.io/2012/11/07/writing-prose-with-vim/

Muszę wyznać, że na początku pomysł przekształcenia wszystkich moich dokumentów w ten staroświecki sposób pisania plików tekstowych wydawał mi się irytujący jak cholera i prawdopodobnie też ci to zrobi. Ale wkrótce przekonałem się, próbując innych współczesnych redaktorów, że żaden z nich nie był tak silny i stabilny jak Vim. Wszystko, co zajęło mi zanim to było całkowicie naturalne, to było strojenie formatoptions. W moim przypadku to działa najlepiej:

setlocal formatoptions=wat 

Również tutaj jedna przydatna funkcja odkryłem wrócić do miękkiego owinąć w każdej chwili, która może się okazać przydatne: Unwrap text in vim