VIM добавляет последовательность чисел в конце каждой строки - PullRequest
2 голосов
/ 01 июня 2011

Я абсолютно новичок в vim и знаю, что могут сделать магические вещи vim.Мое требование - добавить последовательность чисел в конце каждой строки, и я видел, как кто-то делал это раньше передо мной.Просто у меня недостаточно времени для поиска правильной команды, поэтому я думаю, что разместить вопрос здесь должно быть быстрее, так как у меня заканчивается время.Извините за то, что я новичок, но, похоже, это единственный способ, с помощью которого я могу придумать.

Итак, содержимое файла примера похоже на

1       Afghanistan     
2       Albania 
3       Algeria 
4       American        
5       Andorra 
6       Angola  
7       Anguilla        
8       Antarctica

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

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

С наилучшими пожеланиями, Хай Ланг

Ответы [ 3 ]

9 голосов
/ 01 июня 2011

Откройте ваш файл в vim.Нажмите ESC, если не в режиме выхода.

напишите это :%s/$/\=line('.')/

Это добавит последовательность чисел в конце каждой строки.Чтобы добавить числа в начале, сделайте

:%s/^/\=line('.')/

5 голосов
/ 01 июня 2011

Ввод:

1       Afghanistan     
2       Albania 
3       Algeria 
4       American        
5       Andorra 
6       Angola  
7       Anguilla        
8       Antarctica

Нажатие клавиш:

:%s!^\(\d\+\).*!&\t\1<CR>

Выход:

1       Afghanistan         1
2       Albania     2
3       Algeria     3
4       American            4
5       Andorra     5
6       Angola      6
7       Anguilla            7
8       Antarctica  8

Пар : 20

Объяснение:

0 голосов
/ 01 июня 2011

Вы можете использовать записи, для которых активируется q, за которым следует буква, которая является закладкой для этой записи.

Например, в обычном режиме перейдите к первой строке и введите:

qe
^
y<space>
$
p
q (to end the recording)

Теперь введите @e, чтобы воспроизвести запись с буквы e или 20@e, которая повторяется @e 20 раз.Вы можете поиграть с такими записями.Может также записать j в обычном режиме, чтобы перенести вас на следующую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...