Otrzymuję nietypowe zachowanie, gdy próbuję usunąć z końca linii przy użyciu wyboru bloku w vim.usuwanie z końca wierszy za pomocą bloku wybierz w vim
Więc powiedzmy, że mam tekst jako takie:
delete this char:x
and this:x
also this:x
and then this:x
lastly this:x
Jeśli chcę dołączyć y
do każdej linii mogę:
- wybór blok startu z Cv
- wybierz wszystkie linie z
4j
- idą do końców linii z
$
- początek dołączanie z
A
- typu żądany tekst
y
w celu uzyskania:
delete this char:xy
and this:xy
also this:xy
and then this:xy
lastly this:xy
ale gdy próbuję usunąć x
w ostatnim kroku zamiast dodanie bym spodziewać się:
delete this char:
and this:
also this:
and then this:
lastly this:
chociaż skończyć z:
delete this char:
and this:x:
also this:x:
and then this:x:
lastly this:x:
O ile rozumiem, to dołącza Ostatni znak w pierwszym wierszu do wszystkich innych linii (w tym przypadku :
) zamiast usuwania brakujących te (w tym przypadku x
) .
Mogę to zrobić za pomocą makr lub zamienników, ale nie do końca rozumiem powody takiego zachowania. Czy jest sposób, w jaki mogę to zrobić przy wyborze bloku?
Nie rozumiem zachowania Ci opisać. Pierwsze 'x' jest usuwane, ale nic nie jest dodawane. – romainl
@romainl używasz tych samych przykładów z pytania? jeśli używasz czegoś takiego jak 'delete this char: x' i delete' x', dodaje spacje końcowe, które mogą być łatwe do przeoczenia .. – none
Nie, widzę końcowe spacje dobrze i nie ma żadnych. W tym kontekście ' {movement} $ A', usuwanie znaków nie jest jednak wykonywane w każdym wierszu selekcji. Działa tylko dodawanie znaków. Jest trochę krótkowzroczny, jeśli chcesz poznać moją opinię, ale tak to jest zaprojektowane. Usunięcie 'x' na końcu zakresu linii jest zwykle wykonywane za pomocą': '<,'> norm $ x' lub ':' <,'> s/x $ //'. –
romainl