Как удалить слова на той же вертикали в VIM - PullRequest
1 голос
/ 22 апреля 2020

У меня есть следующий ввод в vim:

 30 import json
 31 import os
 32 import socket
 33 import subprocess

Как мне удалить все после import во всех четырех строках?

Я думал, что смогу сделать:

  • 30G, чтобы перейти к строке 30
  • ctrl-v, чтобы войти в режим визуального блока
  • 3j до go вниз на три строки, а затем
  • dw, чтобы удалить слово для каждого из элементов

Но, похоже, это не сработало. Каков наилучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Проблема, с которой вы столкнулись, заключается в том, что такие операции, как d в визуальном режиме, больше не связаны с движениями, а с выбором, поэтому он просто удалит то, что выбрано в данный момент, не ожидая движения w, которое вы wi sh, чтобы дать его.

Вместо этого, когда вы находитесь в режиме визуального блока, вы можете использовать D, который удалит до конца строки.

В качестве альтернативы, вы можете использовать $ для перемещения к концу строки (ей) и затем d для удаления выбора. Этот способ действий также позволяет вам добавлять такие вещи, как добавление в конец строки, выполнив $A.

0 голосов
/ 23 апреля 2020

Простая команда

:30,33norm welD

 30,33 .............. range
 norm ............... normal mode
 wel ................ jump for beyond the second word
 D .................. delete til the end of line
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...