vim
bibili vim 视频教程 (opens new window)
# 1. 删除特定行
:g/匹配字符串/d
# 2. 正则替换
正则替换分组使用 () 但是需要转义,即 ()
# 将文本的
# },
# {
# 替换为 }, {
:%s/},$\n\s\*{/}, {/g
1
2
3
4
5
6
2
3
4
5
6
删除
例:
删除行尾空格:
:%s/\s+$//g删除行首多余空格:
:%s/^\s*//或者:%s/^ *//删除沒有內容的空行:
:%s/^$//或者g/^$/d删除包含有空格组成的空行:
:%s/^\s*$//或者g/^\s*$/d删除以空格或 TAB 开头到结尾的空行:
:%s/^[ |\t]_$//或者g/^[ |\t]_$/d
- 大小写转换
转大写
\U\u,其中\U为全部转为大写,\u为首字母转为大写转小写
\L\l,其中\L为全部转为小写,\l为首字母转为小写
例:将 hello world,转为 HELLO World
```shell
:%s/\(\w\) \(\w\+\)/\U\1 \u\2/g
```
把文中的所有字符串"abc……xyz"替换为"xyz……abc"可以:下列写法
:%s/abc\(._\)xyz/xyz\1abc/g
:%s/\(abc\)\(._\)\(xyz\)/\3\2\1/g
- 递增替换
例:叫下面的数字 1 依次递增替换为 1、2、3、4
hello 1
hello 1
hello 1
hello 1
1
2
3
4
2
3
4
:%s/\zs\d\ze/\=line(".")-line("'<")/g
或替换为其他递增数字
:%s/\zs\d\ze/\=line(".")+2/g
# 3.全选
gao_shuai
ggVG
1
# 4.自定义命令
将一个单词使用双引号包裹,例:world 修改为 "world"
noremap <C-i> bcw""<esc>P<esc>1然后使用快捷键
ctrl+i,即可对单词做双引号包裹处理。但撤销操作需要使用命令4u
# 5.vim 查看版本信息和支持插件
vim --version
1
# 6. 显示设置
# 行号显隐
:set nu
:set nonu
# 空白字符显隐
:set list
:set nolist
# 自动换行切换
:set wrap
:set nowrap
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 7. 复制粘贴
终端登录云服务器,使用vim打开一个文件编辑器粘贴时,文本总是在行首自动插入很多空字符,可使用下面命令解决
:set paste # 粘贴模式
:set nopaste # 非粘贴模式
1
2
2
编辑 (opens new window)
上次更新: 2025/03/08, 12:51:50