2013-06-05 8 views
8

Często muszę kopiować większe pionowe wybory, np. podczas pracy z (zostańmy cywilizowany) bogaty w interfejsy „getter/setter”, npUnikaj dodatkowych białych znaków podczas wklejania zaznaczenia w pionie

A very long line with something I would like to copy: ABC$ 
A short line with nothing$ 
A very long line with something I would like to copy: ABC$ 

Tutaj użyłem $ wskazany do końca linii. Teraz dokonuję wizualnego zaznaczenia pionowego na przykład na A w kolumnie 55 we wszystkich liniach, przeciągnij ją i wklej ją z P przed tą kolumną i uzyskaj dodatkową białą spację wstawioną w drugiej linii w .

A very long line with something I would like to copy: AABC$ 
A short line with nothing        $ 
A very long line with something I would like to copy: AABC$ 

Czy istnieje sposób na uniknięcie dodatkowych białych znaków? Zmiana znaków w pionowym zestawie wizualnym nie wydaje się być dotknięta tym problemem.

+0

Niezależnie od tego, co robię, nie jestem w stanie skopiować dodatkowych białych znaków ... jaka wersja vima i środowiska? –

+0

@ExplosionPills: Widzę to dla 7.3.931 i 7.3.1070, nawet jeśli używam '-u/dev/null' w wersji terminalu. Wersje readline muszą być bardzo różne, ale nie sprawdzały. –

+0

Co tworzy ': verbose set virtualedit?' Jak szarpać tekst: 'v',' V' lub ''? Mogę to wyprodukować, wykonując blok wizualny i 'set virtualedit = all'. Wyobrażam sobie, że 'set virtualedit = block' miałby taki sam efekt. Szybka korekta: szarpanie linii w linii z "V". –

Odpowiedz

4

Tak działa blokada wizualna. Kopiuję kolumnę 55. Następnie wklej z P. Twoja druga linia nie rozciąga się aż do kolumny 55. Jeśli więc wkleisz ją, rozszerzysz tę linię.

Użyj :reg, aby przejrzeć swój rejestr. Zauważysz A^J ^JA jako wartość dla "", rejestru bez nazwy. Symbol ^J symbolizuje łamanie linii. Zwróć uwagę na przestrzeń między ^J. W ten sposób dźwignię trybu wizualnego pracuje z pustą przestrzenią, wypełniając ją spacjami.

+0

Dziękuję za wyjaśnienia. Jeśli chodzi o moje pytanie: czy istnieje sposób na uniknięcie "automatycznego przedłużania" krótszych linii podczas szarpania? Wiem, jak przycinać białe znaki na EOL, ale chciałbym tego uniknąć, ponieważ pracuję z zwykłymi śmiertelnikami i nie chcę wprowadzać zmian formatowania przy zmianie funkcjonalności. –

+0

Nie ma możliwości zatrzymania automatycznego przedłużania, o którym jestem świadomy. Przytnij białą przestrzeń za pomocą ': '[,'] s/\ s * $ //' zaraz po wklejeniu. Myślę, że tryb bloków wizualnych prawdopodobnie nie jest właściwym rozwiązaniem w tej sprawie. Sugeruję, abyś spojrzał na podstawienia (': h: s') i/lub makra (': h q'). –

+0

Argh, przycinanie pozwoliłoby pozbyć się istniejących nadmiarowych odstępów. Sądzę, że nadszedł czas, aby przekwalifikować pamięć mięśniową, jeśli nie pojawi się tu żadne rozwiązanie. –

Powiązane problemy