首页 > 代码库 > 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行的内容进行排序

:62 !tr [a-z] [A-Z],将62行的小写字母转为大写字母


3):起始行号,结束行号 w !command
将起始行号和结束行号所指定的范围的内容作为命令command的输入。不会改变当前编辑的文件的内容
例    :62,72 w !sort,将62行到72行的内容进行排序,但排序的结果并不会直接输出到当前编辑的文件中,而是显示在vim敲命令的区域

 
 

vim 20条常用指令