Удалите от курсора до конца строки в 'vi'

Использовать -r (--raw-control-chars) опция к меньше, или также -R (только escape-последовательности ANSI).

У меня есть псевдоним для этого в ~/.bashrc

alias rless='less -r'
326
09.01.2020, 03:14
5 ответов

Собственный вес команды удалит от текущей позиции курсора до начала следующего словесного символа. d$ команды (примечание, это - знак доллара, не 'S') удалит из текущей позиции курсора в конец текущей строки. D является синонимом за d$.

482
27.01.2020, 19:26
  • 1
    Да я знаю о dw, но я предполагаю, что просто предположил, что будет, "удаляют остальную часть этой строки" команда. Например, моя строка имеет ip=|10.1.1.1 с | быть позицией курсора. Есть ли команда, которая удалит весь 10.1.1.1? –  Falmarri 29.11.2010, 23:03
  • 2
    @Falmarri - Я приношу извинения, я, должно быть, неправильно понял Ваш вопрос. Существует команда для этого: d$ –  Tok 29.11.2010, 23:04
  • 3
    D (Shift+d) является также синонимом за d$. –  Neth 30.11.2010, 00:06
  • 4
    @Andy, задание состоит в том, чтобы удалить из курсора в конец строки. Если Вы полагаете, что удаление больше, чем это "делает задание", Вы могли также просто использовать :!rm -f % и затем :q!. Это удаляет целый файл. –  Wildcard 27.10.2017, 04:28
  • 5
    @Amir Просто использует d^ ('d' + каре)... в основном d + любой символ, который обычно перемещал бы курсор, я думаю, но я изучаю Vim сам, таким образом, я мог быть неправ в этом. –  JakeD 24.12.2017, 04:25

Одной из хороших вещей о vi является своя логическая структура команды. d сопровождаемый командой движения удаляет к цели того движения. $ перемещения в конец строки (мнемосхема: как в regexps). Так d$ удаляет в конец строки. Точно так же e перемещения в конец текущего слова, и w перемещения к началу следующего слова; так de удаляет конец текущего слова, и dw дополнительно удаляет следующий пробел.

38
27.01.2020, 19:26
  • 1
    @gioele я использую <kbd> для фактических ключей, не для последовательностей команды. Например. <kbd>Ctrl</kbd>+<kbd>C</kbd>, но d$. –  Gilles 'SO- stop being evil' 29.04.2014, 12:42
  • 2
    @Gilles Вы правы. Я только что попробовал d^, и он удалил от позиции курсора до строки, начинаются. объяснение –  ka3ak 02.04.2016, 14:57
  • 3
    я всегда использовал (d) элиту (a) (w) порядок для удаления слов :) –  Błażej Michalik 21.09.2016, 23:51

Вы, вероятно, хотите использовать D. Переместите курсор в первый символ, который Вы хотите удалить, затем поразить shift-D. Все уведенное. На самом деле это находится в буфере сокращения по умолчанию, таким образом, Вы можете, P или p вставить его въезжают задним ходом.

Я использую Разность потенциалов (удалите к концу строки, затем отложите ее), переместитесь в конец некоторой другой строки, затем p снова для вставки того же текста в в конце этой другой строки. Творит чудеса в файлах конфигурации, куда необходимо поместить некоторый сложный URL в два или больше места.

21
27.01.2020, 19:26
  • 1
    Это - вероятно, минимальный Vim, который он использует так или иначе. –  polemon 03.12.2010, 11:17

Как уже упоминалось, вы можете использовать d $ или D ( shift - d ) для удаления от позиции курсора до конца строки.

Что мне обычно кажется более полезным, так это c $ или C ( shift - c ), потому что он удалит из курсора позиция до конца строки и переводит вас в режим [INSERT].

49
27.01.2020, 19:26

Чтобы удалить диапазон строк после позиции курсора, 3D удалит курсор до конца строки, а также следующие две строки полностью (, т.е., удаляет 3 строки после позиции курсора ).

напр. для следующего текста (курсор представлен как |),

If there's a cursor |in the line
here
we
go

При использовании команды 3D выводится:

If there's a cursor
go
1
27.01.2020, 19:26

Теги

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