Як я можу вставити текст у кінці групи рядків?


18

Скажімо, у мене був текст тексту ...

Lorem ipsum
Lorem ipsum dolor
Lorem ipsum dolor sit
Lorem ipsum dolor sit amet

... і я хотів вставити а .в кінці кожного рядка. Який був би найкращий підхід для досягнення цього?

Відповіді:


14

Виконую наступне, щоб додати текст до кількох рядків:

  • <c-V> - Увійдіть у режим візуального блоку.
  • За допомогою кнопок j/ kвиберіть рядки.
  • $ - Перемістіть курсор до останнього символу.
  • A - Введіть режим вставки після останнього символу.
  • Вставте потрібний текст.
  • <Esc> - Вийдіть з режиму вставки та додайте фінішний блок.

У порівнянні з написанням :normпісля вибору є ще менше натискань клавіш, але справжня причина, чому я використовую це, полягає в тому, що мені більш інстинктивно працювати в режимі Visual Block для цього типу змін.


Дуже корисно в поєднанні із вставкою стовпчика тексту .
Пол Рудьо

8

На першому рядку просто введіть: 4:norm A.

4і :створити діапазон для вас, а потім norm A.додає крапку до кожного рядка

Іншим рішенням для довших абзаців може бути: Vip<C-v>$A.<Esc>

Першим кроком є ​​вибір абзацу, після Vipчого ви переходите до режиму візуального блоку та переміщуєте курсор до кінця кожного рядка, $потім додаєте .до кожного рядка і переходите A.до звичайного режиму, <Esc>щоб бачити, як зміни застосовуються до кожного рядка .


Що це за :Aкоманда? Я не знайшов це через:h :A
Пітер Рінкер

моє ліжко. Насправді не перевірили відповідь. Я її оновлюю. Він повинен використовувати звичайну команду так само, як відповідь @Kritixi Lhitos
rbernabe

На два персонажі менше, ніж 4:norm A.було б4:s/$/.
Філіпос,

3

Спочатку ви можете їх візуально вибрати, Vа потім скористатися клавішами руху, щоб вибрати весь текст (або якщо текст був строго абзацом, який ви могли зробити [починаючи з першого рядка] V}). А потім наберіть :. Це повинно вивести щось на зразок :'<,'>командного рядка.

:'<'>normal A.

Це виконується normal A.у вибраних рядках. normal A.виконує A.як звичайний режим натискання клавіш. Це Aдодає .до кінця кожного з обраних рядків.


3

Якщо ви хочете додати крапку в кінці всіх рядків:

:%norm A.

або ви можете використовувати пошук і заміну:

:%s/$/./

% - це весь файл, $ - кінець рядка


Оскільки @ vim.ryan запитав текст тексту замість цілого файлу, :1,4s/$/./ який замінює останній символ крапкою на рядках від 1 до 4 включно.
rjt

1

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

Запишіть макрос у реєстр (регістр q у цьому прикладі):

qqA.<Esc>q

Потім можна візуально вибрати лінії, над якими потрібно працювати:

Vip

А потім відтворюйте свій макрос у кожному рядку (діапазон буде заповнений автоматично):

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