I was recently aware of the filtering ! technique, and I love it. Unfortunately, I am not able to use it in a visual-block mode. Hope some experts here would help me out.Basically, I want to in-place sort a column such as the third below (just a MWE). And I don't want to disturb the other columns when I sort.I tried to filter (!) the visually (block-mode) selected third column through sort utility. But the sort rather extends beyond selection i.e. all of the rows are swapped, not just the selection, that too sorting based on the first column!1.  LARGEST         402.  SECOND-LARGEST  168     3.  MID             2.8     4.  MID             540     5.  MID             14.84   6.  MID             40      7.  SECOND-LEAST    64      8.  LEAST           8I selected last column using visual-block, and said !sort --reverse which shows up as'<,'>!sort --reverseAnd the result is strange opposed to what I expected. The result has the entire rows sorted/swapped, not just one column, and that too, based on the first column irrespective of my third-column selection!  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   Unless impossible otherwise, I would like a pure vim+sort solution, rather than the relatively advanced tools such as sed/awk. It is more importantly to know myself, how limited the visual-block mode is, compared to say, visual-mode.
Sorting a column without altering other columns
visual block;sort
I think your best hope is the vis.vim plugin. This plugin provides a command B which allows to apply a command to a block.Here after installing the plugin, you'd select your block and then use::'<,'>B !sortNote that the command can be anything, so instead of !sort you could do a lot of other processing on the block like saving it to another file (:'<,'>B w foo.txt) or applying a substitution (:'<,'>B s/foo/bar/g)