vim详解

vim编辑器

文本编辑器,字符处理器

ASCII

nano sed

vi:visual interface 可视化接口

vim: VI iMproved

全屏编辑器,模式化编辑器


vim模式

编辑模式(命令模式)

输入模式

末行模式

vim模式转换

编辑-->输入

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

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

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



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

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

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

输入-->编辑

    ESC

编辑-->末行

    :\(冒号\)

末行-->编辑

    ESC  在末行模式下有内容时,需要敲两下ESC

输入-->末行

不能直接转换

一、打开文件

vim /path/to/somefile

vim +n 打开文件后,光标处于第n行

vim + 打开文件后,光标处于文件的最后一行 Bot 文件尾部

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

打开文件 默认处于命令模式


二、关闭文件

1、末行模式关闭文件

:q 退出

:wq 保存并退出

:q! 强制退出,不保存

:w 保存 只读属性,不能保存

:wq! 强行保存 管理员

:x 与:wq 一样

编辑模式

ZZ:保存并退出


三、移动光标

1、逐字符移动

h:向左

l:向右

j:向上

k:向下

\#h:移动\#个字符  \# 数字 ; h 移动方向 可以更改

2、以单词为单位移动

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

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

b:跳至当前或者前一个单词的词首

\#w: 移动n个单词     \# 数字 ; w 跳转方向 可改变

3、行内跳转

0:绝对行首

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

$:绝对行尾

4、行间转换

\#G:跳至第\#行

G:最后一行

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


四、翻屏的操作

ctrl+f:向下翻一屏

ctrl+b:向上翻一屏



ctrl+d:向下翻半屏

ctrl+u:向上翻半屏

五、删除单个字符

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

\#x:删除光标所在出以及向后的共\#个字符

六、删除命令:d

d命令与光标跳转命令组合使用

比如: 3dw d$ #de,#db...

#d跳转符

dd:删除光标所在行

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

末行模式下

StartAdd EndAdd

.:表示当前行

$:最后一行

+#:向下的#行

实例

.,+5d 删除包括当前行以及向下的5行

七、粘贴命令

P:如果删除的或者复制的为整行内容,则粘贴至光标所在行的下方;如果删除或复制的行为非整行,则粘贴至光标所在处的后面

p:如果删除的或者复制的为整行内容,则粘贴至光标所在行的上方;如果删除或复制的行为非整行,则粘贴至光标所在处的前面

八、复制命令 y

用法同 d(删除命令)一样


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

c:用法与d相同


十、替换:r

R:替换模式 逐字符移动进行替换


十一、撤销编辑操作 u

u:撤销前一次的编辑操作

    连续u命令可以撤销此前的n次编辑操作

#n:直接撤销最近的#次操作

撤销最近一次撤销:Ctrl+r


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

.

十三 、可视化模式

v:按字符先取

V:按矩形选取


十四、查找

/PATTERN

?PATTERN

N

n


十五、查找并替换

在末行模式下使用s命令

ASSR1,ADDR2s@PATTERN@string@gi

%:表示全文

g 整行 i 忽略大小写


十六、使用vim编辑多个脚本

vim FILE1 FILE2 FILE3

:next 切换至下一个文件

:prev 切换至前一个文件

:last 切换至最后一个文件

:first 切换至第一个文件

退出

:qa 全部退出


十七、分屏显示一个文件

ctrl+w,s:水平拆分窗口

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

在窗口之间切换光标

Ctrl+w,ARROW

:qa:关闭所有窗口


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

vim -o:水平分割显示

vim -O:垂直分割显示


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

末行模式下使用w命令

:w

:ADDR1,ADDR2,w/path/to/somefile


二十、将另外一个文件的内容填充至当前文件

: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 nohelsearch

5、语法高亮

:syntax on

:syntax off


二十三、配置文件

/etc/vimrc

~/.vimrc

results for ""

    No results matching ""