首页 > 代码库 > vim 20条常用指令
vim 20条常用指令
1. w [文件名] 相当于另存为
2. r [文件名] 将[文件名]的内容加到光标行后面
3. n1,n2 w[filename] 将n1到n2的内容保存为[filename]
4. 50dd 删除50行 5x 删除5个字符
5. 20下 向下移动20行
6. 50G 移动到第50行
7. 20右 向右移动20位
8. /word 查找word字符串
9. 文本替换
:50,100s/man/MAN/g 将50到100行之间的man 替换为MAN
:s/str1/str2 替换当前行第一个 str1 为 str2 -- s 代表当前行
:s/str1/str2/g 替换当前行中所有 str1 为 str2 -- s 代表当前行 g表示 该行所有 global
:m,ns/str1/str2 替换第 n 行开始到最后一行中每一行的第一个 str1 为 str2
:m,ns/str1/str2/g 替换第 n 行开始到最后一行中所有的 str1 为 str2
:%s/str1/str2/g 替换文中所有 str1 为 str2
10. u 恢复
11. nyy 复制 n行 p 粘贴
12. gg 第一行 G最后一行
13.:Tlist 打开函数列表 ctrl + ww 完成窗口切换, 关闭同样 Tlist
复制 删除 块操作
v 字符选择
V 行选择
ctrl+v 块选择
y 复制 p 粘贴 d 删除
14. 同时 打开多个文本
先打开一个, 命令行 sp自身的分开
sp [filename] 再分开一个
Ctrl+w+ 上/下 切换窗口
退出 分别 q
vim file1 file2
:n
:N 来后文件翻页
:f 显示当前正在编辑的文档名称
15. vim全选并复制 /删除
全部删除:按esc后,然后dG
全部复制:按esc后,然后ggyG
16. vim多行缩进技巧
关键字: vim indent
按 v 进入visual状态,选择多行,用 ‘>‘或‘< ‘缩进或缩出
17、显示 TAB 键 (方便在 python 中对 table 个数的观察)
文件中有 TAB 键的时候,你是看不见的。要把它显示出来:
:set list
现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里。
更改:
使用 ‘listchars’ 选项:
:set listchars=tab:>-,trail:-
现在,TAB会被显示成 ">—" 而行尾多余的空白字符显示成 "-"。
18. vim 多行注释与 取消注释
:20,30s/^/# 第20到30行用 # 注释掉。 也可以用别的字符
:20,30s/^#// 取消注释
对//或/* 可以用替换 :20,30s/\/\// 用/ (空) 替换 \\ ( \/\/ 中有两个专业符‘\‘)
:4,10s/^[^I ]\+// 去掉行首的空白字符
用 . 表示当前行。
: . ,30 s/^/#
可以看到 vim 命令针对当前行,在前面加个范围就可以针对多行。
:co 12
把当前行 copy 到行 12 的地方。
19. 上述方法二
多行添加注释
1). ctrl+v visual block模式,选中注释行
2). 大写I,插入注释符,例如//
3). 按esc键就会全部注释了
取消多行注释
1). ctrl+v visual block模式,,选中删除列
2).d 删除该列即可
20. vim中调用shell命令
:!command
不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容
例:
1) :r !command
将shell命令command的结果插入到当前行的下一行
:r !date
读取系统时间并插入到当前行的下一行。
2) 起始行号,结束行号 !command
将起始行号和结束行号指定的范围中的内容输入到shell命令command处理,并将处理结果替换起始行号和结束行号指定的范围中的内容
例如 :62,72 !sort,将62行到72行的内容进行排序
将起始行号和结束行号所指定的范围的内容作为命令command的输入。不会改变当前编辑的文件的内容
例 :62,72 w !sort,将62行到72行的内容进行排序,但排序的结果并不会直接输出到当前编辑的文件中,而是显示在vim敲命令的区域
2. r [文件名] 将[文件名]的内容加到光标行后面
3. n1,n2 w[filename] 将n1到n2的内容保存为[filename]
4. 50dd 删除50行 5x 删除5个字符
5. 20下 向下移动20行
6. 50G 移动到第50行
7. 20右 向右移动20位
8. /word 查找word字符串
9. 文本替换
:50,100s/man/MAN/g 将50到100行之间的man 替换为MAN
:s/str1/str2 替换当前行第一个 str1 为 str2 -- s 代表当前行
:s/str1/str2/g 替换当前行中所有 str1 为 str2 -- s 代表当前行 g表示 该行所有 global
:m,ns/str1/str2 替换第 n 行开始到最后一行中每一行的第一个 str1 为 str2
:m,ns/str1/str2/g 替换第 n 行开始到最后一行中所有的 str1 为 str2
:%s/str1/str2/g 替换文中所有 str1 为 str2
10. u 恢复
11. nyy 复制 n行 p 粘贴
12. gg 第一行 G最后一行
13.:Tlist 打开函数列表 ctrl + ww 完成窗口切换, 关闭同样 Tlist
复制 删除 块操作
v 字符选择
V 行选择
ctrl+v 块选择
y 复制 p 粘贴 d 删除
14. 同时 打开多个文本
先打开一个, 命令行 sp自身的分开
sp [filename] 再分开一个
Ctrl+w+ 上/下 切换窗口
退出 分别 q
vim file1 file2
:n
:N 来后文件翻页
:f 显示当前正在编辑的文档名称
15. vim全选并复制 /删除
全部删除:按esc后,然后dG
全部复制:按esc后,然后ggyG
16. vim多行缩进技巧
关键字: vim indent
按 v 进入visual状态,选择多行,用 ‘>‘或‘< ‘缩进或缩出
17、显示 TAB 键 (方便在 python 中对 table 个数的观察)
文件中有 TAB 键的时候,你是看不见的。要把它显示出来:
:set list
现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里。
更改:
使用 ‘listchars’ 选项:
:set listchars=tab:>-,trail:-
现在,TAB会被显示成 ">—" 而行尾多余的空白字符显示成 "-"。
18. vim 多行注释与 取消注释
:20,30s/^/# 第20到30行用 # 注释掉。 也可以用别的字符
:20,30s/^#// 取消注释
对//或/* 可以用替换 :20,30s/\/\// 用/ (空) 替换 \\ ( \/\/ 中有两个专业符‘\‘)
:4,10s/^[^I ]\+// 去掉行首的空白字符
用 . 表示当前行。
: . ,30 s/^/#
可以看到 vim 命令针对当前行,在前面加个范围就可以针对多行。
:co 12
把当前行 copy 到行 12 的地方。
19. 上述方法二
多行添加注释
1). ctrl+v visual block模式,选中注释行
2). 大写I,插入注释符,例如//
3). 按esc键就会全部注释了
取消多行注释
1). ctrl+v visual block模式,,选中删除列
2).d 删除该列即可
20. vim中调用shell命令
:!command
不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容
例:
1) :r !command
将shell命令command的结果插入到当前行的下一行
:r !date
读取系统时间并插入到当前行的下一行。
2) 起始行号,结束行号 !command
将起始行号和结束行号指定的范围中的内容输入到shell命令command处理,并将处理结果替换起始行号和结束行号指定的范围中的内容
例如 :62,72 !sort,将62行到72行的内容进行排序
:62 !tr [a-z] [A-Z],将62行的小写字母转为大写字母
将起始行号和结束行号所指定的范围的内容作为命令command的输入。不会改变当前编辑的文件的内容
例 :62,72 w !sort,将62行到72行的内容进行排序,但排序的结果并不会直接输出到当前编辑的文件中,而是显示在vim敲命令的区域
vim 20条常用指令
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。