说我在文本文件中有以下风格的行:
"12" "34" "some text " "56" "78" "some more text" . . . etc.
我想要删除前两列的引号。使用Vim做什么最好的方式(我目前使用的是gVim)?
我想出如何通过使用可视化模式至少删除每一行的开始报价,然后输入命令’<,'> s!^“!
我想知道是否有一种方法来选择整列文本(一个字符直接放在文件…或多于1个,但在这种情况下,我只需要一个)。如果有可能,那么你可以将x命令(删除字符)应用到整个列。
可以有更好的方法来做到这一点。我正在寻找任何建议。
更新
刚刚和FYI,我结合了几个建议。我的_vimrc文件现在有以下行:
let @q=':%s/"\([0-9]*\)"/\1/g^M'
(注:THE ^ M为CTRLQ输入模拟运行命令后按Enter键)
Control-V用于块选择。这将让您在同一个字符列中选择内容。
原文链接:https://www.f2er.com/bash/387372.html看起来你想删除数字上的引号。为了这个用途,
:%s/"\([0-9]*\)"/\1/g
这是一个list of what patterns you can do with vim。
还有一种(一种丑陋的)形式,每行限制为4个替换。
:%s/^\( *\)"\([ 0-9]*\)"\([ 0-9]*\)"\([ 0-9]*\)"/\1\2\3\4/g
而且,如果你有sed方便,你也可以从shell尝试这些。
head -4 filename.txt | sed 's/pattern/replacement/g'
这将在文件的前4行尝试你的命令。