[标签]: vim高级用法 vim命令批量处理 vim注释颜色修改 vim文本替换换行 vim撤回和反撤回 vim高阶光标移动
问题详情的描述或方案目标的预期:
vim,sed是Linux中文本处理的两大利器,掌握好了可以极大提高工作效率。
【解决方案】
整体思路:多用记住它,常用的不会很多。
一 vim注释行默认蓝色替换
默认的蓝色非常晃眼,容易眼疲劳,也经常看不清,所以大多数人都会修改
最简单的修改方式:
echo "hi Comment ctermfg = cyan" >> ~/.vimrc
二 撤回和反撤回
vim文本修改时有时候需要撤回原样,还可能撤回过多步需要反向撤回
撤回上一步: u
反向撤回一步:CTRL + R
撤回或反向撤回多步就按多次快捷键即可
三 光标移动
% 匹配括号成对移动。包括小中大括号{[()]}
* 光标移动到下一个匹配的单词
# 光标移动到上一个匹配的单词
3+回车 向下跳跃3行,3可改为任意整数
3+空格 向右移动3个字符,3可为任意整数,到末尾时自动移到下一行
HOME/END 行首/行尾
四 逗号替换为回车(每逢逗号换行)
命令模式下命令:
:%s/,/^M/g -- ^M是用ctrl-v然后ctrl-m敲出来的
换行替换回逗号分割:
:%s/\n/,/g
五 常规文本替换
替换所有行的内容 :%s/from/to/g
替换当前行中的内容 :s/from/to/ (s即substitude)
替换某一行的内容 :33s/from/to/g (假设第33行)
替换最后一行的内容 :$s/from/to/g
替换某些行的内容 :10,20s/from/to/g -- 对第10行到第20行的内容进行替换。
:1,$s/from/to/g 对第一行到最后一行的内容进行替换(即全部文本)。
:1,.s/from/to/g 对第一行到当前行的内容进行替换。
:.,$s/from/to/g 对当前行到最后一行的内容进行替换。
%表所有行,约等于1,$
不写行号直接s命令表示只替换当前行
结尾带g表行中出现的所有地方
结尾不带g表行中出现的第一处
六 行首行位插入字符串
行首 :%s/^/your_word/
行尾 :%s/$/your_word/
七 删除出现某关键字符串的行
:g/str_del/d 或 :%g/str_del/d -- str_del 表示想删除的特定字符串
总结:有需求你总会记住的,没需求你总会忘记的。