Maybe the way forward would be to find the start of the line you are on and the line the end position is on. yank that, filter it, delete the lines using 

``` 
- (void)xvim_deleteLinesFrom:(NSUInteger)line1 to:(NSUInteger)line2; 
```

then insert the filtered text back using 
```
- (void)xvim_insertText:(NSString*)str line:(NSUInteger)line column:(NSUInteger)column;
```


both are methods on the category:

```
@interface NSTextView (VimOperation)
```