当前位置:  开发笔记 > 开发工具 > 正文

如何删除Vim中前两列的引号?

如何解决《如何删除Vim中前两列的引号?》经验,为你挑选了2个好方法。

假设我在文本文件中有以下样式的行:

"12" "34" "some text     "
"56" "78" "some more text"
.
.
.
etc.

我希望能够删除前两列的引号.用Vim做这个的最好方法是什么(我目前正在使用gVim)?

我想通过使用可视模式至少删除每行的开头引号,然后输入命令 '<,'>s!^"!!

我想知道是否有办法选择整个文本列(一个字符直接沿着文件...或者超过1,但在这种情况下我只想要一个).如果可能,那么您是否可以将x命令(删除字符)应用于整个列.

可能有更好的方法来做到这一点.我正在寻找任何建议.


更新

Just和FYI,我结合了一些建议.我的_vimrc文件现在有以下行:

let @q=':%s/"\([0-9]*\)"/\1/g^M'   

(注:^MCTRLQ+ Enter模拟运行命令后,按下回车键)

现在我可以使用宏@q来删除文件中两个数字列的所有引号.



1> Fritz G. Meh..:

使用visual block命令:

使用Ctrl-v启动模式

指定一个动作,例如G(到文件的末尾),或使用向上/向下键

对于所选块,指定一个动作,例如'd'表示删除

有关更多信息,请参阅:h visual-mode



2> nik..:

Control-V用于块选择.这将允许您选择相同字符列中的内容.

好像你想删除数字周围的引号.为此用途,

:%s/"\([0-9]*\)"/\1/g

这里列出了你可以用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行尝试您的命令.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有