1、替换:
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行 也可以n,n
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
:%s/vivian/sky/gc(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky,交互方式:
replace with 6 (y/n/a/q/l/^E/^Y)? --小写y或n即可,ctrl+c中止
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / )
: /oradata/apras/替换成/user01/apras1/
2、拷贝:
拷贝3到5行内容到9行下(10行开始)
:3,5co9
复制一个单词:yw
操作:把光标放到单词的开始,按yw即复制到单词的结尾
3、***:
***所在行dd
***3到9行:3,9d
***所有行:%d
4、移动:
:5,8m0 --移动5到8行的到首行
:5,8m1 --移动5到8行到第1行下
5、进入vi 后光标跳到指定行
vim +n file --光标跳到n行
vim + file --光标跳到最后一行
6、:set incsearch功能:每输入一个字符跟随查询
7、查询指定条件的字符串,例:
查询http-vhosts.conf中是否有qq.com站点
:g/^ *ServerName *qq.com/
8、光标换行
首行:1G
N行::n回车或nG
尾行:G
9、另存为文件
:w [filename] 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
10、执行命令
:! command 暂时离开 vi 到指令列模式下执行 command 的显示结果!例如: :! ls /home 即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
11、***搜索高亮
:noh
12、书写时省略要替换的模式
:g/regular/s//complex/g
13、缩进
:set cindent
:set autoindent
14、退出后不清屏
set term=xterm --清屏
set term=linux --不清屏
15、把B文件中的3,10行插入到当前A文件编辑的行下
:r! sed -n '3,10p'
16、多行***
V 方向键 选好行后按D键(大小写都可以)
17、多行缩进(加TAB键)
ctrl+v,jjjjjjj,shift+i,tab,esc,esc
ctrl+v,然后shift+>
18、解决复制到vim环境中不整齐的问题
先执行:set paste再复制
19、安装完系统vim默认不显示右下脚的状态栏(位置参数)
:set ru
20、让不整齐的多行在n行下全部缩进一个TAB,例:n=5,让6-9行缩进
6G=9G
21、编辑多文件(多窗口)
一、如果在终端中开没有打开vim,可以:
横向分割显示:
$ vim -o filename1 filename2
纵向分割显示:
$ vim -O filename1 filename2
二、如果已经用vim打开了一个文件,想要在窗口中同时再打开另一个文件:
横向分割显示:
:vs filename
纵向分割显示:
:sp filename
其中,vs可以用vsplit替换,sp可以用split替换。
如果finename不存在,则会新建该文件并打开。
三、关闭窗口
关闭光标所在的窗口:
:q 或 :close
关闭除光标所在的窗口之外的其他窗口:
:only
关闭所有窗口:
:qa
四、切换窗口
打开了多个窗口,需要在窗口之间切换时:
ctrl + w w
即按住ctrl键,再按两下w键。
或者ctrl + w <h|j|k|l>
即按住ctrl键,按一次w键,再按一次表示方向的h或j或k或l,则光标会切换到当前窗口的 左|下|上|右 侧的窗口
22、编辑多文件(窗口切换)
打开多个文件有两种方式:
(1)一种是在进入vim前所用的参数是多个文件。
vim a.txt b.txt c.txt d.txt
(2)一种是进入vim后再打开其它的文件
:e filename
:n 编辑下一个文件
:N 编辑上一个文件
:args 查看当前编辑缓冲文件状态
control + ^编辑前一个文档,一般表示两个文档进行切换。
:b 文件名或编辑,切换到指定的文档
23、vim下显示特殊字符(与cat -A不大一样)
:se list
24、批量注释、***注释
1、使用s替换
2、快捷键
注释:ctrl+v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符,比如"//",再按Esc,就会全部注释了。
***:先按v,进入visual模式,横向选中列的个数(如"/ /"注释符号,需要选中两列),再按Esc,再按ctrl+v 进入列编辑模式,向下或向上移动光标,选中注释部分,然后按d, 就会***注释符号。