Как удалить определенные строки в редакторе vim

Ответ @jasonwryan не будет работать с tmux 2.1, так как несколько параметров мыши были объединены в одну конфигурацию под названием mouse.

Новый подход:

  1. В .vimrcдобавьте:

    set ttymouse=xterm2
    set mouse=a
    
  2. В свой tmux.confдобавьте:

    set -g mouse on
    
0
09.03.2020, 08:20
2 ответа

Работать с отдельными строками одновременно неудобно, но можно:

:g/\v%5l|%9l|%16l|%28l/d
  • :g/.../-Воздействовать на строки, совпадающие с шаблоном /.../.
  • \v-очень волшебно , меньше экранирования для специальных символов в регулярных выражениях.
  • %<num>l-соответствует номеру строки <num>(, поэтому %5l|%9l|...соответствует 5-й строке, 9-й строке или....
  • :dудаляет строки.

Если это только одна строка или диапазон строк, вы можете выполнить :<num>dили :<start>,<end>d(, например, :5dдля пятой строки или :9,16dдля диапазона строк с 9-й по 16-ю строку. (включительно ).

2
28.04.2021, 23:21
:5d|9d|16d|28d

Как поставить четыре одиночные команды подряд. Но лучше перевернуть:

:28d|16d|9d|5d

Чтобы сохранить постоянную нумерацию.


Более гибкий способ — использовать vimscript. В одной строке это:

:for n in [28,16,9,5] | call deletebufline("%",n,n) | endfor
2
28.04.2021, 23:21

Теги

Похожие вопросы