После просмотра этого вопроса я решил попробовать написать плагин vim для его решения. Это мой первый плагин vim, так что, вероятно, он очень плохой. Тем не менее, это работает для примера, который вы привели.
Вы можете скачать плагин с vim.org: SearchCols.vim
Обратите внимание, что для этого также требуется плагин multvals с того же сайта: multvals.vim
Создает команду :SearchCols <string>
, которую можно использовать для поиска <string>
в столбцах фиксированной ширины, чтобы поиск осуществлялся сначала по первому столбцу, затем по второму столбцу и т. Д., А не по строке. поиск по строке, который является стандартным для VIM. Повторите команду через @:
, а затем @@
, так как это двоеточие.
Предположения:
- Предполагается, что ваш файл отформатирован с использованием разделенных пробелами столбцов фиксированной ширины, то есть внутри элементов данных нет пробелов, только между ними.
- Предполагается, что первая строка вашего файла отформатирована так, что из него можно определить ширину столбца.
Очевидные улучшения, о которых я могу подумать, - это упростить поиск следующего элемента, чем использовать @:
и @@
, включая подсветку поиска (код есть, но он закомментирован, потому что он использует :match
и вы пришлось бы использовать :match none
, чтобы отключить его) и исключить зависимость от multvals.vim.