Недавно я знал о !
технике фильтрации , и мне это нравится. К сожалению, я не могу использовать его в режиме визуального блока. Надеюсь, что некоторые эксперты помогут мне.
По сути, я хочу отсортировать столбец, например третий, ниже (просто MWE). И я не хочу мешать другим колонкам, когда сортирую.
Я попытался отфильтровать ( !
) визуально (в блочном режиме) третий выбранный столбец через sort
утилиту. Но сортировка скорее простирается за пределы выделения, т. Е. Меняются все строки, а не только выборка, которая тоже сортируется по первому столбцу!
1. LARGEST 40
2. SECOND-LARGEST 168
3. MID 2.8
4. MID 540
5. MID 14.84
6. MID 40
7. SECOND-LEAST 64
8. LEAST 8
Я выбрал последний столбец, используя визуальный блок, и сказал, !sort --reverse
что отображается как
'<,'>!sort --reverse
И результат странный в противоположность тому, что я ожидал. В результате все строки сортируются / меняются местами, а не только один столбец, и это тоже, основываясь на первом столбце, независимо от моего выбора в третьем столбце!
8. LEAST 8
7. SECOND-LEAST 64
6. MID 40
5. MID 14.84
4. MID 540
3. MID 2.8
2. SECOND-LARGEST 168
1. LARGEST 40
Если иное невозможно, я бы хотел использовать чистое решение vim +, а не относительно продвинутые инструменты, такие как sed
/ awk
. Более важно знать себя, насколько ограничен режим визуального блока по сравнению, скажем, с визуальным режимом.
:help filter
), но и стандартизировано (извините, я не знаю, как глубоко связать эту POS). Вы не можете жаловаться, если вы не RFTM.
sort
доступна внутренняя команда vim , поэтому вам не нужно вызывать external!sort
для выполнения обычной сортировки.