vim-初学笔记

vi: Visual Interface  可视化接口  

vim: VI iMproved     

vim是vi的升级,最大的功能是有高亮显示提升使用可视性

--------------------------------------------------------------------------

vim模式:

编辑模式  可以理解的为开始对整体文件的操作,输入模式

输入模式  是真的在文档中写入内容,同样编辑和末行模式是不能用的

末行模式  vim最强大的功能,可以对接相当多的功能也能直接使用sed正则表达式

--------------------------------------------------------------------------

模式转换:

编辑模式-->输入模式:

i: 在当前光标所在字符的前面,转为输入模式;

a: 在当前光标       后面,   输入模式;

o: 在   光标所在字符行的下方,新建一行,并转为输入模式;

I: 在当前光标所在行的行首,转换为输入模式

A:在当前光标所在    尾,转换为输入模式

O:在当前光标   行的上方,新建一行,并转为输入模式;

输入模式-->编辑模式:

ESC

编辑-->末行:

末行-->编辑:

ESC, ESC   (按Esc键)


一、打开文件

# vim /path/to/somefile

vim +#打开文件,并定位于第#行 

vim + 打开文件,定位至最后一行

vim +/PATTERN  打开文件,定位至第一次被PATTERN匹配到的行

默认处于编辑模式

二、关闭文件

1、末行模式关闭文件

    :q  退出

    :wq 保存并退出

    :q! 不保存并退出

    :w  保存

    :w! 强行保存

    :wq --> :x  (等价)

2、编辑模式下退出

ZZ: 保存并退出   (大写)


三、移动光标(编辑模式)

1、逐字符移动:

h: 左

l: 右

j: 下

k: 上

 #h: 移动#个字符          (#代表的数字的多少,一下不再赘述)

2、以单词为单位移动

w: 移至下一个单词的词首

e: 调至当前或下一个单词的词尾

b: 跳至当前或前一个单词的词首  (e,b两个是相对的前进后退)

  #w: 移动#个单词

3、行内跳转

0:绝对行首

^: 行首的第一个非空白字符

$: 绝对行尾

4、行间跳转(大写G)

#G:跳转至第#行

G : 最后一行

  末行模式下,直接给出行号即可

四、翻屏

Ctrl+f: 向下翻一屏

Ctrl+b: 向上翻一屏

Ctrl+d: 向下翻半屏

Ctrl+u: 向上翻半屏


五、删除单个字符

x:  删除光标所在处的单个字符

#x: 删除光标所在处及向后的共#个字符  (先输入数字然后在输入x)


六、删除命令:d

d命令跟跳转命令组合使用;

#d,#de, #db

  dd: 删除当前光标所在行

  #dd: 删除包括当前光标所在的行在内的#行;


末行模式下,

startADD,endADDd  (当前地址,结束地址)

.   表示当前行

$   最后一行

+#  向下的#行

七、粘贴命令 p

p  如果删除或复制为整行内容,则粘贴至光标所在行下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;(小写向下)

P  如果删除或复制为整行内容,则粘贴至光标所在行上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;(大写向上)


八、复制命令 y

用法同d

九、修改;先删除内容,在转换为输入模式

c  用法同d命令

十、替换 R

r:只是替换当前字符  (连续按两次r才可以)

R: 替换模式


十一、撤销编辑操作 u

u  撤销前一次的编辑操作

连续u命令可撤销此前的n次操作(最多50次,我没试过)

#u: 直接撤销最近#次编辑操作


撤销最近一次撤销操作:Ctrl+r (撤销u命令的撤销)


十二、重复前一次编辑操作

.   没有看错,就是一个点


十三、可视化模式

v   按字符选取 (小V少)

V   按矩形选取 (大V多)


十四、查找替换

/PATTERN

?PATTERN   反向查找 (从光标所在行方向往上查找)

n  从上向下

N  反向 向上查找

十五、查找并替换

在末行模式下使用s命令

ADDR1,ADDR2s@PATTERN@string@gi  (地址1,地址2s/内容/修改内容/全局替换g)

:.,$-1s/he/HE/g   (内容在末行模式下将全文he替换为HE)

%   表示全文内容(不用特意在标明)


练习:

1、将/etc/yum.repos.d/server.repo文件中的ftp://instructor.example.com/pub替换为http://172.16.0.1/yum


%s/ftp:\/\/instructor\.example\.com\/pub/http:\/\/172.16.0.1\/yum/g     (\为转义)


%s@ftp://instructor\.example\.com/pub@http://172.16.0.1/yum@g    (同上等价,一样实现)


十六、使用vim编辑多个文件 (末行模式切换)

vim FILE1 FILE2 FILE3

:next 切换至下一个文件

:prev 切换至前一个文件

:last 切换至最后一个文件

:first 切换至第一个文件


:qa 全部退出


十七、分屏显示一个文件

Ctrl+w, s: 水平拆分窗口   (先按下Ctrl+w键在选择按s/v)

Ctrl+w, v: 垂直拆分窗口


在窗口间切换光标:

Ctrl+w, ARROW(上下左右键)


:qa 关闭所有窗口


十八、分窗口编辑多个文件

vim -O FILE1 FILE2 FILE3

vim -o : 水平分割显示

vim -O : 垂直分割显示


十九、将当前文件中部分内容另存为另外一个文件

末行模式下使用w命令

:w

:ADDR1,ADDR2w /path/to/somewhere

  地址1,地址2/路径


二十、将另外一个文件的内容填充在当前文件中(末行模式)

:r /path/to/somefile


二十一、跟shell交互

:! COMMAND    (回车返回编辑窗口)


二十二、高级话题

1、显示或取消显示行号

:set number

:set nu

  :set nonu  取消


2、显示忽略或区分字符大小写

:set ignorecase

:set ic

  :set noic


3、设定自动缩进

:set autoindent

:set ai

  :set noai


4、查找到的文本高亮显示或取消

:set hlsearch

:set nohlsearch


5、语法高亮

:syntax on

:syntax off


二十三、配置文件

/etc/vimrc    全局生效

~/.vimrc     当前用户生效  直接vim ~/.vimrc 输入内容就可以了,有这个文本就打开了,没有就自动创建一个,一样生效。


vim文件编辑后未保存,错误关闭,再次打开文件报错


1、以只读打开  2、无路如何都开始编辑 3、恢复为保存内容  4、删除前内容    5、退出终止     6、退出


未保存的文件会以“这个文件名.swp为后缀的形式出现在文件目录中


vim -r filename  直接将.swp相关内容写入file中。  


如果确定没有问题就在目录中 rm 文件就可以了。(数据无价!删除提前确认)  



在末行模式编辑下千万不用按小键盘区的数字键会坑自己的~(惊喜等待自己去发觉)

你可能感兴趣的:(vim-初学笔记)