在 VIM 中,我将如何删除 txt 文件的最后一列。
1 2 3 4
x x x x
x x x x
我想删除第 4 列
Result:
1 2 3
x x x
x x x
谢谢
试试这个(用%
, 作为选择,作为移动命令......):
s/ [^ ]*$//
说明:正则表达式匹配从行尾到最后一个分隔符的所有内容,并丢弃它。
我认为垂直视觉选择也很方便。
gg$<C-v>h3jx
您可以通过这种方式轻松删除所需的任何列。
另一个选项是使用垂直选择 [ Shift+V ] 最后一列,然后将其删除。
如果要计算整个缓冲区,请使用 thriqon 提到的正则表达式
:%s/ [^ ]*$//
也可以通过在 vim 中运行外部命令来获得相同的结果
:%! cut -d' ' -f1-3
您可以使用删除最后一列的宏,然后将其应用于整个文件。
所以转到第一个非标题行,然后运行
qa$bld$^q
它将开始记录a
一个动作,该动作将到达行尾,然后返回一个单词,右移一个字符直到空格,然后删除直到行尾。
现在使用 撤消该更改u
。
现在将该宏应用于整个文件
:%normal @a
这对于删除 csv 文件中的特定行非常方便。
例如,要删除 csv 的最后一行
qa$F,d$^q
:%normal @a
或删除倒数第二行
qa$2F,dt,^q
:%normal @a
请参阅:help :normal
、:help @
、:help q
和:help :%
以供参考。