vim与正则表达式

看下面的例子:

26 警告:vim-8.2.2380-1 已经为最新 -- 重新安装
 27 警告:gdb-10.1-4 已经为最新 -- 重新安装
 28 警告:cmake-3.19.4-1 已经为最新 -- 重新安装
 29 警告:blender-17:2.91.2-3 已经为最新 -- 重新安装
 30 警告:avidemux-qt-2.7.6-2 已经为最新 -- 重新安装
 31 警告:fontforge-20201107-1 已经为最新 -- 重新安装
 32 警告:gimp-2.10.22-1 已经为最新 -- 重新安装
 33 警告:digikam-7.1.0-7 已经为最新 -- 重新安装
 34 警告:inkscape-1.0.2-3 已经为最新 -- 重新安装
 35 警告:pdftricks-0.3.0-1 已经为最新 -- 重新安装
 36 警告:kontact-20.12.2-1 已经为最新 -- 重新安装
 37 警告:kodi-18.9-3 已经为最新 -- 重新安装
 38 警告:openshot-2.5.1-3 已经为最新 -- 重新安装
 39 警告:pitivi-2020.09.2-2 已经为最新 -- 重新安装
 40 警告:smplayer-21.1.0-1 已经为最新 -- 重新安装
 41 警告:simplescreenrecorder-0.4.3-1 已经为最新 -- 重新安装
 42 警告:deepin-screen-recorder-5.8.1-1 已经为最新 -- 重新安装
 43 警告:ardour-6.5-1 已经为最新 -- 重新安装
 44 警告:audacity-1:2.4.1-4 已经为最新 -- 重新安装
 45 警告:easytag-2.4.3-4 已经为最新 -- 重新安装
 46 警告:minuet-20.12.2-1 已经为最新 -- 重新安装
 47 警告:luppp-1.2.1-2 已经为最新 -- 重新安装
 48 警告:musescore-3.6.1-1 已经为最新 -- 重新安装
 49 警告:deepin-music-6.0.1.91-2 已经为最新 -- 重新安装
 50 警告:basket-2.49b-4 已经为最新 -- 重新安装
 51 警告:chromium-88.0.4324.150-1 已经为最新 -- 重新安装
 52 警告:kmail-20.12.2-1 已经为最新 -- 重新安装
 53 警告:kmymoney-5.1.1-1 已经为最新 -- 重新安装
 54 警告:kile-2.9.93-2 已经为最新 -- 重新安装
 55 警告:lokalize-20.12.2-1 已经为最新 -- 重新安装
 56 警告:pdfmixtool-0.6-1 已经为最新 -- 重新安装
 57 警告:retext-7.1.0-5 已经为最新 -- 重新安装
 58 警告:texstudio-3.0.4-1 已经为最新 -- 重新安装
 59 警告:texmaker-5.0.4-1 已经为最新 -- 重新安装
 60 警告:falkon-3.1.0-15 已经为最新 -- 重新安装
 61 警告:krdc-20.12.2-1 已经为最新 -- 重新安装
 62 警告:krfb-20.12.2-1 已经为最新 -- 重新安装
 63 警告:putty-0.74-1 已经为最新 -- 重新安装
 64 警告:gnuradio-3.8.2.0-3 已经为最新 -- 重新安装
 65 警告:ktouch-20.12.2-1 已经为最新 -- 重新安装
 66 警告:kturtle-20.12.2-1 已经为最新 -- 重新安装
 67 警告:rocs-20.12.2-1 已经为最新 -- 重新安装
 68 警告:r-4.0.3-2 已经为最新 -- 重新安装
 69 警告:step-20.12.2-1 已经为最新 -- 重新安装
 70 警告:wesnoth-1:1.14.15-1 已经为最新 -- 重新安装
 71 警告:chromium-bsu-0.9.16.1-1 已经为最新 -- 重新安装
 72 警告:extremetuxracer-0.8.0-1 已经为最新 -- 重新安装
 73 警告:ksudoku-20.12.2-1 已经为最新 -- 重新安装
 74 警告:supertux-0.6.2-3 已经为最新 -- 重新安装
 75 警告:sqlitebrowser-3.12.0-1 已经为最新 -- 重新安装
 76 警告:kalarm-20.12.2-1 已经为最新 -- 重新安装
 77 警告:knotes-20.12.2-1 已经为最新 -- 重新安装
 78 警告:okteta-1:0.26.5-1 已经为最新 -- 重新安装
 79 警告:qstardict-1.3-2 已经为最新 -- 重新安装
 80 警告:smb4k-3.0.7-1 已经为最新 -- 重新安装
 81 警告:terminator-2.0.1-1 已经为最新 -- 重新安装
 82 警告:zanshin-0.5.71-3 已经为最新 -- 重新安装
 83 警告:kcachegrind-20.12.2-1 已经为最新 -- 重新安装
 84 警告:kdbg-3.0.1-1 已经为最新 -- 重新安装
 85 警告:kdevelop-5.6.2-1 已经为最新 -- 重新安装
 86 警告:kdiff3-1.8.5-1 已经为最新 -- 重新安装
 87 警告:kde-dev-utils-20.12.2-1 已经为最新 -- 重新安装
 88 警告:qcachegrind-20.12.2-1 已经为最新 -- 重新安装
 89 警告:valgrind-3.16.1-4 已经为最新 -- 重新安装
 90 警告:indent-2.2.12-1 已经为最新 -- 重新安装
 91 警告:widelands-21-4 已经为最新 -- 重新安装
 92 警告:qtcreator-4.14.0-4 已经为最新 -- 重新安装
 93 警告:scratch-1.4.0.7-8 已经为最新 -- 重新安装
 94 警告:umbrello-20.12.2-1 已经为最新 -- 重新安装
 95 警告:gitg-1:3.32.1+17+gb4c8155f-2 已经为最新 -- 重新安装
 96 警告:ttf-dejavu-2.37+18+g9b5d1b2f-2 已经为最新 -- 重新安装
 97 警告:qt5-examples-5.15.2-1 已经为最新 -- 重新安装
 98 警告:qt5-doc-5.15.2-1 已经为最新 -- 重新安装
 99 警告:sl-5.02-6 已经为最新 -- 重新安装
100 警告:rawtherapee-1:5.8-1 已经为最新 -- 重新安装
101 警告:cool-retro-term-1.1.1-2 已经为最新 -- 重新安装
102 警告:sakura-3.7.1-1 已经为最新 -- 重新安装
103 警告:terminology-1.9.0-1 已经为最新 -- 重新安装
104 警告:tilda-1.5.4-1 已经为最新 -- 重新安装
105 警告:cowsay-3.04-2 已经为最新 -- 重新安装
106 警告:cmatrix-2.0-2 已经为最新 -- 重新安装
107 警告:wqy-microhei-lite-0.2.0_beta-10 已经为最新 -- 重新安装
108 警告:kicad-5.1.9-1 已经为最新 -- 重新安装
109 警告:kicad-library-5.1.9-1 已经为最新 -- 重新安装
110 警告:kicad-library-3d-5.1.9-1 已经为最新 -- 重新安装
111 警告:opencv-4.5.1-1 已经为最新 -- 重新安装
112 警告:opencv-samples-4.5.1-1 已经为最新 -- 重新安装

  现在想1、把前面的“警告:”删除

      2、把软件的版本号删除

     3、把"已经为最新 -- 重新安装"删除

  在此充分利用vim的列编辑模式:

  先用:

    1、到达第26行

      26gg

    2、切换到列编辑模式

      C-v, 

    3、选中要编辑的行范围(26--112行)

      S-g

    4、选中要编辑的列范围(1--6列)

      2j

    5、删除选中的内容

      x

   2和3可以合二为一:

    6、实用正则表达式

      :'<,'>s/-[0-9].*$//

      :是vim底行模式标记

      '<,'>选中编辑的范围

      s替换操作的命令简写

      /替换命令与参数的分隔符,接着就是被替换的内容

      -.*$表示从-开始到行尾的内容

      /替换命令与参数的分隔符,接着就是替换的内容

      /替换结束,这里就是将-到每行的行尾的内容替换为空,也可以写成(我这里最后的_表示空格):

      :'<,'>s/-[0-9].*$/_ 

      不建议这样做

  结果为:

vim
gdb
cmake
blender
avidemux-qt
fontforge
gimp
digikam
inkscape
pdftricks
kontact
kodi
openshot
pitivi
smplayer
simplescreenrecorder
deepin-screen-recorder
ardour
audacity
easytag
minuet
luppp
musescore
deepin-music
basket
chromium
kmail
kmymoney
kile
lokalize
pdfmixtool
retext
texstudio
texmaker
falkon
krdc
krfb
putty
gnuradio
ktouch
kturtle
rocs
r
step
wesnoth
chromium-bsu
extremetuxracer
ksudoku
supertux
sqlitebrowser
kalarm
knotes
okteta
qstardict
smb4k
terminator
zanshin
kcachegrind
kdbg
kdevelop
kdiff3
kde-dev-utils
qcachegrind
valgrind
indent
widelands
qtcreator
scratch
umbrello
gitg
ttf-dejavu
qt5-examples
qt5-doc
sl
rawtherapee
cool-retro-term
sakura
terminology
tilda
cowsay
cmatrix
wqy-microhei-lite
kicad
kicad-library
kicad-library
opencv
opencv-samples

     

                  

人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。
原文地址:https://www.cnblogs.com/guochaoxxl/p/14398595.html