Как эффективно удалить слово, двоеточие и запятую в VIM - PullRequest
6 голосов
/ 05 января 2012

У меня часто есть такой фрагмент кода:

it "should do something", :focus do
  ...
end

Когда я хочу удалить , :focus Я обычно делаю

  1. Перейти к строке 1: 1G
  2. Перейти к двоеточию: f:
  3. Удалить двоеточие (используется вокруг слова, чтобы я мог его повторить): daw
  4. Удалить focus (просто повторите предыдущий): ..
  5. Удалить запятую (переместить влево и заменить ее пробелом): hr<SPACE>.

Есть ли способ повысить эффективность шагов 3-5?

Ответы [ 4 ]

8 голосов
/ 05 января 2012

Вы можете перейти:

  1. 1G, чтобы перейти к первой строке
  2. f,, чтобы перейти к запятой
  3. dE, чтобы удалить доследующий конец слова (слово заглавными буквами - любая последовательность символов, не являющаяся пробелом).
3 голосов
/ 05 января 2012

С помощью курсора на , вы можете сделать v , e , e , d .

или d , 2 , e

1 голос
/ 05 января 2012

С помощью курсора или двоеточия вы можете сделать d F , d E . Часть d F , будет удалена назад до запятой включительно. Затем d E удалит до следующего пробела. Хорошая вещь об этом - то, что если нет предшествующей запятой, это все еще сделает то же самое. Так с кодом

if :focus, "should do something" do

Если курсор находится на двоеточии, этот макрос удалит только часть :focus,, хотя и оставит два пробела.

0 голосов
/ 05 января 2012

Вы бы лучше показали, где находится ваш курсор, но, предполагая, что он после "end", я бы сделал это:

?",<CR>ldt<space>.
...