VIM的一些有用的命令

网上搜集整理了一些网友提供的vim的常用命令,现在分享如下:
1、复制

1)单行复制

在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制;

2)多行复制 在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行;其中n为1、2、3……

【yy】 复制光标所在的那一行
【nyy】 复制光标所在的向下n行
3)
y 在使用v模式选定了某一块的时候,复制选定块到缓冲区用;
yy 复制整行(nyy或者yny ,复制n行,n为数字);
y^ 复制当前到行头的内容;
y$ 复制当前到行尾的内容;
yw 复制一个word (nyw或者ynw,复制n个word,n为数字);
yG 复制至档尾(nyG或者ynG,复制到第n行,例如1yG或者y1G,复制到档尾
2、粘贴

在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴

【p,P】 p为将已经复制的数据在光标下一行粘贴;P为将已经复制的数据在光标上一行粘贴

p 小写p代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面
P 大写P代表贴至游标前(上)
整行的复制粘贴在游标的上(下)一行,非整行的复制则是粘贴在游标的前(后)

3、删除

d 剪切选定块到缓冲区;
dd 剪切整行
d^ 剪切至行首
d$ 剪切至行尾
dw 剪切一个word
dG 剪切至档尾

删除一行:dd

删除一个单词/光标之后的单词剩余部分:dw

删除当前字符:x

光标之后的该行部分:d$

文本删除

dd 删除一行

d$ 删除以当前字符开始的一行字符

ndd 删除以当前行开始的n行

dw 删除以当前字符开始的一个字

ndw 删除以当前字符开始的n个字

4、查找

【/word】 在文件中查找内容为word的字符串(向下查找)
【?word】 在文件中查找内容为word的字符串(向上查找)
【[n]】 表示重复查找动作,即查找下一个
【[N]】 反向查找下一个

搜索后,我们打开别的文件,发现也被高亮了,怎么关闭高亮?

命令模式下,输入:nohlsearch 也可以:set nohlsearch; 当然,可以简写,noh或者set noh。

5、设置行号

如果编辑后,又想显示行号,同样操作按一下esc键,并输入:(冒号),输入set number ,并按回车键,完成后即显示行号

6、跳到指定行

在知道所查找的内容在文件中的具体位置时可以使用以下命令直接定位:
跳到文件指定行:比如跳到66行

66+G(也就是66+shift+g)
当然你可以选择另一种跳转方式:

命令行输入“ : n ” 然后回车
跳到文件第一行:gg (两个小写的G)

跳到文件最后一行:shift+g (也就是G)
7、文件上下翻转

页翻转可以直接使用PgUp和PgDn

向前滚动一屏:Ctrl+F

向后滚动一屏:Ctrl+B

向前滚动半屏:Ctrl+D(向下)

向后滚动半屏:Ctrl+U(向上)

向下滚动一行,保持当前光标不动:Ctrl+E

向上滚动一行,保持当前光标不动:Ctrl+Y

当前行滚动:
当前行移动到屏幕顶部并滚动:Z+Enter
滚动指定行到屏幕顶部: 10Z+Enter(指定第十行)
当前行移动到屏幕中央并滚动:Z + .
当前行移动到屏幕底部并滚动:Z + -
当前屏幕操作:
H:大写h,移动到当前屏幕首行;nH移动到首行下的第n行
M:大写m,移动到当前屏幕中间行
L:大写l,移动到当前屏幕末行;nL移动到末行上面的第n行
8、撤销上一步操作

【u】 撤消上一个操作
【[Ctrl] + r】 多次撤消
【.】 这是小数点键,重复上一个操作

缩进:

插入模式下,ctrl+shift+d 减少缩进,ctrl+shift+t 增加缩进

9、vim编辑

1、进入插入模式(6个命令)
【i】 从目前光标所在处插入
【I】 从目前光标
【a】 从当前光标所在的下一个字符处开始插入
【A】 从光标所在行的最后一个字符处开始插入
【o】 英文小写字母o,在目前光标所在行的下一行处插入新的一行并开始插入
【O】 英文大写字母O,在目前光标所在行的上一行处插入新的一行并开始插入

2、进入替换模式(2个命令)
【r】 只会替换光标所在的那一个字符一次
【R】 会一直替换光标所在字符,直到按下[ESC]键为止
【[ESC]】 退出编辑模式回到一般模式

3、一般模式切换到命令行模式
【:w】 保存文件
【:w!】 若文件为只读,强制保存文件
【:q】 离开vi
【:q!】 不保存强制离开vi
【:wq】 保存后离开
【:wq!】 强制保存后离开
【:! command】 暂时离开vi到命令行下执行一个命令后的显示结果
【:set nu】 显示行号
【:set nonu】 取消显示行号
【:w newfile】 另存为
【:set fileencoding】 查看当前文件编码格式
【:set fileencoding=utf-8】 设置当前文件编码格式为utf-8,也可以设置成其他编码格式
【:set fileformat】 查看当前文件的断行格式(dos\windows,unix或macintosh)
【:set fileformat=unix】 将当前文件的断行格式设置为unix格式

10、多窗口功能
【:sp [filename]】 打开一个新窗口,显示新文件,若只输入:sp,则两窗口显示同一个文件
【[Ctrl] + w + j】 光标移动到下方窗口
【[Ctrl] + w + k】 光标移动到上方窗口
【[Ctrl] + w + q】 离开当前窗口

11、缩进

批量缩进

在程序代码界面,按esc,退出编辑模式,到命令模式,并在英语输入法下输入“:”

将所要批量缩进的行号写上,按照格式:“行号1,行号2>”输入命令,如要将2至9行批量缩进一个tab值,则命令为“2,9>”

输入完毕后,按回车可以执行,就可以看到2至9行全部缩进了一个tab值了,同样的,如果要缩回来一个tab值,则用命令“行号1,行号2<”即可

可视模式缩进

方法二是在可视模式下选择要移动的列,操作为,esc从编辑模式退到命令模式,将光标移到需要缩进的行的行首,然后按shift+v,可以看到该行已被选中,且左下角提示为“可视”

此时,按键盘上的上下左右方向键,如这里按向下的箭头,选中所有需要批量缩进的行

选择好了之后,按shift+>,是向前缩进一个tab值,按shift+<,则是缩回一个tab值

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页