zakładam, że mam następujące teksty:
aaa-dd-e: „aaa”,
bb-x: „bb”,
c-9: „c”
Chcę dokonać wyboru jak poniżej:
aaa-dd-e:
„aaa”,
bb-x:
„bb”,
c-9:
„c”
Próbowałem użyć cv do utworzenia bloku wizualnego, ale po utworzeniu zaznaczenia w pierwszej kolumnie i naciśnięciu „f:” (chciałem rozszerzyć zaznaczenie do znaku dwukropka w każdej linii jak wyżej), otrzymuję:
aaa-
dd-e: „aaa”,:
bb-x
„bb”,
c-9:
„c”
zaznaczenie zatrzymuje się na pierwszym dwukropku i tworzy prostokąt.
visual-mode
Aaron Shen
źródło
źródło
Odpowiedzi:
Selekcja jest na ogół środkiem do celu, tym bardziej w Vimie, w którym selekcja często nie jest konieczna.
Zakładając, że nadal chcesz umieszczać cudzysłowy wokół nazw właściwości w pliku innym niż JSON, aby przekształcić go we właściwy JSON:
:'<,'>norm I"^[f:i"
('<,'>
jest automatycznie wstawiany i^[
uzyskiwany za pomocą<C-v><Esc>
).Jeśli masz piękną wtyczkę surround, krok 2 staje się:
Po podstawieniu krok 2 może stać się:
źródło
:g/regex/norm
mogę po prostu osiągnąć wszystko, co chcę zrobić."+y
lub"*y
, w zależności od schowka, na który chcesz celować. Tutaj jest wiele powiązanych pytań.Vim obsługuje tylko prostokątne zaznaczenia blokowe, z wyjątkiem poszarpanej prawej ramki po naciśnięciu
$
.Istnieją wtyczki (takie jak wiele kursorów vim ), które mogą emulować wiele wyborów, ale powinieneś być w stanie osiągnąć swój rzeczywisty cel (o którym niestety nie wspomniałeś) za pomocą czystych poleceń Vima, na przykład
:global
i:substitute
(jeśli możesz sformułować regularny wyrażenie pasujące do zaznaczenia w każdym wierszu) lub przez powtarzanie makr (jeśli istnieje określony ruch, który obejmuje zaznaczenie w każdym wierszu).źródło
Aby rzucić kolejny pierścień na pierścień, jeśli naprawdę chcesz użyć selekcji wizualnej, możesz użyć wtyczki Tabular do wyrównania dwukropków, a następnie dokonać selekcji wizualnej.
Jeśli weźmiesz oryginalny tekst:
:Tab /:\zs
wyrówna wszystko po dwukropku, jak poniżejNastępnie możesz dokonać wizualnego wyboru bloku.
Jednak, jak powiedzieli inni, selekcja wizualna prawdopodobnie nie jest konieczna w tej sytuacji. Używanie
norm
lub zastępowanie może prawdopodobnie osiągnąć to, czego chcesz, bez kłopotów z selekcjami wizualnymi.źródło
Znalazłem rozwiązanie tego problemu, który jest zaskakująco prosty! Uruchom tryb blokowania wizualnego od dołu zaznaczenia tekstu, który chcesz skopiować, i wybierz w górę! Będzie powiększał blok w miarę wchodzenia w górę, a jeśli podświetlisz w dół, wydaje się, że wybór jest mniejszy.
źródło