Nano Hash - криптовалюты, майнинг, программирование

Как вставить один и тот же текст в несколько позиций нескольких строк в Vim

Недавно я переключаю свой TextEditor с Sublime Text на Vim с помощью iTerm2.

Я ищу плагин для вставки текста в несколько позиций нескольких строк в Vim.

(Похоже на мультикурсор в Sublime Text, который я могу выбрать курсором и использовать CMD + Click, чтобы выбрать в другом месте, а затем вставить.)

Я видел плагин vim-multiple-cursors, но он позволяет мне выбрать только одно и то же слово следующего появления.

например, чтобы поместить курсор в другое место на другой строке, как показано ниже.,

Строка 1: Lorem ipsum dolor sit amet, [КУРСОР ЗДЕСЬ] consectetuer adipiscing elit. Энеан
Строка 2: commodo ligula [КУРСОР ЗДЕСЬ] eget dolor. Энейская масса. Cum sociis natoque
Строка 3: penatibus et magnis dis parturient montes,[CURSOR HERE] nascetur ridiculus mus.
Строка 4: Donec [CURSOR HERE] quam felis, ultricies nec, pellentesque eu, pretium quis, sem.

Ваша помощь будет принята с благодарностью и большое спасибо заранее.

Версия ВИМ

VIM - Vi IMproved 7.4 (10 августа 2013 г., скомпилировано 21 апреля 2014 г., 14:54:22)

Версия MacOS X (unix)

25.07.2014

Ответы:


1

Предупреждение

Я не рекомендую пытаться перенести ваши прежние привычки редактирования без изменений в Vim; в конце концов, редактирование на основе режимов и синтаксис команд Vim являются его отличительными чертами и делают редактирование очень эффективным.

Вим путь

«Путь Vim» будет больше похож на использование регулярного выражения для указания мест, перехода к первому совпадению, вставки, а затем повторения с n и .

Эмуляция

Вы можете как бы эмулировать предполагаемый рабочий процесс, вручную вставляя символ маркера (например, §) в каждое место, а затем заменяя его с помощью:

:%s/§/\=@@/g

Это использует :help sub-replace-expr для замены содержимым регистра по умолчанию.

25.07.2014
  • Большое Спасибо за совет и рекомендацию. Постараюсь быть в духе Vim и надеюсь, что скоро полностью познакомлюсь с Vim. 25.07.2014

  • 2

    У Vim есть другой буфер, в котором хранится то, что вы скопировали. Чтобы вставить, вам просто нужно использовать «P», и содержимое будет вставлено.

    Или я бы порекомендовал вам использовать "." [точка] - в Vim используется для последнего действия. Итак, после того, как вы написали/скопировали и вставили его в одну строку, вы можете просто использовать «точку» везде, где вы хотите вставить один и тот же текст (т.е. последнее действие, которое нужно выполнить).

    25.07.2014
  • Спасибо за совет. 25.07.2014

  • 3

    Канонический способ Vim сделать это, «точечная формула», придуманная Дрю Нилом, является противоположностью способа Sublime Text.

    В Sublime вы отмечаете каждое совпадение шаблона перед внесением изменений:

    mark    Cmd+D
    mark    Cmd+D
    mark    Cmd+D
    mark    Cmd+D
    change  foo
    

    В Vim вы «отмечаете» шаблон, вносите изменения один раз и повторяете это в следующих экземплярах этого шаблона:

    mark    *N
    change  ciwfoo<Esc>
    repeat  n.
    repeat  n.
    repeat  n.
    

    Но, поскольку у вас 7.4, вы можете использовать "новую" команду/движение gn нормального режима:

    nnoremap <key> *``cgn
    

    и сократите описанный выше процесс до:

    change  <key>foo<Esc>
    repeat  .
    repeat  .
    repeat  .
    repeat  .
    

    Что не так уж и плохо, я думаю.

    25.07.2014
  • Спасибо romainl. Дам попробовать тоже. 25.07.2014
  • Использование совершенно новых функций vim, вперед! 26.07.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..