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

Как создать последовательность строк в указанной строке в редактируемом тексте?

Вот исходный текст.

test1
test2

Всего две строчки в тексте.

Я хочу вставить последовательность строк с 5-й строки на 16-ю строку. Я пробовал это с приведенными ниже кодами.

for i in range(1,12)  
    echo ".item".i.","
endfor  

1. исходный текст.
введите здесь описание изображения 2.войти в командный режим и ввести коды

введите описание изображения здесь

Необходимо решить две проблемы.
1. Команда echo выводит первую строку .item1 перед endfor.

for i in range(1,12)  
    echo ".item".i.","

2.Как создать последовательность строк в указанную строку: с 5-й по 16-ю в редактируемом тексте с помощью vimscript?

Желаемый результат, как показано ниже.

введите описание изображения здесь

Почти готово!
Что я получаю, как показано ниже с помощью команды :pu! =map(range(1,12), 'printf(''item%1d'', v:val)').

Оба они не могут работать.

:5pu! =map(range(1,12), 'printf(''item%1d'', v:val)')
:5,16pu! =map(range(1,12), 'printf(''item%1d'', v:val)')

введите описание изображения здесь

Последняя проблема для моего желаемого формата: когда курсор находится на 3-й строке, как создать желаемый вывод?

vim
22.05.2017

  • Вы имеете в виду что-то вроде этого pu! =map(range(1,16), 'printf(''item%1d'', v:val)')? Если нет, вы должны показать желаемый результат. Мне трудно определить, что вам нужно. 22.05.2017

Ответы:


1

Чтобы вставить недостающие строки, не вставляя ненужные пустые строки (-> append() + repeat([''], nb) + возможное отрицательное nb)

:let lin = 5 - 1
:call append('$', repeat([''], lin-line('$')))

Затем, чтобы вставить то, что вы ищете (не нужно printf(), если вы не хотите форматировать числа)

:call append(lin, map(range(1,12), '"item".v:val'))

PS: я бы предпочел избегать :put, когда это возможно, поскольку его сложно использовать со сложными выражениями.

24.05.2017

2

Предполагая, что вы работаете в операционной системе на основе Unix, у вас есть команда seq. Итак, вы можете сделать:

$ seq -f 'Item %.0f' 20
Item 1
Item 2
...
Item 20

Внутри vim вы можете попробовать подход чтение из внешней команды:

:r! seq -f 'Item \%.0f' 20
30.05.2017
Новые материалы

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

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

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

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

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

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

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