Как записать столбец последовательных целых чисел в Vim по существующему тексту?

Posix требует, чтобы операционная система поняла понятие жестких ссылок, но не, что жесткие ссылки могут на самом деле использоваться при каком-то конкретном обстоятельстве. Можно узнать, сколько жестких ссылок разрешено в конкретном местоположении (это может варьироваться типом файловой системы) путем вызова pathconf(filename, _PC_LINK_MAX). Минимальный предел (_POSIX_LINK_MAX) 8, но это довольно бессмысленно как link() могут сообщить много других ошибок так или иначе (отклоненное разрешение, полный диск, …).

stat структура хранит число каналов в поле типа nlink_t, таким образом, тип этого поля дает верхний предел Вашей системы. Но существует хороший шанс, Вы никогда не будете мочь достигнуть этого далеко: распространено иметь 32-разрядное nlink_t но только 16 битов во многих файловых системах (быстрый grep в источнике Linux показывает, что расширение [234], NTFS, UFS и XFS использует 16-разрядные числа каналов в структурах данных ядра).

6
13.10.2011, 04:00
2 ответа

Одна идея состоит в том, чтобы использовать vimмакро-функция. Расположите курсор на первое / в / apple, и сделайте:

a1<Esc>

вставить первое число для начинания всего (<Esc> будучи клавишей выхода). Затем с Вашим курсором на недавно вставленном 1, запишите макрос (в слот q):

qqyiwj0p<C-a>q

Теперь у Вас должны быть первые 2 пронумерованные строки. Теперь можно выполнить макрос n-2 времена, где n общее количество строк, которые Вы имеете. Как пример, если у Вас было 50 строк, мы выполняем макрос 48 раз, так как мы уже заполнили 2 строки вручную:

48@q
6
27.01.2020, 20:26

Вы могли использовать "канал посредством внешней команды" функция, которую имеет энергия. Откройте файл в энергии, затем сделайте это:

:%!cat -n | awk '{print $2, $1, $3;}' | sed 's/ //'

Вы могли, вероятно, обойтись без sed (который просто удаляет первое пространство в каждой строке) умным кодом awk. Я просто не мог заставить это работать через 30 секунд, таким образом, я выплеснулся с sed.

2
27.01.2020, 20:26
  • 1
    Лично, я был бы склонен просто передать его по каналу через cat -n и сделайте остальных с визуальным блочным режимом. –  Random832 13.10.2011, 20:12
  • 2
    Или канал через nl, который позволяет числовому формату быть подстроенным. –  Gilles 'SO- stop being evil' 14.10.2011, 02:11

Теги

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