千家信息网

vim编辑器--使用详解

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,vim编辑器1.基本模式:编辑模式,命令模式输入模式;末行模式;2.打开文件,模式间转换#vim [OPTION]... FILE...+#:打开文件后,直接让光标处于第#行的行首-/PATTERN:
千家信息网最后更新 2025年12月02日vim编辑器--使用详解

vim编辑器

1.基本模式:

编辑模式,命令模式

输入模式;

末行模式;

2.打开文件,模式间转换

#vim [OPTION]... FILE...

+#:打开文件后,直接让光标处于第#行的行首

-/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;

模式转换:

编辑模式 --> 输入模式

i:insert,在当前光标所在处输入

a:append,在当前光标所在处的后边输入

o:open,在当前光标的下面新开一行输入

I:在当前光标所在行的行首输入

A:在当前光标所在行的行尾输入

O:在当前光标所在行的上面新开一行输入

输入模式 --> 编辑模式

ESC

编辑模式 --> 末行模式


末行模式 --> 编辑模式

ESC(正常按2次,按1次反应很慢)

关闭模式:

:q 没有任何修改的时候,在末行模式退出

:q! 不保存做出的修改,强制不保存不退出

:wq 保存做出的修改,保存退出

:x 保存退出

:w /PATH/SOMESWHERE 保存到指定的地方

ZZ 在编辑模式,直接保存退出,无需切换到末行模式再保存退出

3.光标跳转

字符间跳转

h:向左

j:向下

k:向上

l:向右

单词单跳转

w:跳转到下一个单词的词首

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

b:跳转到当前或上一个单词的词首

行首行尾跳转

^:跳转到当前行的行首

0:跳转到当前行的行着

$:跳转到当前行的行尾

行间移动

G:跳转到最后一行

#G:跳转到第#行

1G,gg:跳转到首行

4.vim的编辑命令

字符编辑

x:删除当前光标所在处的字母

#x:删除当前光标所在处,向后数的第#个字符

xp:交换当前光标所在处与其后面字符的交换

r:replace,按下r键,再按a键,表示把当前光标所在处的字符替换为a

删除命令:

d:删除命令,可以结合光标跳转字符,实现范围内删除

d$:删除当前光标所在处至行尾的内容

d^,d0:删除当前光标所在处至行首的内容

dd:删除当标所在行一整行

#dd:实现在多行删除,以当前光标所在行为起始

dw:

de:

db:

粘贴命令(p,put,paste):

p:缓冲区存的如果为事先,则粘贴在当前光标所在行的下方;否则,粘贴至光标所在处的后面

p:缓冲区存的如果为事先,则粘贴在当前光标所在行的上方;否则,粘贴至光标所在处的后面

复制命令(y,yank):

y:复制,工作行为类似于d命令

y^:复制当前光标所在处至行首

y0:复制当前光标所在处至行首

y$:复制当前光标所在处至行尾

yy:复制当前光标所在行的一整行

#yy:实现多行复制,以当前光标为起始

yw:

ye:

yb:

改变命令(c,change):

c:修改

编辑模式 --> 输入模式

c$:修改光标处至行尾,直接把光标所在处至行尾的内容删除,并变为插入模式

c^:修改光标处至行首,直接把光标所在处至行首的内容删除,并变为插入模式

c0:修改光标处至行首,直接把光标所在处至行首的内容删除,并变为插入模式

cw:

cb:

ce:

cc:修改整行,并变为插入模式

撤消此前的编辑(u,undo):

u:撤消前一次的操作

#u:撤消此前指定次数的操作

撤消此前的撤消:即使用u撤消之前的操作后,又后悔了,想要变回来

ctrl+r

重复前一个编辑动作:

.

可视化模式:

v:按字符选定

V:按行选定

注意:经常结合编辑命令,实现多行删除,复制等

翻屏操作:

ctrl+f:向文件尾部翻一屏

ctrl+b:向文件首部翻一屏

ctrl+d:向文件尾部翻半屏

ctrl+u:向文件首部翻半屏

5.vim中的末行模式

内建的命令行接口

(a)地址界定

:start_pos,end_pos

#:具体第#行,例如2表示第2行

#,#:从第几行开始到第几行

#,+#:从第几行开始加几行

.:点表示当前行

$:表示最后一行

$-1:表示倒数第2行

%:表示全文,等于1,$

/pat1/,/pat2/

从第一次被模式pat1匹配开始,到第一次被模式

使用方式:后跟一个编辑命令

d:表示匹配成功后执行删除动作

y:表示匹配成功后执行复制动作

w:表示匹配成功后执行写入到指定的文件中

w /PATH/SOMEWHERE

(b)查找

/PATTERN:从当前光标所在处向文件尾部查找

?PATTERN:从当前光标所在处向文件首部查找

n:与命令方向同方向

N:与命令方向反方向

(c)查找并替换

s:在末行模式下完成查找替换操作

s/要查找的内容/替换为的内容/修饰符

要查找的内容:可以使用正则表达式

替换为的内容:不能使用正则表达式,但可以进行引用&,\1,\2等引用符

修饰符:

i:忽略大小写

g:全局替换,默认情况下,每一行只替换第一次出现的;

查找替换中的分隔符"/"可替换为其它字符;例如

s@@@ 例:%s@

s### 例:%s#

6.多文件模式

#vim FILE1 FILE2 FILE3 ...

:next 下一个

:last 最后一个

:first 第一个

:prev 前一个

:wall 保存所有

:qall 退出所有

:wqall 保存所有并退出

多文件窗口分隔模式:

#vim -o|-O FILE1 FILE2 ...

-o:水平分割

-O:垂直分割

在多个文件窗口中进行切换:

ctrl+w,Arrow(上下左右箭头)

单文件窗口分割

ctrl+w,s(水平分割文件)

ctrl+w,v(垂直侵害文件)

7.定制vim的工作特性

(a)设置行号

显示行号:set nu(number)

不显示行号:set nonu(nonumber)

(b)搜索命中的单词高亮显示

显示高亮:set hl(hlsearch)

不显示高亮:set nohl(nohlsearch)

(c)缩进

自动缩进:set ai(autoindent)

取消自动缩进:set noai(noautoindent)

(d)语法着色

显示颜色:syntax on

不显示颜色:syntax off

(e)自动匹配括号

自动匹配括号:set sm(showmatch)

不自动匹配括号:set nosm(noshowmatch)

(f)忽略字符大小写

忽略大小写:set ic(ignorecase)

不忽略大小写:set noic(noignorecase)

8.配置文件

#vim /etc/vimrc 对全局做配置,安装好vim,此文件就已经存在

#vim ~/.vimrc 对用户做配置,此文件事先可能不存在,需要自己创建

0