Очистити рядок швидше, ніж [0] [d] [$]


18

Чи є швидший спосіб стерти текст на рядку, ніж

  • натискаючи, 0щоб перейти до початку, потім
  • натискаючи, d$щоб видалити до кінця рядка?

Крім того, що робити, якщо я хотів видалити все, крім відступу? Чи є спосіб це зробити?

Відповіді:


34

Як ви вже сказали, існує кілька способів, і ви також можете врахувати, якою буде ваша наступна дія після того, як ви очистите чи видалите поточний рядок.

  1. dd видалить поточний рядок (не зрозуміло)
  2. 0D очистить поточну лінію, включаючи пробіл
  3. ^Dочистить поточну лінію, не включаючи пробіл ( ^dg_економить простір)
  4. 0C очистить поточну лінію, включаючи пробіл, і переведе вас у режим вставки
  5. ^Cочистить поточну лінію, не включаючи пробіл, і переведе вас у режим вставки ( ^cg_економить простір)

ccабо Sбуде функціонувати як 4., так і 5., якщо функція autoindent вимкнена або включена відповідно.

Тому використовуйте все, що відповідає дії. Я вважаю, що 0Dце найшвидше очистити лінію, але ви можете скопіювати це до чогось, якщо хочете, щоб зробити це ще швидше.


7
@SuperScript Sє синонімом доcc
FDinoff

1
Дякую за чудову відповідь, @akshay; TYLTK - це найкраще: vi.stackexchange.com/…
Роббі Wxyz

9

Так. Якщо у Віма мені подобається одна річ, це відповідь на тему "Чи можу я це зробити?" майже завжди є наголосним так .

0D Переходить до початку, потім видаляється через кінець рядка.

^D (не Ctrl + D) перейде до першого непробільного символу, а потім видалить до кінця.

(PS Я зрозумів це саме зараз і хотів поділитися з будь-якими іншими нобухами. Будь ласка, дайте мені знати, чи є кращий спосіб.)


6

Очистити рядок з одним ключем (зрушені): S.

Це також зберігає відступ.

Ви переходите в режим вставки на першій позиції після відступу або на початку рядка - саме те, що вам потрібно замінити рядок - отже, назва S- як заміна.

:help S

["x]S   Delete [count] lines [into register x] and start
        insert.  Synonym for "cc" |linewise|.

["x]cc  Delete [count] lines [into register x] and start
        insert |linewise|.  If 'autoindent' is on, preserve
        the indent of the first line.

S- чудовий ключ.
domi91c

3

За допомогою плагіна " vim-textobj-line " від Kana ви можете використовувати операції на відступному рядку з il(наприклад dil) або з цілим рядком без нового рядка з al(наприклад yal). Перевага такого підходу є тонкою: замість того, щоб думати обидва рухи (початок, кінець) для потрібної операції, ви вказуєте текст-об’єкт безпосередньо : i n l ine, a l ine.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.