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, 就会***注释符号。